[lxc-devel] [PATCH] Oracle template: make container also boot under libvirt
Dwight Engen
dwight.engen at oracle.com
Tue Nov 27 16:07:12 UTC 2012
This allows containers created with lxc-create to also boot under
libvirt/Virtual Machine Monitor
Signed-off-by: Dwight Engen <dwight.engen at oracle.com>
---
templates/lxc-oracle.in | 21 +++++++++++++--------
1 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/templates/lxc-oracle.in b/templates/lxc-oracle.in
index 6e11d99..b9fdac1 100644
--- a/templates/lxc-oracle.in
+++ b/templates/lxc-oracle.in
@@ -63,10 +63,10 @@ container_rootfs_configure()
else
echo "SELINUX=disabled" >$container_rootfs/etc/selinux/config
fi
- if [ $container_release_major = "5" ]; then
- sed -i 's|session[ ]*required[ ]*pam_selinux.so[ ]*close|#session required pam_selinux.so close|' $container_rootfs/etc/pam.d/login
- sed -i 's|session[ ]*required[ ]*pam_selinux.so[ ]*open|#session required pam_selinux.so open|' $container_rootfs/etc/pam.d/login
- fi
+ sed -i 's|session[ ]*required[ ]*pam_selinux.so[ ]*close|#session required pam_selinux.so close|' $container_rootfs/etc/pam.d/login
+ sed -i 's|session[ ]*required[ ]*pam_selinux.so[ ]*open|#session required pam_selinux.so open|' $container_rootfs/etc/pam.d/login
+ sed -i 's|session[ ]*required[ ]*pam_loginuid.so|#session required pam_loginuid.so|' $container_rootfs/etc/pam.d/login
+
# configure the network to use dhcp. we set DHCP_HOSTNAME so the guest
# will report its name and be resolv'able by the hosts dnsmasq
@@ -96,9 +96,12 @@ EOF
echo "blacklist net-pf-10" >>$container_rootfs/etc/modprobe.d/blacklist.conf
rm -f $container_rootfs/etc/sysconfig/network-scripts/init.ipv6-global
+ # this file has to exist for libvirt/Virtual machine monitor to boot the container
+ touch $container_rootfs/etc/mtab
+
+ # don't put devpts in here, it will already be mounted for us by lxc/libvirt
cat <<EOF > $container_rootfs/etc/fstab
proc /proc proc nodev,noexec,nosuid 0 0
-devpts /dev/pts devpts defaults 0 0
sysfs /sys sysfs defaults 0 0
EOF
@@ -151,13 +154,15 @@ EOF
# lxc will maintain these links and bind mount ptys over /dev/lxc/*
# since lxc.devttydir is specified in the config.
- # allow root login on console and tty[1-4]
+ # allow root login on console, tty[1-4], and pts/0 for libvirt
echo "# LXC (Linux Containers)" >>$container_rootfs/etc/securetty
echo "lxc/console" >>$container_rootfs/etc/securetty
echo "lxc/tty1" >>$container_rootfs/etc/securetty
echo "lxc/tty2" >>$container_rootfs/etc/securetty
echo "lxc/tty3" >>$container_rootfs/etc/securetty
echo "lxc/tty4" >>$container_rootfs/etc/securetty
+ echo "# For libvirt/Virtual Machine Monitor" >>$container_rootfs/etc/securetty
+ echo "pts/0" >>$container_rootfs/etc/securetty
# dont try to unmount /dev/lxc devices
sed -i 's|&& $1 !~ /^\\/dev\\/ram/|\&\& $2 !~ /^\\/dev\\/lxc/ \&\& $1 !~ /^\\/dev\\/ram/|' $container_rootfs/etc/init.d/halt
@@ -201,7 +206,8 @@ EOF
chroot $container_rootfs chkconfig 2>/dev/null $service on
done
- # create required devices
+ # create required devices. note that /dev/console will be created by lxc
+ # or libvirt itself to be a symlink to the right pty.
# take care to not nuke /dev in case $container_rootfs isn't set
dev_path="$container_rootfs/dev"
if [ $container_rootfs != "/" -a -d $dev_path ]; then
@@ -220,7 +226,6 @@ EOF
mknod -m 666 $dev_path/tty2 c 4 2
mknod -m 666 $dev_path/tty3 c 4 3
mknod -m 666 $dev_path/tty4 c 4 4
- mknod -m 600 $dev_path/console c 5 1
mknod -m 666 $dev_path/full c 1 7
mknod -m 600 $dev_path/initctl p
--
1.7.1
More information about the lxc-devel
mailing list