diff --git a/create-lx-container.sh b/create-lx-container.sh index a2fde88..d3acec4 100755 --- a/create-lx-container.sh +++ b/create-lx-container.sh @@ -162,6 +162,8 @@ DEFAULT_LXC_ROOT_DIR="/var/lib/lxc" DEFAULT_LXC_DIST="debian" DEFAULT_MAC_ADDRESS_1="$(echo -n 00 ; dd bs=1 count=5 if=/dev/random 2>/dev/null | hexdump -v -e '/1 ":%02X"')" +DEFAULT_IPV4_NETMASK_1="255.255.255.0" + DEFAULT_IPV6_PREFIX=64 if [[ -f "$conf_file" ]]; then @@ -305,6 +307,8 @@ while ! $(is_valid_ipv4 $IPV4_ADDRESS_1); do echononl "\033[1mFirst IPv4 Address:\033[m " read IPV4_ADDRESS_1 done +_octets=( ${IPV4_ADDRESS_1//\./ } ) +DEFAULT_IPV4_GATEWAY_1="${_octets[0]}.${_octets[1]}.${_octets[2]}.1" echo "" echo -e "\033[32m--\033[m" @@ -312,17 +316,19 @@ echo "" echo " # Insert IPv4 Address for the gateway." echo " #" +echo " # Type to accept the default '$DEFAULT_IPV4_GATEWAY_1'." echo "" -echononl "\033[1mIPv4 (first) Gateway Address:\033[m " +echononl "\033[1mIPv4 (first) Gateway Address [$DEFAULT_IPV4_GATEWAY_1]:\033[m " read IPV4_GATEWAY_1 while ! $(is_valid_ipv4 $IPV4_GATEWAY_1) ; do - if [[ -z "$(trim $IPV4_GATEWAY_1)" ]]; then - warn "Parameter is needed. Try again" - else - warn "'$IPV4_GATEWAY_1' is not a valid IPv4 Address. Try again.." - fi - echononl "\033[1mIPv4 (first) Gateway Address:\033[m " + if [[ -z "$(trim $IPV4_GATEWAY_1)" ]]; then + IPV4_GATEWAY_1="$DEFAULT_IPV4_GATEWAY_1" + break + else + warn "'$IPV4_GATEWAY_1' is not a valid IPv4 Address. Try again.." + fi + echononl "\033[1mIPv4 (first) Gateway Address [$DEFAULT_IPV4_GATEWAY_1]:\033[m " read IPV4_GATEWAY_1 done @@ -332,25 +338,25 @@ echo "" echo " # Insert Netmask for the first IPv4 Address." echo " #" +echo " # Type to accept the default '$DEFAULT_IPV4_NETMASK_1'." echo "" -echononl "\033[1mNetmask (first) IPv4 Address:\033[m " +echononl "\033[1mNetmask (first) IPv4 Address [$DEFAULT_IPV4_NETMASK_1]:\033[m " read IPV4_NETMASK_1 while ! $(is_valid_ipv4 $IPV4_NETMASK_1) ; do - if [[ -z "$(trim $IPV4_NETMASK_1)" ]]; then - warn "Parameter is needed. Try again" - else - warn "'$IPV4_NETMASK_1' is not a valid netmask. Try again.." - fi - echononl "\033[1mNetmask (first) IPv4 Address:\033[m " + if [[ -z "$(trim $IPV4_NETMASK_1)" ]]; then + IPV4_NETMASK_1="$DEFAULT_IPV4_NETMASK_1" + break + else + warn "'$IPV4_NETMASK_1' is not a valid netmask. Try again.." + fi + echononl "\033[1mNetmask (first) IPv4 Address [$DEFAULT_IPV4_NETMASK_1]:\033[m " read IPV4_NETMASK_1 done IPV4_PREFIX_1="$(netmask2cidr $IPV4_NETMASK_1)" IPV6_PREFIX_1=$DEFAULT_IPV6_PREFIX - - echo "" echo -e "\033[32m--\033[m" echo "" @@ -1256,6 +1262,125 @@ else fi + +# - Install 'figlet' from debian package system +# - +echo "" +_pkg="figlet" +msg="Install '$_pkg' from debian package system .." +if ! $(aptitude search "$_pkg" | grep " $_pkg " | grep -e "^i" > /dev/null 2>&1) ; then + + DEBIAN_FRONTEND=noninteractive apt-get -y install $needed_packages_base > /dev/null 2> "$err_msg" + + if [[ $? -eq 0 ]] ; then + msg_ok="Debian package '$_pkg' successfully installed." + length_msg_ok=${#msg_ok} + blank_signs="" + if [[ $length_msg -gt $length_msg_ok ]]; then + number_blank_sign=$(expr $length_msg - $length_msg_ok) + index_i=0 + while [[ $index_i -lt $number_blank_sign ]] ; do + blank_signs="$blank_signs " + (( index_i++ )) + done + fi + echo -e "\033[1G [ \033[32m\033[1mok\033[m ] ${msg_ok}${blank_signs}" + else + msg_failed="Installation of debiab package '$_pkg' failed!" + length_msg_failed=${#msg_failed} + blank_signs="" + if [[ $length_msg -gt $length_msg_failed ]]; then + number_blank_sign=$(expr $length_msg - $length_msg_failed) + index_i=0 + while [[ $index_i -lt $number_blank_sign ]] ; do + blank_signs="$blank_signs " + (( index_i++ )) + done + fi + echo -e "\033[1G [ \033[31m\033[1mfailed\033[m ] ${msg_failed}${blank_signs}" + error "$(cat $err_msg)" + fi +else + echo -e "\033[1G [ \033[30m\033[1mskip\033[m ] $msg" +fi + + +# - Backup Containers file '/etc/motd' +# - +echo "" +msg="Backup file '${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd' .." +echo -en "\033[1G \033[1;30m[ ... ] \033[32m$msg\033[m" + +mv "${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd" "${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd.ORIG" > $err_msg 2>&1 + +if [[ $? -eq 0 ]] ; then + msg_ok="File '${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd.ORIG' saved." + length_msg_ok=${#msg_ok} + blank_signs="" + if [[ $length_msg -gt $length_msg_ok ]]; then + number_blank_sign=$(expr $length_msg - $length_msg_ok) + index_i=0 + while [[ $index_i -lt $number_blank_sign ]] ; do + blank_signs="$blank_signs " + (( index_i++ )) + done + fi + echo -e "\033[1G [ \033[32m\033[1mok\033[m ] ${msg_ok}${blank_signs}" +else + msg_failed="Could not backup file '${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd'!" + length_msg_failed=${#msg_failed} + blank_signs="" + if [[ $length_msg -gt $length_msg_failed ]]; then + number_blank_sign=$(expr $length_msg - $length_msg_failed) + index_i=0 + while [[ $index_i -lt $number_blank_sign ]] ; do + blank_signs="$blank_signs " + (( index_i++ )) + done + fi + echo -e "\033[1G [ \033[31m\033[1mfailed\033[m ] ${msg_failed}${blank_signs}" + error "$(cat $err_msg)" +fi + +# - Create new containers file '/etc/motd' +# - + +msg="Create a new file '${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd' .." +echo -en "\033[1G \033[1;30m[ ... ] \033[32m$msg\033[m" + +figlet $HOSTNAME > "${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd" + +if [[ $? -eq 0 ]] ; then + msg_ok="New file '${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd' created." + length_msg_ok=${#msg_ok} + blank_signs="" + if [[ $length_msg -gt $length_msg_ok ]]; then + number_blank_sign=$(expr $length_msg - $length_msg_ok) + index_i=0 + while [[ $index_i -lt $number_blank_sign ]] ; do + blank_signs="$blank_signs " + (( index_i++ )) + done + fi + echo -e "\033[1G [ \033[32m\033[1mok\033[m ] ${msg_ok}${blank_signs}" +else + msg_failed="Failed to create file '${LXC_ROOT_DIR}/${LXC_NAME}/rootfs/etc/motd'!" + length_msg_failed=${#msg_failed} + blank_signs="" + if [[ $length_msg -gt $length_msg_failed ]]; then + number_blank_sign=$(expr $length_msg - $length_msg_failed) + index_i=0 + while [[ $index_i -lt $number_blank_sign ]] ; do + blank_signs="$blank_signs " + (( index_i++ )) + done + fi + echo -e "\033[1G [ \033[31m\033[1mfailed\033[m ] ${msg_failed}${blank_signs}" + error "$(cat $err_msg)" +fi + + + # - Backup Containers file '/etc/ssh/sshd_config' # - echo "" @@ -1332,7 +1457,7 @@ if [[ -f "${working_dir}/supported-files/sshd_config" ]]; then error "$(cat $err_msg)" fi else - echo -e "\033[1G [ \033[31m\033[1mskipped ] $msg" + echo -e "\033[1G [ \033[30m\033[1mskip\033[m ] $msg" fi @@ -1412,7 +1537,7 @@ if [[ -f "${working_dir}/supported-files/templates_root/.bashrc" ]]; then error "$(cat $err_msg)" fi else - echo -e "\033[1G [ \033[31m\033[1mskipped ] $msg" + echo -e "\033[1G [ \033[30m\033[1mskip\033[m ] $msg" fi @@ -1491,7 +1616,7 @@ if [[ -f "${working_dir}/supported-files/templates_root/.profile" ]]; then error "$(cat $err_msg)" fi else - echo -e "\033[1G [ \033[31m\033[1mskipped ] $msg" + echo -e "\033[1G [ \033[30m\033[1mskip\033[m ] $msg" fi @@ -1533,7 +1658,7 @@ if [[ -f "${working_dir}/supported-files/templates_root/.vimrc" ]]; then error "$(cat $err_msg)" fi else - echo -e "\033[1G [ \033[31m\033[1mskipped ] $msg" + echo -e "\033[1G [ \033[30m\033[1mskip\033[m ] $msg" fi @@ -1683,7 +1808,7 @@ if [[ -f "${working_dir}/supported-files/templates_root/.ssh/authorized_keys2" ] error "$(cat $err_msg)" fi else - echo -e "\033[1G [ \033[31m\033[1mskipped ] $msg" + echo -e "\033[1G [ \033[30m\033[1mskip\033[m ] $msg" fi