From 8e0f4ce3fc5ec61e94f7570e65c6c3bcaf09c415 Mon Sep 17 00:00:00 2001 From: Christoph Date: Sat, 13 Nov 2021 02:22:31 +0100 Subject: [PATCH] dupport dhcp if linux distribution is Ubuntu. --- create-lx-container.sh | 550 ++++++++++++++++++++++------------------- 1 file changed, 300 insertions(+), 250 deletions(-) diff --git a/create-lx-container.sh b/create-lx-container.sh index 69ef01c..c150ca3 100755 --- a/create-lx-container.sh +++ b/create-lx-container.sh @@ -300,6 +300,8 @@ echononl "\033[1mLinux Distribution [$DEFAULT_LXC_DIST]:\033[m " read LXC_DIST if [[ -z "$(trim $LXC_DIST)" ]] ; then LXC_DIST="$DEFAULT_LXC_DIST" +else + LXC_DIST="${LXC_DIST,,}" fi echo "" @@ -314,6 +316,8 @@ echononl "\033[1mCode name [${DEFAULT_CODENAME}]:\033[m " read LXC_RELEASE if [[ -z "$(trim $LXC_RELEASE)" ]] ; then LXC_RELEASE="$DEFAULT_CODENAME" +else + LXC_RELEASE="${LXC_RELEASE,,}" fi #while [[ -z "$(trim $LXC_RELEASE)" ]]; do @@ -347,265 +351,289 @@ echo "" echo -e "\033[32m--\033[m" echo "" +NETWORK_CONFIGURATION_DHCP=false echo " # Insert first IPv4 Address for the new LX Containers." echo " #" +if [[ "$LXC_DIST" = "ubuntu" ]] ; then + echo -e " # Type \033[33mNone\033[m or \033[33mDHCP\033[m if no ipv4-address should be assigned" + echo " #" +fi echo "" echononl "\033[1mFirst IPv4 Address:\033[m " read IPV4_ADDRESS_1 +if [[ "$LXC_DIST" = "ubuntu" ]] && ([[ "${IPV4_ADDRESS_1,,}" = 'none' ]] \ + || [[ "${IPV4_ADDRESS_1,,}" = 'dhcp' ]]) ; then + NETWORK_CONFIGURATION_DHCP=true +else -while ! $(is_valid_ipv4 $IPV4_ADDRESS_1); do - if [[ -z "$(trim $IPV4_ADDRESS_1)" ]]; then - warn "Parameter is needed. Try again.." - else - warn "'$IPV4_ADDRESS_1' is not a valid IPv4 Address. Try again.." - fi - 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" -DEFAULT_IPV4_NAME_SERVER_1="${_octets[0]}.${_octets[1]}.${_octets[2]}.1" + while ! $(is_valid_ipv4 $IPV4_ADDRESS_1); do + if [[ -z "$(trim $IPV4_ADDRESS_1)" ]]; then + warn "Parameter is needed. Try again.." + else + warn "'$IPV4_ADDRESS_1' is not a valid IPv4 Address. Try again.." + fi + echononl "\033[1mFirst IPv4 Address:\033[m " + read IPV4_ADDRESS_1 -echo "" -echo -e "\033[32m--\033[m" -echo "" + if [[ "$LXC_DIST" = "ubuntu" ]] && ([[ "${IPV4_ADDRESS_1,,}" = 'none' ]] \ + || [[ "${IPV4_ADDRESS_1,,}" = 'dhcp' ]]) ; then + NETWORK_CONFIGURATION_DHCP=true + break + fi -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 [$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 - IPV4_GATEWAY_1="$DEFAULT_IPV4_GATEWAY_1" - break - else - warn "'$IPV4_GATEWAY_1' is not a valid IPv4 Address. Try again.." - fi + done + +fi + +if ! $NETWORK_CONFIGURATION_DHCP ; then + + _octets=( ${IPV4_ADDRESS_1//\./ } ) + DEFAULT_IPV4_GATEWAY_1="${_octets[0]}.${_octets[1]}.${_octets[2]}.1" + DEFAULT_IPV4_NAME_SERVER_1="${_octets[0]}.${_octets[1]}.${_octets[2]}.1" + + echo "" + echo -e "\033[32m--\033[m" + 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 [$DEFAULT_IPV4_GATEWAY_1]:\033[m " read IPV4_GATEWAY_1 -done -echo "" -echo -e "\033[32m--\033[m" -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 [$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 - 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 - - -if [[ "$LXC_DIST" = "debian" ]]; then - echo "" - echo -e "\033[32m--\033[m" - echo "" - echononl "\033[1mDo you want to apply a second IPv4 Address?\033[m [yes/no]: " - read OK - [[ "$(trim ${OK,,})" = "yes" ]] && _second_ipv4=true || _second_ipv4=false - - if $_second_ipv4 ; then - - _last_octet=${MAC_ADDRESS_1: -2} - _new_last_octet="$(printf "%X\n" $((0x$_last_octet + 1)))" - if [[ ${#_new_last_octet} -eq 1 ]]; then - _new_last_octet="0$_new_last_octet" - elif [[ ${#_new_last_octet} -eq 3 ]]; then - _new_last_octet="00" - fi - DEFAULT_MAC_ADDRESS_2="${MAC_ADDRESS_1:0:14}:$_new_last_octet" - - echo "" - echo -e "\033[32m--\033[m" - echo "" - - echo " # Insert MAC Address for the second network device of the new LX Containers." - echo " #" - echo " # Type to accept the randomised created one '$DEFAULT_MAC_ADDRESS_2'." - echo "" - echononl "\033[1mMAC Address of the second network device [$DEFAULT_MAC_ADDRESS_2]:\033[m " - read MAC_ADDRESS_2 - - while ! $(is_valid_mac_address $MAC_ADDRESS_2) ; do - if [[ -z "$(trim $MAC_ADDRESS_2)" ]] ; then - MAC_ADDRESS_2="$DEFAULT_MAC_ADDRESS_2" - break - fi - warn "'$MAC_ADDRESS_2' isn't a valid MAC Address." - echononl "\033[1mMAC Address of the second network device [$DEFAULT_MAC_ADDRESS_2]:\033[m " - read MAC_ADDRESS_2 - done - - echo "" - echo -e "\033[32m--\033[m" - echo "" - - echo " # Insert second IPv4 Address for the new LX Containers." - echo " #" - echo "" - echononl "\033[1mSecond IPv4 Address:\033[m " - read IPV4_ADDRESS_2 - - while ! $(is_valid_ipv4 $IPV4_ADDRESS_2); do - if [[ -z "$(trim $IPV4_ADDRESS_2)" ]]; then - warn "Parameter is needed. Try again.." - else - warn "'$IPV4_ADDRESS_2' is not a valid IPv4 Address. Try again.." - fi - echononl "\033[1mSecond IPv4 Address:\033[m " - read IPV4_ADDRESS_2 - done - - echo "" - echo -e "\033[32m--\033[m" - echo "" - - echo " # Insert IPv4 Address for the gateway (second)." - echo " #" - echo " # Normally, the second gateway is the same as the first one. Change if you" - echo " # know what you are doing." - echo " #" - echo " # Type to accept the default one" - echo "" - echononl "\033[1mIPv4 (second) Gateway Address [$IPV4_GATEWAY_1]:\033[m " - read IPV4_GATEWAY_2 - - while ! $(is_valid_ipv4 $IPV4_GATEWAY_2) ; do - if [[ -z "$(trim $IPV4_GATEWAY_2)" ]]; then - IPV4_GATEWAY_2="$IPV4_GATEWAY_1" - break - else - warn "'$IPV4_GATEWAY_2' is not a valid IPv4 Address. Try again.." - fi - echononl "\033[1mIPv4 (second) Gateway Address:\033[m " - read IPV4_GATEWAY_2 - done - - echo "" - echo -e "\033[32m--\033[m" - echo "" - - echo " # Insert Netmask for the second IPv4 Address." - echo " #" - echo " # Type to accept the default one" - echo "" - echononl "\033[1mNetmask (second) IPv4 Address [$IPV4_NETMASK_1]:\033[m " - read IPV4_NETMASK_2 - - while ! $(is_valid_ipv4 $IPV4_NETMASK_2) ; do - if [[ -z "$(trim $IPV4_NETMASK_2)" ]]; then - IPV4_NETMASK_2="$IPV4_NETMASK_1" - break - else - warn "'$IPV4_NETMASK_2' is not a valid netmask. Try again.." - fi - echononl "\033[1mNetmask (second) IPv4 Address:\033[m " - read IPV4_NETMASK_2 - done - IPV4_PREFIX_2="$(netmask2cidr $IPV4_NETMASK_2)" - IPV6_PREFIX_2=$DEFAULT_IPV6_PREFIX - fi - -else # if [[ "$LXC_DIST" = "debian" ]]; then - - echo "" - echo -e "\033[32m--\033[m" - echo "" - - echo " # Insert Nameserver for the first IPv4 Address." - echo " #" - echo " # Type to accept the default one" - echo "" - echononl "\033[1mNameserver (IPv4 Address) [$DEFAULT_IPV4_NAME_SERVER_1]:\033[m " - read IPV4_NAME_SERVER_1 - - while ! $(is_valid_ipv4 $IPV4_NAME_SERVER_1) ; do - if [[ -z "$(trim $IPV4_NAME_SERVER_1)" ]]; then - IPV4_NAME_SERVER_1="$DEFAULT_IPV4_NAME_SERVER_1" + while ! $(is_valid_ipv4 $IPV4_GATEWAY_1) ; do + if [[ -z "$(trim $IPV4_GATEWAY_1)" ]]; then + IPV4_GATEWAY_1="$DEFAULT_IPV4_GATEWAY_1" break else - warn "'$IPV4_NAME_SERVER_1' is not a valid IPv4 address. Try again.." + warn "'$IPV4_GATEWAY_1' is not a valid IPv4 Address. Try again.." fi - echononl "\033[1mNameserver (IPv4 Address) [$DEFAULT_IPV4_NAME_SERVER_1]:\033[m " - read IPV4_NAME_SERVER_1 + echononl "\033[1mIPv4 (first) Gateway Address [$DEFAULT_IPV4_GATEWAY_1]:\033[m " + read IPV4_GATEWAY_1 done echo "" echo -e "\033[32m--\033[m" echo "" - echo " # Insert Search Domain for the new LX Containers." + + echo " # Insert Netmask for the first IPv4 Address." echo " #" - echo -e " # Type \033[33mNone\033[m if no search domain should be assigned" + echo " # Type to accept the default '$DEFAULT_IPV4_NETMASK_1'." + echo "" + 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 + 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 + + + if [[ "$LXC_DIST" = "debian" ]]; then + echo "" + echo -e "\033[32m--\033[m" + echo "" + echononl "\033[1mDo you want to apply a second IPv4 Address?\033[m [yes/no]: " + read OK + [[ "$(trim ${OK,,})" = "yes" ]] && _second_ipv4=true || _second_ipv4=false + + if $_second_ipv4 ; then + + _last_octet=${MAC_ADDRESS_1: -2} + _new_last_octet="$(printf "%X\n" $((0x$_last_octet + 1)))" + if [[ ${#_new_last_octet} -eq 1 ]]; then + _new_last_octet="0$_new_last_octet" + elif [[ ${#_new_last_octet} -eq 3 ]]; then + _new_last_octet="00" + fi + DEFAULT_MAC_ADDRESS_2="${MAC_ADDRESS_1:0:14}:$_new_last_octet" + + echo "" + echo -e "\033[32m--\033[m" + echo "" + + echo " # Insert MAC Address for the second network device of the new LX Containers." + echo " #" + echo " # Type to accept the randomised created one '$DEFAULT_MAC_ADDRESS_2'." + echo "" + echononl "\033[1mMAC Address of the second network device [$DEFAULT_MAC_ADDRESS_2]:\033[m " + read MAC_ADDRESS_2 + + while ! $(is_valid_mac_address $MAC_ADDRESS_2) ; do + if [[ -z "$(trim $MAC_ADDRESS_2)" ]] ; then + MAC_ADDRESS_2="$DEFAULT_MAC_ADDRESS_2" + break + fi + warn "'$MAC_ADDRESS_2' isn't a valid MAC Address." + echononl "\033[1mMAC Address of the second network device [$DEFAULT_MAC_ADDRESS_2]:\033[m " + read MAC_ADDRESS_2 + done + + echo "" + echo -e "\033[32m--\033[m" + echo "" + + echo " # Insert second IPv4 Address for the new LX Containers." + echo " #" + echo "" + echononl "\033[1mSecond IPv4 Address:\033[m " + read IPV4_ADDRESS_2 + + while ! $(is_valid_ipv4 $IPV4_ADDRESS_2); do + if [[ -z "$(trim $IPV4_ADDRESS_2)" ]]; then + warn "Parameter is needed. Try again.." + else + warn "'$IPV4_ADDRESS_2' is not a valid IPv4 Address. Try again.." + fi + echononl "\033[1mSecond IPv4 Address:\033[m " + read IPV4_ADDRESS_2 + done + + echo "" + echo -e "\033[32m--\033[m" + echo "" + + echo " # Insert IPv4 Address for the gateway (second)." + echo " #" + echo " # Normally, the second gateway is the same as the first one. Change if you" + echo " # know what you are doing." + echo " #" + echo " # Type to accept the default one" + echo "" + echononl "\033[1mIPv4 (second) Gateway Address [$IPV4_GATEWAY_1]:\033[m " + read IPV4_GATEWAY_2 + + while ! $(is_valid_ipv4 $IPV4_GATEWAY_2) ; do + if [[ -z "$(trim $IPV4_GATEWAY_2)" ]]; then + IPV4_GATEWAY_2="$IPV4_GATEWAY_1" + break + else + warn "'$IPV4_GATEWAY_2' is not a valid IPv4 Address. Try again.." + fi + echononl "\033[1mIPv4 (second) Gateway Address:\033[m " + read IPV4_GATEWAY_2 + done + + echo "" + echo -e "\033[32m--\033[m" + echo "" + + echo " # Insert Netmask for the second IPv4 Address." + echo " #" + echo " # Type to accept the default one" + echo "" + echononl "\033[1mNetmask (second) IPv4 Address [$IPV4_NETMASK_1]:\033[m " + read IPV4_NETMASK_2 + + while ! $(is_valid_ipv4 $IPV4_NETMASK_2) ; do + if [[ -z "$(trim $IPV4_NETMASK_2)" ]]; then + IPV4_NETMASK_2="$IPV4_NETMASK_1" + break + else + warn "'$IPV4_NETMASK_2' is not a valid netmask. Try again.." + fi + echononl "\033[1mNetmask (second) IPv4 Address:\033[m " + read IPV4_NETMASK_2 + done + IPV4_PREFIX_2="$(netmask2cidr $IPV4_NETMASK_2)" + IPV6_PREFIX_2=$DEFAULT_IPV6_PREFIX + fi + + else # if [[ "$LXC_DIST" = "debian" ]]; then + + echo "" + echo -e "\033[32m--\033[m" + echo "" + + echo " # Insert Nameserver for the first IPv4 Address." + echo " #" + echo " # Type to accept the default one" + echo "" + echononl "\033[1mNameserver (IPv4 Address) [$DEFAULT_IPV4_NAME_SERVER_1]:\033[m " + read IPV4_NAME_SERVER_1 + + while ! $(is_valid_ipv4 $IPV4_NAME_SERVER_1) ; do + if [[ -z "$(trim $IPV4_NAME_SERVER_1)" ]]; then + IPV4_NAME_SERVER_1="$DEFAULT_IPV4_NAME_SERVER_1" + break + else + warn "'$IPV4_NAME_SERVER_1' is not a valid IPv4 address. Try again.." + fi + echononl "\033[1mNameserver (IPv4 Address) [$DEFAULT_IPV4_NAME_SERVER_1]:\033[m " + read IPV4_NAME_SERVER_1 + done + + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo " # Insert Search Domain for the new LX Containers." + echo " #" + echo -e " # Type \033[33mNone\033[m if no search domain should be assigned" + echo " #" + echo "" + echononl "\033[1mSearch Domain:\033[m " + read SEARCH_DOMAIN + + while [[ -z "$(trim $SEARCH_DOMAIN)" ]]; do + warn "Parameter is needed. Try again.." + echononl "\033[1mSEARCH_DOMAIN:\033[m " + read SEARCH_DOMAIN + done + if [[ "${SEARCH_DOMAIN,,}" = 'none' ]] ; then + IPV6_ADDRESS_1="" + fi + + fi # if [[ "$LXC_DIST" = "debian" ]]; then + + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo " # Insert first IPv6 Address for the new LX Containers." + echo " #" + echo -e " # Type \033[33mNone\033[m if no ipv6-address should be assigned" echo " #" echo "" - echononl "\033[1mSearch Domain:\033[m " - read SEARCH_DOMAIN + echononl "\033[1mFirst IPv6 Address:\033[m " + read IPV6_ADDRESS_1 - while [[ -z "$(trim $SEARCH_DOMAIN)" ]]; do + while [[ -z "$(trim $IPV6_ADDRESS_1)" ]]; do warn "Parameter is needed. Try again.." - echononl "\033[1mSEARCH_DOMAIN:\033[m " - read SEARCH_DOMAIN + echononl "\033[1mFirst IPv6 Address:\033[m " + read IPV6_ADDRESS_1 done - if [[ "${SEARCH_DOMAIN,,}" = 'none' ]] ; then + if [[ "${IPV6_ADDRESS_1,,}" = 'none' ]] ; then IPV6_ADDRESS_1="" fi -fi # if [[ "$LXC_DIST" = "debian" ]]; then + if [[ -n "$IPV6_ADDRESS_1" ]] ; then + echo "" + echo -e "\033[32m--\033[m" + echo "" -echo "" -echo -e "\033[32m--\033[m" -echo "" -echo " # Insert first IPv6 Address for the new LX Containers." -echo " #" -echo -e " # Type \033[33mNone\033[m if no ipv6-address should be assigned" -echo " #" -echo "" -echononl "\033[1mFirst IPv6 Address:\033[m " -read IPV6_ADDRESS_1 - -while [[ -z "$(trim $IPV6_ADDRESS_1)" ]]; do - warn "Parameter is needed. Try again.." - echononl "\033[1mFirst IPv6 Address:\033[m " - read IPV6_ADDRESS_1 -done -if [[ "${IPV6_ADDRESS_1,,}" = 'none' ]] ; then - IPV6_ADDRESS_1="" -fi - -if [[ -n "$IPV6_ADDRESS_1" ]] ; then - echo "" - echo -e "\033[32m--\033[m" - echo "" - - echo " # Insert IPv6 Address for the gateway." - echo " #" - echo "" - echononl "\033[1mIPv6 (first) Gateway Address:\033[m " - read IPV6_GATEWAY_1 - - while [[ -z "$(trim $IPV6_GATEWAY_1)" ]]; do - warn "Parameter is needed. Try again.." - echononl "\033[1mFirst IPv6 i(first) Gateway Address:\033[m " + echo " # Insert IPv6 Address for the gateway." + echo " #" + echo "" + echononl "\033[1mIPv6 (first) Gateway Address:\033[m " read IPV6_GATEWAY_1 - done -fi + + while [[ -z "$(trim $IPV6_GATEWAY_1)" ]]; do + warn "Parameter is needed. Try again.." + echononl "\033[1mFirst IPv6 i(first) Gateway Address:\033[m " + read IPV6_GATEWAY_1 + done + fi + +fi # if ! $NETWORK_CONFIGURATION_DHCP ; then echo "" @@ -618,7 +646,7 @@ echo "" echononl "\033[1mFull qualified hostname:\033[m " read FQ_HOSTNAME -while [[ -z "$(trim $IPV4_NETMASK_1)" ]]; do +while [[ -z "$(trim $FQ_HOSTNAME)" ]]; do warn "Parameter is needed. Try again" echononl "\033[1mFull qualified hostname::\033[m " read FQ_HOSTNAME @@ -649,24 +677,28 @@ echo " Code name (or release number)............: $LXC_RELEASE" echo "" echo " MAC Address (first) network device.......: $MAC_ADDRESS_1" echo "" -echo " IPv4 Address (first).....................: $IPV4_ADDRESS_1" -echo " IPv4 Gateway Address (first).............: $IPV4_GATEWAY_1" -echo " Netmask first IPv4 Address...............: $IPV4_NETMASK_1" -echo " CIDR (IPv4 Prefix) of netmask............: $IPV4_PREFIX_1" -echo "" -if [[ -n "$IPV6_ADDRESS_1" ]] ; then - echo " IPv6 Address (first).....................: $IPV6_ADDRESS_1" - echo " IPv6 Gateway Address (first).............: $IPV6_GATEWAY_1" +if $NETWORK_CONFIGURATION_DHCP ; then + echo -e " Network Configuration....................: \033[33mvia DHCP\033[m" else - echo -e " IPv6 Address (first).....................: - \033[33mNot set\033[m - " -fi -if $_second_ipv4 ; then - echo "" - echo " MAC Address (second) network device......: $MAC_ADDRESS_2" - echo " IPv4 Address (second)....................: $IPV4_ADDRESS_2" - echo " IPv4 Gateway Address (second)............: $IPV4_GATEWAY_2" - echo " Netmask second IPv4 Address..............: $IPV4_NETMASK_2" - echo " CIDR (IPv4 Prefix) of netmask............: $IPV4_PREFIX_2" + echo " IPv4 Address (first).....................: $IPV4_ADDRESS_1" + echo " IPv4 Gateway Address (first).............: $IPV4_GATEWAY_1" + echo " Netmask first IPv4 Address...............: $IPV4_NETMASK_1" + echo " CIDR (IPv4 Prefix) of netmask............: $IPV4_PREFIX_1" + echo "" + if [[ -n "$IPV6_ADDRESS_1" ]] ; then + echo " IPv6 Address (first).....................: $IPV6_ADDRESS_1" + echo " IPv6 Gateway Address (first).............: $IPV6_GATEWAY_1" + else + echo -e " IPv6 Address (first).....................: - \033[33mNot set\033[m - " + fi + if $_second_ipv4 ; then + echo "" + echo " MAC Address (second) network device......: $MAC_ADDRESS_2" + echo " IPv4 Address (second)....................: $IPV4_ADDRESS_2" + echo " IPv4 Gateway Address (second)............: $IPV4_GATEWAY_2" + echo " Netmask second IPv4 Address..............: $IPV4_NETMASK_2" + echo " CIDR (IPv4 Prefix) of netmask............: $IPV4_PREFIX_2" + fi fi echo "" echo " Hostname.................................: $HOSTNAME" @@ -799,7 +831,7 @@ echo -en "\033[1G \033[1;30m[ ... ] \033[32m$msg\033[m" if [[ "$LXC_DIST" = "ubuntu" ]] ; then lxc-create -n $LXC_NAME -t download -P "$(dirname "$LXC_CONTAINER_DIR")" -- \ - -d $LXC_DIST --release $LXC_RELEASE --arch amd64 > /dev/null 2> $err_msg + --no-validate -d $LXC_DIST --release $LXC_RELEASE --arch amd64 > /dev/null 2> $err_msg elif [[ "$LXC_DIST" = "debian" ]]; then lxc-create -n $LXC_NAME -t $LXC_DIST -P "$(dirname "$LXC_CONTAINER_DIR")" -- \ --release $LXC_RELEASE --arch amd64 > /dev/null 2> $err_msg @@ -1008,6 +1040,7 @@ lxc.network.flags = up lxc.network.link = br0 lxc.network.name = eth0 lxc.network.hwaddr = $MAC_ADDRESS_1 + # IPv4 lxc.network.ipv4 = ${IPV4_ADDRESS_1}/$IPV4_PREFIX_1 lxc.network.ipv4.gateway = ${IPV4_GATEWAY_1} @@ -1059,7 +1092,7 @@ EOF fi else - cat << EOF > ${LXC_CONTAINER_DIR}/config 2> $err_msg + cat << EOF >> ${LXC_CONTAINER_DIR}/config 2> $err_msg lxc.rootfs.path = ${LXC_CONTAINER_DIR}/rootfs # Common configuration @@ -1081,6 +1114,7 @@ lxc.net.0.flags = up lxc.net.0.link = br0 lxc.net.0.name = eth0 lxc.net.0.hwaddr = $MAC_ADDRESS_1 + # IPv4 lxc.net.0.ipv4.address = ${IPV4_ADDRESS_1}/$IPV4_PREFIX_1 lxc.net.0.ipv4.gateway = ${IPV4_GATEWAY_1} @@ -1571,7 +1605,7 @@ EOF echo -e "\033[1G [ \033[32m\033[1mok\033[m ] ${msg_ok}${blank_signs}" fi -else # if [[ "$LXC_DIST" = "debian" ]]; +elif [[ "$LXC_DIST" = "ubuntu" ]]; then msg="Backup file '${LXC_CONTAINER_DIR}/rootfs/etc/netplan/10-lxc.yaml" echo -en "\033[1G \033[1;30m[ ... ] \033[32m$msg\033[m" @@ -1615,7 +1649,20 @@ else # if [[ "$LXC_DIST" = "debian" ]]; echo -en "\033[1G \033[1;30m[ \033[5m\033[1m...\033[m ] \033[32m$msg\033[m" _failed=false - cat << EOF > ${LXC_CONTAINER_DIR}/rootfs/etc/netplan/10-lxc.yaml + + if $NETWORK_CONFIGURATION_DHCP ; then + cat << EOF > ${LXC_CONTAINER_DIR}/rootfs/etc/netplan/10-lxc.yaml +network: + version: 2 + ethernets: + eth0: + dhcp4: true + dhcp-identifier: mac +EOF + + else + + cat << EOF > ${LXC_CONTAINER_DIR}/rootfs/etc/netplan/10-lxc.yaml network: version: 2 renderer: networkd @@ -1632,6 +1679,9 @@ network: - ${SEARCH_DOMAIN} EOF + + fi # if $NETWORK_CONFIGURATION_DHCP + if [[ $? -ne 0 ]]; then _failed=true fi