[lxc-devel] [PATCH] Move some common Ubuntu config
Stéphane Graber
stgraber at ubuntu.com
Thu Dec 5 22:46:04 UTC 2013
This introduces a new /usr/share/lxc/config directory containing common
configuration snippets.
The two Ubuntu templates are then simplified to just include the
relevant entries avoiding a whole lot of hardcoded cgroup, capabilities
and mount points configuration.
An extra comment is also added at the top of all generated configuration
files telling the user to look at lxc.conf(5) for more information.
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
config/Makefile.am | 16 +----
config/default.conf.libvirt | 3 -
config/default.conf.ubuntu | 3 -
config/default.conf.unknown | 1 -
config/etc/Makefile.am | 15 ++++
config/etc/default.conf.libvirt | 3 +
config/etc/default.conf.ubuntu | 3 +
config/etc/default.conf.unknown | 1 +
config/templates/Makefile.am | 8 +++
config/templates/ubuntu-cloud.common.conf.in | 4 ++
config/templates/ubuntu-cloud.lucid.conf.in | 2 +
config/templates/ubuntu-cloud.userns.conf.in | 16 +++++
config/templates/ubuntu.common.conf.in | 48 +++++++++++++
config/templates/ubuntu.lucid.conf.in | 2 +
configure.ac | 9 +++
src/lxc/lxccontainer.c | 1 +
templates/lxc-ubuntu-cloud.in | 102 +++++++++------------------
templates/lxc-ubuntu.in | 87 ++++++++---------------
18 files changed, 178 insertions(+), 146 deletions(-)
delete mode 100644 config/default.conf.libvirt
delete mode 100644 config/default.conf.ubuntu
delete mode 100644 config/default.conf.unknown
create mode 100644 config/etc/Makefile.am
create mode 100644 config/etc/default.conf.libvirt
create mode 100644 config/etc/default.conf.ubuntu
create mode 100644 config/etc/default.conf.unknown
create mode 100644 config/templates/Makefile.am
create mode 100644 config/templates/ubuntu-cloud.common.conf.in
create mode 100644 config/templates/ubuntu-cloud.lucid.conf.in
create mode 100644 config/templates/ubuntu-cloud.userns.conf.in
create mode 100644 config/templates/ubuntu.common.conf.in
create mode 100644 config/templates/ubuntu.lucid.conf.in
diff --git a/config/Makefile.am b/config/Makefile.am
index 81d7709..7ca23eb 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,15 +1 @@
-configdir = $(sysconfdir)/lxc
-config_DATA = default.conf
-distroconf = @LXC_DISTRO_CONF@
-
-EXTRA_DIST = default.conf.ubuntu default.conf.libvirt default.conf.unknown
-
-default.conf:
- cp $(distroconf) $@
-
-clean-local:
- @$(RM) -f default.conf
-
-distclean-local:
- @$(RM) -f default.conf
- @$(RM) -f compile config.guess config.sub depcomp install-sh ltmain.sh missing Makefile.in Makefile
+SUBDIRS = etc templates
diff --git a/config/default.conf.libvirt b/config/default.conf.libvirt
deleted file mode 100644
index 6950dca..0000000
--- a/config/default.conf.libvirt
+++ /dev/null
@@ -1,3 +0,0 @@
-lxc.network.type = veth
-lxc.network.link = virbr0
-lxc.network.flags = up
diff --git a/config/default.conf.ubuntu b/config/default.conf.ubuntu
deleted file mode 100644
index 0a5ac71..0000000
--- a/config/default.conf.ubuntu
+++ /dev/null
@@ -1,3 +0,0 @@
-lxc.network.type = veth
-lxc.network.link = lxcbr0
-lxc.network.flags = up
diff --git a/config/default.conf.unknown b/config/default.conf.unknown
deleted file mode 100644
index 6c88010..0000000
--- a/config/default.conf.unknown
+++ /dev/null
@@ -1 +0,0 @@
-lxc.network.type = empty
diff --git a/config/etc/Makefile.am b/config/etc/Makefile.am
new file mode 100644
index 0000000..81d7709
--- /dev/null
+++ b/config/etc/Makefile.am
@@ -0,0 +1,15 @@
+configdir = $(sysconfdir)/lxc
+config_DATA = default.conf
+distroconf = @LXC_DISTRO_CONF@
+
+EXTRA_DIST = default.conf.ubuntu default.conf.libvirt default.conf.unknown
+
+default.conf:
+ cp $(distroconf) $@
+
+clean-local:
+ @$(RM) -f default.conf
+
+distclean-local:
+ @$(RM) -f default.conf
+ @$(RM) -f compile config.guess config.sub depcomp install-sh ltmain.sh missing Makefile.in Makefile
diff --git a/config/etc/default.conf.libvirt b/config/etc/default.conf.libvirt
new file mode 100644
index 0000000..6950dca
--- /dev/null
+++ b/config/etc/default.conf.libvirt
@@ -0,0 +1,3 @@
+lxc.network.type = veth
+lxc.network.link = virbr0
+lxc.network.flags = up
diff --git a/config/etc/default.conf.ubuntu b/config/etc/default.conf.ubuntu
new file mode 100644
index 0000000..0a5ac71
--- /dev/null
+++ b/config/etc/default.conf.ubuntu
@@ -0,0 +1,3 @@
+lxc.network.type = veth
+lxc.network.link = lxcbr0
+lxc.network.flags = up
diff --git a/config/etc/default.conf.unknown b/config/etc/default.conf.unknown
new file mode 100644
index 0000000..6c88010
--- /dev/null
+++ b/config/etc/default.conf.unknown
@@ -0,0 +1 @@
+lxc.network.type = empty
diff --git a/config/templates/Makefile.am b/config/templates/Makefile.am
new file mode 100644
index 0000000..6cc045b
--- /dev/null
+++ b/config/templates/Makefile.am
@@ -0,0 +1,8 @@
+templatesconfigdir=@LXCTEMPLATECONFIG@
+
+templatesconfig_DATA = \
+ ubuntu-cloud.common.conf \
+ ubuntu-cloud.lucid.conf \
+ ubuntu-cloud.userns.conf \
+ ubuntu.common.conf \
+ ubuntu.lucid.conf
diff --git a/config/templates/ubuntu-cloud.common.conf.in b/config/templates/ubuntu-cloud.common.conf.in
new file mode 100644
index 0000000..4d67722
--- /dev/null
+++ b/config/templates/ubuntu-cloud.common.conf.in
@@ -0,0 +1,4 @@
+# This derives from the main Ubuntu config
+lxc.include = @LXCTEMPLATECONFIG@/ubuntu.common.conf
+
+lxc.hook.clone = @LXCHOOKDIR@/ubuntu-cloud-prep
diff --git a/config/templates/ubuntu-cloud.lucid.conf.in b/config/templates/ubuntu-cloud.lucid.conf.in
new file mode 100644
index 0000000..78205e5
--- /dev/null
+++ b/config/templates/ubuntu-cloud.lucid.conf.in
@@ -0,0 +1,2 @@
+# This derives from the main Ubuntu lucid config
+lxc.include = @LXCTEMPLATECONFIG@/ubuntu.lucid.conf
diff --git a/config/templates/ubuntu-cloud.userns.conf.in b/config/templates/ubuntu-cloud.userns.conf.in
new file mode 100644
index 0000000..f47ede3
--- /dev/null
+++ b/config/templates/ubuntu-cloud.userns.conf.in
@@ -0,0 +1,16 @@
+# CAP_SYS_ADMIN in init-user-ns is required for cgroup.devices
+lxc.cgroup.devices.deny =
+lxc.cgroup.devices.allow =
+
+# We can't move bind-mounts, so don't use /dev/lxc/
+lxc.devttydir =
+
+# Extra bind-mounts for userns
+lxc.mount.entry = /dev/console dev/console none bind,create=file 0 0
+lxc.mount.entry = /dev/null dev/null none bind,create=file 0 0
+lxc.mount.entry = /dev/tty dev/tty none bind,create=file 0 0
+lxc.mount.entry = /dev/urandom dev/urandom none bind,create=file 0 0
+
+# Extra fstab entries as mountall can't mount those by itself
+lxc.mount.entry = /sys/firmware/efi/efivars sys/firmware/efi/efivars none bind,optional 0 0
+lxc.mount.entry = /proc/sys/fs/binfmt_misc proc/sys/fs/binfmt_misc none bind,optional 0 0
diff --git a/config/templates/ubuntu.common.conf.in b/config/templates/ubuntu.common.conf.in
new file mode 100644
index 0000000..8c61033
--- /dev/null
+++ b/config/templates/ubuntu.common.conf.in
@@ -0,0 +1,48 @@
+# Default pivot location
+lxc.pivotdir = lxc_putold
+
+# Default mount entries
+lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0
+lxc.mount.entry = sysfs sys sysfs defaults 0 0
+lxc.mount.entry = /sys/fs/fuse/connections sys/fs/fuse/connections none bind,optional 0 0
+lxc.mount.entry = /sys/kernel/debug sys/kernel/debug none bind,optional 0 0
+lxc.mount.entry = /sys/kernel/security sys/kernel/security none bind,optional 0 0
+lxc.mount.entry = /sys/fs/pstore sys/fs/pstore none bind,optional 0 0
+
+# Default console settings
+lxc.devttydir = lxc
+lxc.tty = 4
+lxc.pts = 1024
+
+# Default capabilities
+lxc.cap.drop = sys_module mac_admin mac_override sys_time
+
+# Default cgroup limits
+lxc.cgroup.devices.deny = a
+## Allow any mknod (but not using the node)
+lxc.cgroup.devices.allow = c *:* m
+lxc.cgroup.devices.allow = b *:* m
+## /dev/null and zero
+lxc.cgroup.devices.allow = c 1:3 rwm
+lxc.cgroup.devices.allow = c 1:5 rwm
+## consoles
+lxc.cgroup.devices.allow = c 5:0 rwm
+lxc.cgroup.devices.allow = c 5:1 rwm
+## /dev/{,u}random
+lxc.cgroup.devices.allow = c 1:8 rwm
+lxc.cgroup.devices.allow = c 1:9 rwm
+## /dev/pts/*
+lxc.cgroup.devices.allow = c 5:2 rwm
+lxc.cgroup.devices.allow = c 136:* rwm
+## rtc
+lxc.cgroup.devices.allow = c 254:0 rm
+## fuse
+lxc.cgroup.devices.allow = c 10:229 rwm
+## tun
+lxc.cgroup.devices.allow = c 10:200 rwm
+## full
+lxc.cgroup.devices.allow = c 1:7 rwm
+## hpet
+lxc.cgroup.devices.allow = c 10:228 rwm
+## kvm
+lxc.cgroup.devices.allow = c 10:232 rwm
diff --git a/config/templates/ubuntu.lucid.conf.in b/config/templates/ubuntu.lucid.conf.in
new file mode 100644
index 0000000..adb8b7e
--- /dev/null
+++ b/config/templates/ubuntu.lucid.conf.in
@@ -0,0 +1,2 @@
+# Ubuntu 10.04 LTS doesn't have /dev/lxc/
+lxc.devttydir =
diff --git a/configure.ac b/configure.ac
index 7b3da91..575493f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -361,6 +361,7 @@ AS_AC_EXPAND(LXC_USERNIC_CONF, "$with_usernic_conf")
AS_AC_EXPAND(LXC_USERNIC_DB, "$with_usernic_db")
AS_AC_EXPAND(LXCROOTFSMOUNT, "$with_rootfs_path")
AS_AC_EXPAND(LXCTEMPLATEDIR, "$datadir/lxc/templates")
+AS_AC_EXPAND(LXCTEMPLATECONFIG, "$datadir/lxc/config")
AS_AC_EXPAND(LXCHOOKDIR, "$datadir/lxc/hooks")
AS_AC_EXPAND(LXCINITDIR, "$libexecdir")
AS_AC_EXPAND(LOGPATH, "$with_log_path")
@@ -447,7 +448,15 @@ AC_CONFIG_FILES([
Makefile
lxc.pc
lxc.spec
+
config/Makefile
+ config/etc/Makefile
+ config/templates/Makefile
+ config/templates/ubuntu-cloud.common.conf
+ config/templates/ubuntu-cloud.lucid.conf
+ config/templates/ubuntu-cloud.userns.conf
+ config/templates/ubuntu.common.conf
+ config/templates/ubuntu.lucid.conf
doc/Makefile
doc/api/Makefile
diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
index 7f54f50..7e09da9 100644
--- a/src/lxc/lxccontainer.c
+++ b/src/lxc/lxccontainer.c
@@ -1127,6 +1127,7 @@ bool prepend_lxc_header(char *path, const char *t, char *const argv[])
fprintf(f, "%02x", md_value[i]);
fprintf(f, "\n");
#endif
+ fprintf(f, "# For additional config options, please look at lxc.conf(5)\n");
if (fwrite(contents, 1, flen, f) != flen) {
SYSERROR("Writing original contents");
free(contents);
diff --git a/templates/lxc-ubuntu-cloud.in b/templates/lxc-ubuntu-cloud.in
index 019ef5b..6798be5 100644
--- a/templates/lxc-ubuntu-cloud.in
+++ b/templates/lxc-ubuntu-cloud.in
@@ -24,6 +24,7 @@ set -e
STATE_DIR="@LOCALSTATEDIR@"
HOOK_DIR="@LXCHOOKDIR@"
CLONE_HOOK_FN="$HOOK_DIR/ubuntu-cloud-prep"
+LXC_TEMPLATE_CONFIG="@LXCTEMPLATECONFIG@"
if [ -r /etc/default/lxc ]; then
. /etc/default/lxc
@@ -59,81 +60,45 @@ copy_configuration()
grep -q "^lxc.network.hwaddr" $path/config || sed -i -e "/^lxc\.network\.type[ \t]*=[ \t]*veth/a lxc.network.hwaddr = 00:16:3e:$(openssl rand -hex 3| sed 's/\(..\)/\1:/g; s/.$//')" $path/config
fi
- grep -q "^lxc.rootfs" $path/config 2>/dev/null || echo "lxc.rootfs = $rootfs" >> $path/config
- cat <<EOF >> $path/config
-lxc.mount = $path/fstab
-lxc.pivotdir = lxc_putold
-
-lxc.devttydir =$ttydir
-lxc.tty = 4
-lxc.pts = 1024
-
-lxc.utsname = $name
-lxc.arch = $arch
-lxc.cap.drop = sys_module mac_admin mac_override sys_time
+ # Generate the configuration file
+ ## Create the fstab (empty by default)
+ touch $path/fstab
-# When using LXC with apparmor, uncomment the next line to run unconfined:
-#lxc.aa_profile = unconfined
+ ## Relocate all the network config entries
+ sed -i -e "/lxc.network/{w ${path}/config-network" -e "d}" $path/config
-# To support container nesting on an Ubuntu host, uncomment next two lines:
-#lxc.aa_profile = lxc-container-default-with-nesting
-#lxc.hook.mount = /usr/share/lxc/hooks/mountcgroups
+ ## Relocate any other config entries
+ sed -i -e "/lxc./{w ${path}/config-auto" -e "d}" $path/config
-lxc.hook.clone = ${CLONE_HOOK_FN}
-EOF
-
- # can't write to devices.deny without CAP_SYS_ADMIN in init-user-ns
- if [ $in_userns -ne 1 ]; then
- cat <<EOF >> $path/config
-lxc.cgroup.devices.deny = a
-# Allow any mknod (but not using the node)
-lxc.cgroup.devices.allow = c *:* m
-lxc.cgroup.devices.allow = b *:* m
-# /dev/null and zero
-lxc.cgroup.devices.allow = c 1:3 rwm
-lxc.cgroup.devices.allow = c 1:5 rwm
-# consoles
-lxc.cgroup.devices.allow = c 5:1 rwm
-lxc.cgroup.devices.allow = c 5:0 rwm
-# /dev/{,u}random
-lxc.cgroup.devices.allow = c 1:9 rwm
-lxc.cgroup.devices.allow = c 1:8 rwm
-lxc.cgroup.devices.allow = c 136:* rwm
-lxc.cgroup.devices.allow = c 5:2 rwm
-# rtc
-lxc.cgroup.devices.allow = c 254:0 rm
-# fuse
-lxc.cgroup.devices.allow = c 10:229 rwm
-# tun
-lxc.cgroup.devices.allow = c 10:200 rwm
-# full
-lxc.cgroup.devices.allow = c 1:7 rwm
-# hpet
-lxc.cgroup.devices.allow = c 10:228 rwm
-# kvm
-lxc.cgroup.devices.allow = c 10:232 rwm
-EOF
+ ## Add all the includes
+ echo "" >> $path/config
+ echo "# Common configuration" >> $path/config
+ if [ -e "${LXC_TEMPLATE_CONFIG}/ubuntu-cloud.common.conf" ]; then
+ echo "lxc.include = ${LXC_TEMPLATE_CONFIG}/ubuntu-cloud.common.conf" >> $path/config
+ fi
+ if [ -e "${LXC_TEMPLATE_CONFIG}/ubuntu-cloud.${release}.conf" ]; then
+ echo "lxc.include = ${LXC_TEMPLATE_CONFIG}/ubuntu-cloud.${release}.conf" >> $path/config
+ fi
+ if [ $in_userns -eq 1 ] && [ -e "${LXC_TEMPLATE_CONFIG}/ubuntu-cloud.userns.conf" ]; then
+ echo "lxc.include = ${LXC_TEMPLATE_CONFIG}/ubuntu-cloud.userns.conf" >> $path/config
fi
- cat <<EOF > $path/fstab
-proc proc proc nodev,noexec,nosuid 0 0
-sysfs sys sysfs defaults 0 0
-/sys/fs/fuse/connections sys/fs/fuse/connections none bind,optional 0 0
-/sys/kernel/debug sys/kernel/debug none bind,optional 0 0
-/sys/kernel/security sys/kernel/security none bind,optional 0 0
-/sys/fs/pstore sys/fs/pstore none bind,optional 0 0
+ ## Add the container-specific config
+ echo "" >> $path/config
+ echo "# Container specific configuration" >> $path/config
+ [ -e "$path/config-auto" ] && cat $path/config-auto >> $path/config && rm $path/config-auto
+ grep -q "^lxc.rootfs" $path/config 2>/dev/null || echo "lxc.rootfs = $rootfs" >> $path/config
+ cat <<EOF >> $path/config
+lxc.mount = $path/fstab
+lxc.utsname = $name
+lxc.arch = $arch
EOF
- # unprivileged user can't mknod these. One day we may allow
- # that in the kernel, but not right now. So let's just bind
- # mount the files from the host.
- if [ $in_userns -eq 1 ]; then
- mkdir -p $rootfs/dev/pts
- for dev in null tty urandom console; do
- touch $rootfs/dev/$dev
- echo "/dev/$dev dev/$dev none bind 0 0" >> $path/fstab
- done
- fi
+ ## Re-add the previously removed network config
+ echo "" >> $path/config
+ echo "# Network configuration" >> $path/config
+ cat $path/config-network >> $path/config
+ rm $path/config-network
# Set initial timezone as on host
if [ -f /etc/timezone ]; then
@@ -397,6 +362,7 @@ do_extract_rootfs() {
cd $rootfs
if [ $in_userns -eq 1 ]; then
tar --anchored --exclude="dev/*" --numeric-owner -xpzf "$cache/$filename"
+ mkdir -p $cache/$filename/dev/pts/
else
tar --numeric-owner -xpzf "$cache/$filename"
fi
diff --git a/templates/lxc-ubuntu.in b/templates/lxc-ubuntu.in
index e20a874..3dcc93a 100644
--- a/templates/lxc-ubuntu.in
+++ b/templates/lxc-ubuntu.in
@@ -26,7 +26,8 @@
set -e
-LOCALSTATEDIR=@LOCALSTATEDIR@
+LOCALSTATEDIR="@LOCALSTATEDIR@"
+LXC_TEMPLATE_CONFIG="@LXCTEMPLATECONFIG@"
if [ -r /etc/default/lxc ]; then
. /etc/default/lxc
@@ -385,11 +386,6 @@ copy_configuration()
arch="i686"
fi
- ttydir=""
- if [ -f $rootfs/etc/init/container-detect.conf ]; then
- ttydir=" lxc"
- fi
-
# if there is exactly one veth network entry, make sure it has an
# associated hwaddr.
nics=`grep -e '^lxc\.network\.type[ \t]*=[ \t]*veth' $path/config | wc -l`
@@ -397,63 +393,42 @@ copy_configuration()
grep -q "^lxc.network.hwaddr" $path/config || sed -i -e "/^lxc\.network\.type[ \t]*=[ \t]*veth/a lxc.network.hwaddr = 00:16:3e:$(openssl rand -hex 3| sed 's/\(..\)/\1:/g; s/.$//')" $path/config
fi
+ # Generate the configuration file
+ ## Create the fstab (empty by default)
+ touch $path/fstab
+
+ ## Relocate all the network config entries
+ sed -i -e "/lxc.network/{w ${path}/config-network" -e "d}" $path/config
+
+ ## Relocate any other config entries
+ sed -i -e "/lxc./{w ${path}/config-auto" -e "d}" $path/config
+
+ ## Add all the includes
+ echo "" >> $path/config
+ echo "# Common configuration" >> $path/config
+ if [ -e "${LXC_TEMPLATE_CONFIG}/ubuntu.common.conf" ]; then
+ echo "lxc.include = ${LXC_TEMPLATE_CONFIG}/ubuntu.common.conf" >> $path/config
+ fi
+ if [ -e "${LXC_TEMPLATE_CONFIG}/ubuntu.${release}.conf" ]; then
+ echo "lxc.include = ${LXC_TEMPLATE_CONFIG}/ubuntu.${release}.conf" >> $path/config
+ fi
+
+ ## Add the container-specific config
+ echo "" >> $path/config
+ echo "# Container specific configuration" >> $path/config
+ [ -e "$path/config-auto" ] && cat $path/config-auto >> $path/config && rm $path/config-auto
grep -q "^lxc.rootfs" $path/config 2>/dev/null || echo "lxc.rootfs = $rootfs" >> $path/config
cat <<EOF >> $path/config
lxc.mount = $path/fstab
-lxc.pivotdir = lxc_putold
-
-lxc.devttydir =$ttydir
-lxc.tty = 4
-lxc.pts = 1024
-
lxc.utsname = $name
lxc.arch = $arch
-lxc.cap.drop = sys_module mac_admin mac_override sys_time
-
-# When using LXC with apparmor, uncomment the next line to run unconfined:
-#lxc.aa_profile = unconfined
-
-# To support container nesting on an Ubuntu host, uncomment next two lines:
-#lxc.aa_profile = lxc-container-default-with-nesting
-#lxc.hook.mount = /usr/share/lxc/hooks/mountcgroups
-
-lxc.cgroup.devices.deny = a
-# Allow any mknod (but not using the node)
-lxc.cgroup.devices.allow = c *:* m
-lxc.cgroup.devices.allow = b *:* m
-# /dev/null and zero
-lxc.cgroup.devices.allow = c 1:3 rwm
-lxc.cgroup.devices.allow = c 1:5 rwm
-# consoles
-lxc.cgroup.devices.allow = c 5:1 rwm
-lxc.cgroup.devices.allow = c 5:0 rwm
-# /dev/{,u}random
-lxc.cgroup.devices.allow = c 1:9 rwm
-lxc.cgroup.devices.allow = c 1:8 rwm
-lxc.cgroup.devices.allow = c 136:* rwm
-lxc.cgroup.devices.allow = c 5:2 rwm
-# rtc
-lxc.cgroup.devices.allow = c 254:0 rm
-# fuse
-lxc.cgroup.devices.allow = c 10:229 rwm
-# tun
-lxc.cgroup.devices.allow = c 10:200 rwm
-# full
-lxc.cgroup.devices.allow = c 1:7 rwm
-# hpet
-lxc.cgroup.devices.allow = c 10:228 rwm
-# kvm
-lxc.cgroup.devices.allow = c 10:232 rwm
EOF
- cat <<EOF > $path/fstab
-proc proc proc nodev,noexec,nosuid 0 0
-sysfs sys sysfs defaults 0 0
-/sys/fs/fuse/connections sys/fs/fuse/connections none bind,optional 0 0
-/sys/kernel/debug sys/kernel/debug none bind,optional 0 0
-/sys/kernel/security sys/kernel/security none bind,optional 0 0
-/sys/fs/pstore sys/fs/pstore none bind,optional 0 0
-EOF
+ ## Re-add the previously removed network config
+ echo "" >> $path/config
+ echo "# Network configuration" >> $path/config
+ cat $path/config-network >> $path/config
+ rm $path/config-network
if [ $? -ne 0 ]; then
echo "Failed to add configuration"
--
1.8.5.1
More information about the lxc-devel
mailing list