[lxc-users] Hotplug new network interfaces not working
CDR
venefax at gmail.com
Wed May 14 00:30:46 UTC 2014
I am trying to create a new container inside a Fedora 20 box, fully updated.
It blows up immediately.
I can give you access if you wish. Maybe we can make a better template.
Note: I am root.
uname -r
3.14.3-200.fc20.x86_64
lxc-create -t fedora20 -n masterfe
Host CPE ID from /etc/os-release: cpe:/o:fedoraproject:fedora:20
Checking cache download in @LOCALSTATEDIR@/cache/lxc/fedora/x86_64/20/rootfs ...
Downloading fedora minimal ...
Fetching rpm name from
http://mirror.pnl.gov/fedora/linux/releases/20/Everything/x86_64/os//Packages/f...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 288 100 288 0 0 892 0 --:--:-- --:--:-- --:--:-- 897
0 0 0 215k 0 0 240k 0 --:--:-- --:--:-- --:--:-- 2340k
Fetching fedora release rpm from
http://mirror.pnl.gov/fedora/linux/releases/20/Everything/x86_64/os//Packages/f/fedora-release-20-1.noarch.rpm......
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 34036 100 34036 0 0 107k 0 --:--:-- --:--:-- --:--:-- 107k
Bootstrap Environment testing...
OS fedora is whitelisted. Installation Bootstrap Environment not required.
rpm: arguments to --root (-r) must begin with a /
sed: can't read
/@LOCALSTATEDIR@/cache/lxc/fedora/x86_64/20/partial/etc/yum.repos.d/*:
No such file or directory
CRITICAL:yum.cli:--installroot must be an absolute path:
@LOCALSTATEDIR@/cache/lxc/fedora/x86_64/20/partial
Failed to download the rootfs, aborting.
Failed to download 'fedora base'
failed to install fedora
lxc_container: container creation template for masterfe failed
lxc_container: Error creating container masterfe
On Tue, May 13, 2014 at 8:15 PM, Michael H. Warfield <mhw at wittsend.com> wrote:
> On Tue, 2014-05-13 at 20:03 -0400, CDR wrote:
>> I decided to generate a new container and reinstall all my apps.
>> A lot of work, but you successfully demolished all my work so far, for
>> which I am thankful.
>
> Well, we don't mean to demolish others efforts but we have put a lot of
> work into these templates so others don't need to learn the the lessons
> we've learned and can avoid the sins we've committed. Sorry if this has
> been more difficult than it needed to be.
>
> My deepest regards,
> Mike
>
>> Philip
>
>> On Tue, May 13, 2014 at 7:57 PM, Michael H. Warfield <mhw at wittsend.com> wrote:
>> > On Tue, 2014-05-13 at 18:13 -0400, CDR wrote:
>> >> Dear Mike
>> >> You are right, I only see one line.
>> >
>> >> ls rootfs/etc/systemd/system/getty.target.wants -l
>> >> total 0
>> >> lrwxrwxrwx 1 root root 38 Apr 30 11:16 getty at tty1.service ->
>> >> /usr/lib/systemd/system/getty at .service
>> >
>> > Ok...
>> >
>> >> You wouldn't have the script to fix this around?
>> >
>> > I think Fajar pointed you to it. It's in the template.
>> >
>> >> I created my Fedora 20 containers from within a Fedora box, like this:
>> >
>> >> #!/bin/sh
>> >> source /etc/profile
>> >> container=nat-1
>> >> mkdir -p /var/lib/lxc/${container}/rootfs
>> >> yum -y --releasever=20 --nogpg --installroot=/var/lib/lxc/$container/rootfs \
>> >> install systemd autofs passwd yum fedora-release vim-minimal
>> >> openssh-server openssh-clients gcc autogen automake\
>> >> subversion procps-ng initscripts net-tools ethtool nano dhcp dhclient
>> >> lsof bind-utils psmisc bash-completion policycoreutils\
>> >> libvirt libcap-devel lxc deltarpm bridge-utils strace git rpm-build
>> >> docbook2X graphviz man netstat-nat
>> >> cp /usr/src//ifup-local /var/lib/lxc/$container/rootfs/sbin/
>> >> cp /etc/sysconfig/network /var/lib/lxc/$container/rootfs/etc/sysconfig
>> >> cp /usr/src/ifcfg-eth0
>> >> /var/lib/lxc/$container/rootfs/etc/sysconfig/network-scripts/ifcfg-eth0
>> >> cp /usr/src/ifcfg-eth1
>> >> /var/lib/lxc/$container/rootfs/etc/sysconfig/network-scripts/ifcfg-eth1
>> >> echo "pts/0" >> /var/lib/lxc/$container/rootfs/etc/securetty
>> >> cp /usr/src/config /var/lib/lxc/$container/
>> >> cp /usr/src/lxc*.rpm /var/lib/lxc/$container/rootfs/usr/src
>> >> touch /var/lib/lxc/$container/rootfs/etc/resolv.conf
>> >> chroot /var/lib/lxc/$container/rootfs /bin/passwd root
>> >
>> > Oh, that explains a LOT and tells me you will have much bigger problems.
>> > These templates are designed to not only copy the distros into root file
>> > systems but to fine tune some of the peculiarities of running in a
>> > container, which can be (definitely IS) dependent on the startup init
>> > process. You should read through some of these template scripts and
>> > understand, very thoroughly, how and why (I DO try and comment my
>> > templates about WHY I'm doing something that's non-intuitive) they are
>> > doing what they're doing before you attempt to create a script like
>> > this.
>> >
>> >> Yours
>> >
>> >> Federico
>> >
>> > Regards,
>> > Mike
>> >
>> >> On Tue, May 13, 2014 at 1:42 PM, CDR <venefax at gmail.com> wrote:
>> >> > Let me digest all this.
>> >> > You must be right, because Fedora 20 containers are the only ones that
>> >> > use systemd, in my box
>> >> >
>> >> > many thanks
>> >> >
>> >> > Federico
>> >> >
>> >> > On Tue, May 13, 2014 at 1:24 PM, Michael H. Warfield <mhw at wittsend.com> wrote:
>> >> >> On Tue, 2014-05-13 at 13:00 -0400, CDR wrote:
>> >> >>> I am forced to use libvirt-lxc only because nobody can help me solve
>> >> >>> this issue. If somebody can figure this out, then I will only use lXC.
>> >> >>> In a Fedora20 container, if I start it with the "-d" flag, then it
>> >> >>> never let's me enter the container via the console, it times out on me
>> >> >>> when I use
>> >> >>> lxc-console -n mycontainer.
>> >> >>
>> >> >> I guess the problem is, here, that this doesn't make sense (to me). I
>> >> >> work and develop under Fedora (17,18,19,20,rawhide). I have containers
>> >> >> of virtually every guest distro, even Gentoo and SUSE and a few others
>> >> >> (NST, Kali) which are not supported. I've got Fedora20 containers of
>> >> >> both x86_64 and i686 archs. I'm not seeing this problem. I've started
>> >> >> them without the -d as well as with the -d and currently start them
>> >> >> using lxc-autostart and I'm just not seeing this problem.
>> >> >>
>> >> >> The problem is in trying to decide why your setup is (or your containers
>> >> >> are) different or what you are doing different so we might address it
>> >> >> (either in code or documentation).
>> >> >>
>> >> >> These are Fedora20 containers you are trying to start? Under what rev
>> >> >> where they created (not what you're running now)? I know I had to add
>> >> >> some code to the Fedora template to create the console devices...
>> >> >>
>> >> >> Look here:
>> >> >>
>> >> >> /var/lib/lxc/{container}/rootfs/etc/systemd/system/getty.target.wants
>> >> >>
>> >> >> Now look for a series of symlinks like this:
>> >> >>
>> >> >> [root at hydra getty.target.wants]# pwd
>> >> >> /var/lib/lxc/Fedora20/rootfs/etc/systemd/system/getty.target.wants
>> >> >> [root at hydra getty.target.wants]# ls -l
>> >> >> total 0
>> >> >> lrwxrwxrwx. 1 root root 17 Mar 7 19:02 getty at tty1.service -> ../getty at .service
>> >> >> lrwxrwxrwx. 1 root root 17 Mar 7 19:02 getty at tty2.service -> ../getty at .service
>> >> >> lrwxrwxrwx. 1 root root 17 Mar 7 19:02 getty at tty3.service -> ../getty at .service
>> >> >> lrwxrwxrwx. 1 root root 17 Mar 7 19:02 getty at tty4.service -> ../getty at .service
>> >> >>
>> >> >> If you don't have them, that's your problem. The lxc-fedora template
>> >> >> now creates these automatically. This is systemd stuff. The
>> >> >> pre-systemd Fedora template did not do this. If you want more than
>> >> >> four, you're going to have to create them yourself and add the changes
>> >> >> to the config file for the vty's.
>> >> >>
>> >> >> If you don't have them, you probably DON'T have the properly munged
>> >> >> getty at .service file in the parent directory, so you can't just copy the
>> >> >> systemd default or blindly create them
>> >> >>
>> >> >> This change has to be made!
>> >> >>
>> >> >> [root at hydra rootfs]# diff lib/systemd/system/getty at .service etc/systemd/system/getty at .service
>> >> >> 24c24
>> >> >> < ConditionPathExists=/dev/tty0
>> >> >> ---
>> >> >>> # ConditionPathExists=/dev/tty0
>> >> >>
>> >> >> If you don't have that... That's your problem.
>> >> >>
>> >> >>> This happens only in Fedora 20 containers. But that does not happen
>> >> >>> under libvirt. I have 3 different OS' containers, and the other two
>> >> >>> work fine under pure LXC.
>> >> >>
>> >> >> It's not just under Fedora 20 containers but will impact any containers
>> >> >> running systemd in a container, which has proven to be a black art for
>> >> >> me.
>> >> >>
>> >> >> Regards,
>> >> >> Mike
>> >> >>
>> >> >>> I think that the bug is in LXC. If I ask Libvirt, they will respond
>> >> >>> "it does work, doesn't it?
>> >> >>> Any idea?
>> >> >>> Philip
>> >> >>>
>> >> >>> On Tue, May 13, 2014 at 12:35 PM, Stéphane Graber <stgraber at ubuntu.com> wrote:
>> >> >>> > On Tue, May 13, 2014 at 12:29:07PM -0400, Michael H. Warfield wrote:
>> >> >>> >> On Tue, 2014-05-13 at 12:09 -0400, CDR wrote:
>> >> >>> >> > Dear Friends
>> >> >>> >> > I have a Fedora 20 LXC (libirt) container in production and I cannot reboot it.
>> >> >>> >> > So I used "virsh edit mycontainer" and added several
>> >> >>> >> >
>> >> >>> >> > <interface type='direct'>
>> >> >>> >> > <mac address='00:5A:0C:18:C9:E9'/>
>> >> >>> >> > <source dev='eth1' mode='bridge'/>
>> >> >>> >> > </interface>
>> >> >>> >>
>> >> >>> >> Ok... But that's libvirt LXC, not LXC-Tools LXC.
>> >> >>> >>
>> >> >>> >> > The problem is that after it gets saved, the new interfaces never show
>> >> >>> >> > up in ip link, and I have no idea how to make Fedora under LXC to
>> >> >>> >> > check for the new hardware.
>> >> >>> >>
>> >> >>> >> > Is this a limitation of LXC in general?
>> >> >>> >>
>> >> >>> >> The term "LXC" in this case is ambiguous. Are you talking about libvirt
>> >> >>> >> lxc or this project. They are not the same.
>> >> >>> >>
>> >> >>> >> > I bet there is a workaround.
>> >> >>> >>
>> >> >>> >> Only if you're skilled at creating hotplug and udev rules. It has to be
>> >> >>> >> done under the host and the host has to transfer that device into the
>> >> >>> >> container. It's not something that's really controllable from the
>> >> >>> >> container per se. I can run devices and such in and out of LXC
>> >> >>> >> containers (NOT libvirt) with some scripting and some rules in the host,
>> >> >>> >> but I doubt that would help you (I take advantage of some of the
>> >> >>> >> devtmpfs stuff I wrote for this project). Libvirt may have a way to
>> >> >>> >> work around that but you'll have to consult with them.
>> >> >>> >>
>> >> >>> >> I think Stéphane also had some utility for moving devices (interfaces,
>> >> >>> >> I'm not so sure) but, again, that's for this project, not libvirt.
>> >> >>> >
>> >> >>> > Correct, lxc-device will let you do that with our LXC.
>> >> >>> >
>> >> >>> >>
>> >> >>> >> > Yours
>> >> >>> >> > Philip
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> --
>> >> >>> >> Michael H. Warfield (AI4NB) | (770) 978-7061 | mhw at WittsEnd.com
>> >> >>> >> /\/\|=mhw=|\/\/ | (678) 463-0932 | http://www.wittsend.com/mhw/
>> >> >>> >> NIC whois: MHW9 | An optimist believes we live in the best of all
>> >> >>> >> PGP Key: 0x674627FF | possible worlds. A pessimist is sure of it!
>> >> >>> >>
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >> _______________________________________________
>> >> >>> >> lxc-users mailing list
>> >> >>> >> lxc-users at lists.linuxcontainers.org
>> >> >>> >> http://lists.linuxcontainers.org/listinfo/lxc-users
>> >> >>> >
>> >> >>> >
>> >> >>> > --
>> >> >>> > Stéphane Graber
>> >> >>> > Ubuntu developer
>> >> >>> > http://www.ubuntu.com
>> >> >>> >
>> >> >>> > _______________________________________________
>> >> >>> > lxc-users mailing list
>> >> >>> > lxc-users at lists.linuxcontainers.org
>> >> >>> > http://lists.linuxcontainers.org/listinfo/lxc-users
>> >> >>> _______________________________________________
>> >> >>> lxc-users mailing list
>> >> >>> lxc-users at lists.linuxcontainers.org
>> >> >>> http://lists.linuxcontainers.org/listinfo/lxc-users
>> >> >>
>> >> >> --
>> >> >> Michael H. Warfield (AI4NB) | (770) 978-7061 | mhw at WittsEnd.com
>> >> >> /\/\|=mhw=|\/\/ | (678) 463-0932 | http://www.wittsend.com/mhw/
>> >> >> NIC whois: MHW9 | An optimist believes we live in the best of all
>> >> >> PGP Key: 0x674627FF | possible worlds. A pessimist is sure of it!
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> lxc-users mailing list
>> >> >> lxc-users at lists.linuxcontainers.org
>> >> >> http://lists.linuxcontainers.org/listinfo/lxc-users
>> >> _______________________________________________
>> >> lxc-users mailing list
>> >> lxc-users at lists.linuxcontainers.org
>> >> http://lists.linuxcontainers.org/listinfo/lxc-users
>> >
>> > --
>> > Michael H. Warfield (AI4NB) | (770) 978-7061 | mhw at WittsEnd.com
>> > /\/\|=mhw=|\/\/ | (678) 463-0932 | http://www.wittsend.com/mhw/
>> > NIC whois: MHW9 | An optimist believes we live in the best of all
>> > PGP Key: 0x674627FF | possible worlds. A pessimist is sure of it!
>> >
>> >
>> > _______________________________________________
>> > lxc-users mailing list
>> > lxc-users at lists.linuxcontainers.org
>> > http://lists.linuxcontainers.org/listinfo/lxc-users
>> _______________________________________________
>> lxc-users mailing list
>> lxc-users at lists.linuxcontainers.org
>> http://lists.linuxcontainers.org/listinfo/lxc-users
>
> --
> Michael H. Warfield (AI4NB) | (770) 978-7061 | mhw at WittsEnd.com
> /\/\|=mhw=|\/\/ | (678) 463-0932 | http://www.wittsend.com/mhw/
> NIC whois: MHW9 | An optimist believes we live in the best of all
> PGP Key: 0x674627FF | possible worlds. A pessimist is sure of it!
>
>
> _______________________________________________
> lxc-users mailing list
> lxc-users at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users
More information about the lxc-users
mailing list