[lxc-devel] [PATCH] Oracle template: make container also boot under libvirt

Stéphane Graber stgraber at ubuntu.com
Tue Nov 27 20:01:03 UTC 2012


On 11/27/2012 11:07 AM, Dwight Engen wrote:
> 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>

Acked-by: Stéphane Graber <stgraber at ubuntu.com>

Applied to staging. Thanks!

> ---
>  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
>  
> 


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 899 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20121127/425f445c/attachment.pgp>


More information about the lxc-devel mailing list