|
|
|
@ -79,9 +79,9 @@ show_menu2(){ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
option_picked(){ |
|
|
|
|
message=${@:-"${CL}Error: No message passed"} |
|
|
|
|
message2=${@:-"${CL}Error: No message passed"} |
|
|
|
|
printf " ${YW}${message1}${CL}\n" |
|
|
|
|
printf " ${YW}${message}${CL}\n" |
|
|
|
|
printf " ${YW}${message2}${CL}\n" |
|
|
|
|
} |
|
|
|
|
show_menu2 |
|
|
|
|
while [ $opt != '' ] |
|
|
|
@ -114,6 +114,99 @@ while [ $opt != '' ] |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
show_menu3(){ |
|
|
|
|
printf " ${RD} If Using ZFS, You Have Storage Driver Options${CL}\n" |
|
|
|
|
printf " ${RD} Non ZFS, Select Standard overlay2 Storage Driver${CL}\n" |
|
|
|
|
printf " ${YW} 1)${GN} Use fuse-overlayfs Storage Driver${CL}\n" |
|
|
|
|
printf " ${YW} 2)${GN} Use Standard overlay2 Storage Driver${CL}\n" |
|
|
|
|
|
|
|
|
|
printf "Please choose a Storage Driver and hit enter or ${RD}x${CL} to exit." |
|
|
|
|
read opt |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
option_picked(){ |
|
|
|
|
message3=${@:-"${CL}Error: No message passed"} |
|
|
|
|
printf " ${YW}${message1}${CL}\n" |
|
|
|
|
printf " ${YW}${message2}${CL}\n" |
|
|
|
|
printf " ${YW}${message3}${CL}\n" |
|
|
|
|
} |
|
|
|
|
show_menu3 |
|
|
|
|
while [ $opt != '' ] |
|
|
|
|
do |
|
|
|
|
if [ $opt = '' ]; then |
|
|
|
|
exit; |
|
|
|
|
else |
|
|
|
|
case $opt in |
|
|
|
|
1) clear; |
|
|
|
|
header_info; |
|
|
|
|
option_picked "Using fuse-overlayfs Storage Driver"; |
|
|
|
|
STORAGE_DRIVER="fuse" |
|
|
|
|
break; |
|
|
|
|
;; |
|
|
|
|
2) clear; |
|
|
|
|
header_info; |
|
|
|
|
option_picked "Using overlay2 Storage Driver"; |
|
|
|
|
STORAGE_DRIVER=" " |
|
|
|
|
break; |
|
|
|
|
;; |
|
|
|
|
|
|
|
|
|
x)exit; |
|
|
|
|
;; |
|
|
|
|
\n)exit; |
|
|
|
|
;; |
|
|
|
|
*)clear; |
|
|
|
|
option_picked "Please choose a Storage Driver from the menu"; |
|
|
|
|
show_menu3; |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
show_menu4(){ |
|
|
|
|
printf " ${YW} 1)${GN} Automatic DHCP ${CL}\n" |
|
|
|
|
printf " ${YW} 2)${GN} Manual DHCP ${CL}\n" |
|
|
|
|
|
|
|
|
|
printf "Please choose a DHCP Type and hit enter or ${RD}x${CL} to exit." |
|
|
|
|
read opt |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
option_picked(){ |
|
|
|
|
message4=${@:-"${CL}Error: No message passed"} |
|
|
|
|
printf " ${YW}${message1}${CL}\n" |
|
|
|
|
printf " ${YW}${message2}${CL}\n" |
|
|
|
|
printf " ${YW}${message3}${CL}\n" |
|
|
|
|
printf " ${YW}${message4}${CL}\n" |
|
|
|
|
} |
|
|
|
|
show_menu4 |
|
|
|
|
while [ $opt != '' ] |
|
|
|
|
do |
|
|
|
|
if [ $opt = '' ]; then |
|
|
|
|
exit; |
|
|
|
|
else |
|
|
|
|
case $opt in |
|
|
|
|
1) clear; |
|
|
|
|
header_info; |
|
|
|
|
option_picked "Using Automatic DHCP"; |
|
|
|
|
DHCP=" " |
|
|
|
|
break; |
|
|
|
|
;; |
|
|
|
|
2) clear; |
|
|
|
|
header_info; |
|
|
|
|
option_picked "Using Manual DHCP"; |
|
|
|
|
DHCP="1" |
|
|
|
|
break; |
|
|
|
|
;; |
|
|
|
|
|
|
|
|
|
x)exit; |
|
|
|
|
;; |
|
|
|
|
\n)exit; |
|
|
|
|
;; |
|
|
|
|
*)clear; |
|
|
|
|
option_picked "Please choose a DHCP Type from the menu"; |
|
|
|
|
show_menu4; |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
set -o errexit |
|
|
|
|
set -o errtrace |
|
|
|
@ -161,8 +254,14 @@ function cleanup() { |
|
|
|
|
popd >/dev/null |
|
|
|
|
rm -rf $TEMP_DIR |
|
|
|
|
} |
|
|
|
|
if [ "$IM" == "1" ]; then |
|
|
|
|
if [ "$IM" == "1" ] && [ "$STORAGE_DRIVER" == " " ]; then |
|
|
|
|
FEATURES="nesting=1,keyctl=1" |
|
|
|
|
elif |
|
|
|
|
[ "$IM" == "1" ] && [ "$STORAGE_DRIVER" == "fuse" ]; then |
|
|
|
|
FEATURES="nesting=1,keyctl=1,fuse=1" |
|
|
|
|
elif |
|
|
|
|
[ "$IM" == "0" ] && [ "$STORAGE_DRIVER" == "fuse" ]; then |
|
|
|
|
FEATURES="nesting=1,fuse=1" |
|
|
|
|
else |
|
|
|
|
FEATURES="nesting=1" |
|
|
|
|
fi |
|
|
|
@ -195,11 +294,31 @@ cat <<EOF >> $LXC_CONFIG |
|
|
|
|
lxc.cgroup2.devices.allow: a |
|
|
|
|
lxc.cap.drop: |
|
|
|
|
EOF |
|
|
|
|
if [ "$DHCP" == "1" ]; then |
|
|
|
|
MAC=$(pct config $CTID \ |
|
|
|
|
| grep -i hwaddr \ |
|
|
|
|
| awk '{print substr($2, 31, length($3) 17 ) }') \ |
|
|
|
|
|
|
|
|
|
echo -e "MAC Address ${BL}$MAC${CL}" |
|
|
|
|
|
|
|
|
|
dhcp_reservation(){ |
|
|
|
|
printf "Please set DHCP reservation and press Enter." |
|
|
|
|
read |
|
|
|
|
} |
|
|
|
|
dhcp_reservation |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
echo -en "${GN} Starting LXC Container... " |
|
|
|
|
pct start $CTID |
|
|
|
|
echo -e "${CM}${CL} \r" |
|
|
|
|
|
|
|
|
|
if [ "$STORAGE_TYPE" == "zfspool" ] && [ "$STORAGE_DRIVER" == "fuse" ]; then |
|
|
|
|
pct push $CTID fuse-overlayfs /usr/local/bin/fuse-overlayfs -perms 755 |
|
|
|
|
info "Using ${BL}fuse-overlayfs${CL} Storage Driver." |
|
|
|
|
else |
|
|
|
|
info "Using ${BL}overlay2${CL} Storage Driver." |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
alias lxc-cmd="lxc-attach -n $CTID --" |
|
|
|
|
|
|
|
|
|
lxc-cmd bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/setup/homeassistant-install.sh)" || exit |
|
|
|
|