[Devel] Re: liblxc: lxc-debian

Matt Helsley matthltc at us.ibm.com
Mon Dec 8 13:44:29 PST 2008


On Fri, 2008-12-05 at 18:11 -0600, Serge E. Hallyn wrote:
> Quoting Daniel Lezcano (dlezcano at fr.ibm.com):
> > Serge E. Hallyn wrote:
> >> Hi Daniel,
> >>
> >> to create a debian-based container using lxc-debian on fedora 10,
> >> I needed to just a couple of things:
> >>
> >> 	1. iptables -F   :)  Grrr.
> >>
> >> 	2. Right above the debootstrap command, I had to fool
> >> 	   chage (used during openssh configuration) into thinking
> >> 	   selinux was disabled.  So after the line:
> >> 	   mkdir -p "$CACHE/rootfs-$ARCH"
> >> 	   I added
> >> 	   mkdir -p "$CACHE/rootfs-$ARCH/selinux"
> >> 	   echo 0 > "$CACHE/rootfs-$ARCH/selinux/enforce"
> >
> > Good catch ! :)
> 
> Are you going to put those lines into the 'official' lxc-debian?
> 
> >> 	3. For the actual debootstrap command I had to do
> >> 	   debootstrap --arch $ARCH etc $CACHE/rootfs-$ARCH
> >> 	   Then apt-get install openssh-server and apache
> >> 	   worked fine.  But your debootstrap command failed
> >> 	   (the last time i tried) on chroot - no idea why.
> >
> > Ok, I will try to figure out what is happening.
> 
> Great, thanks.
> 
> >> Now it seems to work.  This shouldn't have taken me 2 hours to
> >> figure out, but the symptoms were deceptive :)
> >
> > I have a some bugs reported I will fix with this one. I'll release a  
> > 0.5.1 version soon.
> >
> > Thanks a lot for taking the time to investigate :)
> 
> One more thing that would be helpful - can you think of an
> easy way to specify devices whitelist rules for lxc-debian?
> I don't want to complicate the creation process, but as it
> is it's not trivial to define them.  Perhaps specifying a
> default that should work for most everyone would be ok?  I
> find the following to be plenty flexible:
> 
> (this is the code i inserted into the old lxc-debian command,
> haven't checked if i need to change it for the new one)
> 
>     echo "lxc.cgroup.devices.deny = a" >> $CONFFILE
>     # /dev/null and zero
>     echo "lxc.cgroup.devices.allow = c 1:3 rwm" >> $CONFFILE
>     echo "lxc.cgroup.devices.allow = c 1:5 rwm" >> $CONFFILE
>     # consoles
>     echo "lxc.cgroup.devices.allow = c 5:1 rwm" >> $CONFFILE
>     echo "lxc.cgroup.devices.allow = c 5:0 rwm" >> $CONFFILE
>     echo "lxc.cgroup.devices.allow = c 4:0 rwm" >> $CONFFILE
>     echo "lxc.cgroup.devices.allow = c 4:1 rwm" >> $CONFFILE
>     # /dev/{,u}random
>     echo "lxc.cgroup.devices.allow = c 1:9 rwm" >> $CONFFILE
>     echo "lxc.cgroup.devices.allow = c 1:8 rwm" >> $CONFFILE
>     # /dev/pts/* - pts namespaces are "coming soon"
>     echo "lxc.cgroup.devices.allow = c 136:* rwm" >> $CONFFILE
>     # rtc
>     echo "lxc.cgroup.devices.allow = c 254:0 rwm" >> $CONFFILE

This could be a tad prettier with a "here file" rather than all the
echoes and >> $CONFFILE:

        #
        # Write some reasonable default device whitelist rules
        #
        cat - >> $CONFFILE <<-"EOF"
        lxc.cgroup.devices.deny = a
        # /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
        lxc.cgroup.devices.allow = c 4:0 rwm
        lxc.cgroup.devices.allow = c 4:1 rwm
        # /dev/{,u}random
        lxc.cgroup.devices.allow = c 1:9 rwm
        lxc.cgroup.devices.allow = c 1:8 rwm
        # /dev/pts/* - pts namespaces are "coming soon"
        lxc.cgroup.devices.allow = c 136:* rwm
        # rtc 
        lxc.cgroup.devices.allow = c 254:0 rwm
        EOF

The quotes around EOF prevent bash from doing any substitution on the
file contents.

Cheers,
	-Matt

_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list