diff options
Diffstat (limited to 'share/scripts')
-rwxr-xr-x | share/scripts/debconf | 44 | ||||
-rwxr-xr-x | share/scripts/debconf.d/0003-debconf | 21 | ||||
-rw-r--r-- | share/scripts/debconf.d/0003-debconf.templates | 6 | ||||
-rwxr-xr-x | share/scripts/debootstrap | 2 |
4 files changed, 64 insertions, 9 deletions
diff --git a/share/scripts/debconf b/share/scripts/debconf index cbde345..55c2b8b 100755 --- a/share/scripts/debconf +++ b/share/scripts/debconf @@ -46,7 +46,7 @@ Parameters () shift 2 ;; - --cnt.autostart) + --cnt.auto) # ignore shift 2 ;; @@ -702,7 +702,7 @@ EOF then echo "${CONTAINER_COMMAND}" > "${DIRECTORY}/.container-command" - chmod 0755 "sh /.container-command" + chmod 0755 "${DIRECTORY}/.container-command" Chroot "${DIRECTORY}" "sh /.container-command" rm -f "${DIRECTORY}/.container-command" @@ -749,7 +749,7 @@ EOF none) cat >> "${DIRECTORY}/etc/network/interfaces.tmp" << EOF -iface host${NUMBER} inet manual +iface eth${NUMBER} inet manual EOF ;; @@ -757,8 +757,8 @@ EOF dhcp) cat >> "${DIRECTORY}/etc/network/interfaces.tmp" << EOF -auto host${NUMBER} -iface host${NUMBER} inet dhcp +auto eth${NUMBER} +iface eth${NUMBER} inet dhcp EOF ;; @@ -766,8 +766,8 @@ EOF static) cat >> "${DIRECTORY}/etc/network/interfaces.tmp" << EOF -auto host${NUMBER} -iface host${NUMBER} inet static +auto eth${NUMBER} +iface eth${NUMBER} inet static address ${IPV4_ADDRESS} EOF @@ -902,7 +902,33 @@ Commands () fi # config (FIXME) - sed -i -e "s|^network-bridge=.*|network-bridge=${NETWORK0_BRIDGE}|" "${CONFIG}/${NAME}.conf" + + # maximum of 15 characters, prefix is 'veth-' + HOSTNAME_SHORT="$(echo ${NAME} | cut -c-8)" + HOST_INTERFACE_NAME="$(echo ${NETWORK0_VETH:-veth-${HOSTNAME_SHORT}-0})" + + sed -i -e "s|^cnt.network-bridge=.*|cnt.network-bridge=${HOST_INTERFACE_NAME}:${NETWORK0_BRIDGE:-br0}|g" "${CONFIG}/${NAME}.conf" + sed -i -e "s|^network-veth-extra=.*|network-veth-extra=${HOST_INTERFACE_NAME}:eth0|g" "${CONFIG}/${NAME}.conf" + + for NUMBER in $(seq 1 ${NETWORK_NUMBER}) + do + eval IPV4_METHOD="$`echo NETWORK${NUMBER}_IPV4_METHOD`" + + if [ -z "${IPV4_METHOD}" ] + then + continue + fi + + eval HOST_INTERFACE_NAME="$`echo NETWORK${NUMBER}_VETH`" + + HOST_INTERFACE_NAME="$(echo ${HOST_INTERFACE_NAME:-veth-${HOSTNAME_SHORT}-${NUMBER}})" + CONTAINER_INTERFACE_NAME="eth${NUMBER}" + + sed -i -e "/^register=.*/ a network-veth-extra=${HOST_INTERFACE_NAME}:${CONTAINER_INTERFACE_NAME}" "${CONFIG}/${NAME}.conf" + + eval BRIDGE="$`echo NETWORK${NUMBER}_BRIDGE`" + sed -i -e "/^register=.*/ a cnt.network-bridge=${HOST_INTERFACE_NAME}:${BRIDGE:-br${NUMBER}}" "${CONFIG}/${NAME}.conf" + done # Setting root password echo root:${ROOT_PASSWORD} | chroot "${DIRECTORY}" chpasswd @@ -932,6 +958,8 @@ SYSTEM="${MACHINES}/${NAME}" Debconf +export NAME + # Run debconf parts for SCRIPT in /usr/share/container-tools/scripts/debconf.d/* do diff --git a/share/scripts/debconf.d/0003-debconf b/share/scripts/debconf.d/0003-debconf index 03db192..df14ef0 100755 --- a/share/scripts/debconf.d/0003-debconf +++ b/share/scripts/debconf.d/0003-debconf @@ -673,6 +673,10 @@ Network_defaults () # * respect pre-existing interfaces (or interfaces.d) # * add support for bridges (make interface configuration more generic?) + HOSTNAME_SHORT="$(echo veth-$(echo ${NAME} | cut -c-8)-0)" + VETH_NAME="$(echo ${HOSTNAME_SHORT:-veth0})" + + NETWORK0_VETH="${NETWORK0_VETH:-$VETH_NAME}" NETWORK0_BRIDGE="${NETWORK0_BRIDGE:-br0}" NETWORK0_IPV4_METHOD="${NETWORK0_IPV4_METHOD:-dhcp}" NETWORK0_IPV4_ADDRESS="${NETWORK0_IPV4_ADDRESS:-192.168.1.2}" @@ -695,6 +699,9 @@ Network () db_get cnt-debconf/network0/bridge NETWORK0_BRIDGE="${RET}" # string (w/o empty) + db_get cnt-debconf/network0/veth + NETWORK0_VETH="${RET}" # string (w/o empty) + db_get cnt-debconf/network0/ipv4-method NETWORK0_IPV4_METHOD="${RET}" # select @@ -739,6 +746,9 @@ Network () db_set cnt-debconf/network0/bridge "${NETWORK0_BRIDGE}" db_fset cnt-debconf/network0/bridge seen false + db_set cnt-debconf/network0/veth "${NETWORK0_VETH}" + db_fset cnt-debconf/network0/veth seen false + db_set cnt-debconf/network0/ipv4-method "${NETWORK0_IPV4_METHOD}" db_fset cnt-debconf/network0/ipv4-method seen false @@ -785,6 +795,9 @@ Network () db_get cnt-debconf/network0/bridge NETWORK0_BRIDGE="${RET}" # select + db_get cnt-debconf/network0/veth + NETWORK0_VETH="${RET}" # select + db_get cnt-debconf/network0/ipv4-method NETWORK0_IPV4_METHOD="${RET}" # select @@ -840,6 +853,11 @@ Network () eval NETWORK${NUMBER}_BRIDGE="\"${RET}\"" # string (w/o empty) fi + if db_get cnt-debconf/network${NUMBER}/veth + then + eval NETWORK${NUMBER}_VETH="\"${RET}\"" # string (w/o empty) + fi + if db_get cnt-debconf/network${NUMBER}/ipv4-comment then eval NETWORK${NUMBER}_IPV4_COMMENT="\"${RET}\"" # string (w/ empty) @@ -911,6 +929,9 @@ Network () eval BRIDGE="$`echo NETWORK${NUMBER}_BRIDGE`" echo "NETWORK${NUMBER}_BRIDGE=\"${BRIDGE}\"" >> "${DEBCONF_TMPDIR}/debconf.default" + eval VETH="$`echo NETWORK${NUMBER}_VETH`" + echo "NETWORK${NUMBER}_VETH=\"${VETH}\"" >> "${DEBCONF_TMPDIR}/debconf.default" + eval COMMENT="$`echo NETWORK${NUMBER}_IPV4_COMMENT`" echo "NETWORK${NUMBER}_IPV4_COMMENT=\"${COMMENT}\"" >> "${DEBCONF_TMPDIR}/debconf.default" diff --git a/share/scripts/debconf.d/0003-debconf.templates b/share/scripts/debconf.d/0003-debconf.templates index c568d72..82a7ca1 100644 --- a/share/scripts/debconf.d/0003-debconf.templates +++ b/share/scripts/debconf.d/0003-debconf.templates @@ -98,6 +98,12 @@ Default: Description: Bridge Bridge. +Template: cnt-debconf/network0/veth +Type: string +Default: +Description: Veth name + Veth name. + Template: cnt-debconf/network0/ipv4-method Type: select Choices: dhcp, static, none diff --git a/share/scripts/debootstrap b/share/scripts/debootstrap index 208e050..0a9e733 100755 --- a/share/scripts/debootstrap +++ b/share/scripts/debootstrap @@ -45,7 +45,7 @@ Parameters () shift 2 ;; - --cnt.autostart) + --cnt.auto) # ignore shift 2 ;; |