|
|
@ -79,9 +79,9 @@ show_menu2(){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
option_picked(){
|
|
|
|
option_picked(){
|
|
|
|
message=${@:-"${CL}Error: No message passed"}
|
|
|
|
message2=${@:-"${CL}Error: No message passed"}
|
|
|
|
printf " ${YW}${message1}${CL}\n"
|
|
|
|
printf " ${YW}${message1}${CL}\n"
|
|
|
|
printf " ${YW}${message}${CL}\n"
|
|
|
|
printf " ${YW}${message2}${CL}\n"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
show_menu2
|
|
|
|
show_menu2
|
|
|
|
while [ $opt != '' ]
|
|
|
|
while [ $opt != '' ]
|
|
|
@ -114,6 +114,99 @@ while [ $opt != '' ]
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
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 errexit
|
|
|
|
set -o errtrace
|
|
|
|
set -o errtrace
|
|
|
@ -161,8 +254,14 @@ function cleanup() {
|
|
|
|
popd >/dev/null
|
|
|
|
popd >/dev/null
|
|
|
|
rm -rf $TEMP_DIR
|
|
|
|
rm -rf $TEMP_DIR
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if [ "$IM" == "1" ]; then
|
|
|
|
if [ "$IM" == "1" ] && [ "$STORAGE_DRIVER" == " " ]; then
|
|
|
|
FEATURES="nesting=1,keyctl=1"
|
|
|
|
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
|
|
|
|
else
|
|
|
|
FEATURES="nesting=1"
|
|
|
|
FEATURES="nesting=1"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
@ -195,11 +294,31 @@ cat <<EOF >> $LXC_CONFIG
|
|
|
|
lxc.cgroup2.devices.allow: a
|
|
|
|
lxc.cgroup2.devices.allow: a
|
|
|
|
lxc.cap.drop:
|
|
|
|
lxc.cap.drop:
|
|
|
|
EOF
|
|
|
|
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... "
|
|
|
|
echo -en "${GN} Starting LXC Container... "
|
|
|
|
pct start $CTID
|
|
|
|
pct start $CTID
|
|
|
|
echo -e "${CM}${CL} \r"
|
|
|
|
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 --"
|
|
|
|
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
|
|
|
|
lxc-cmd bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/setup/homeassistant-install.sh)" || exit
|
|
|
|