summaryrefslogtreecommitdiffstats
path: root/share/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'share/scripts')
-rwxr-xr-xshare/scripts/debconf44
-rwxr-xr-xshare/scripts/debconf.d/0003-debconf21
-rw-r--r--share/scripts/debconf.d/0003-debconf.templates6
-rwxr-xr-xshare/scripts/debootstrap2
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
;;