On Sat, Aug 25, 2012 at 10:24 PM, Fajar A. Nugraha <l...@fajar.net> wrote:
> Please re-download lxc-centos.in and try again. You need to remove the
> cache first (rm -rf /var/cache/lxc/centos/x86_64/6/rootfs) so that it
> will be recreated.

Hmm.   Is UTSNAME supposed to be defined on entry to the template?
It isn't here, leading to /etc/sysconfig/network and
/etc/sysconfig/network-scripts/ifcfg-eth0
containing bad
HOSTNAME=
lines.  (The fedora template has same problem.)
I worked around this with:

--- lxc-centos.in       2012-08-27 10:45:56.301880000 -0700
+++ /usr/lib/lxc/templates/lxc-centos   2012-08-27 12:12:30.271501887 -0700
@@ -52,7 +52,7 @@
 DEVICE=eth0
 BOOTPROTO=dhcp
 ONBOOT=yes
-HOSTNAME=${UTSNAME}
+HOSTNAME=${name}
 NM_CONTROLLED=no
 TYPE=Ethernet
 MTU=${MTU}
@@ -61,7 +61,7 @@
     # set the hostname
     cat <<EOF > ${rootfs_path}/etc/sysconfig/network
 NETWORKING=yes
-HOSTNAME=${UTSNAME}
+HOSTNAME=${name}
 EOF

     # set minimal hosts

The next problem is a bug in lxc-start-ephemeral, which complains
sed: can't read
/var/lib/lxc/demo_centos6-temp-j4G0FcH/rootfs/etc/hostname: No such
file or directory
The error comes from the line
    # Update the ephemeral lxc's configuration to reflect the new
container name.
    sudo sed -i -e "s/$LXC_BASE/$LXC_NAME/" $LXC_DIR/fstab
$LXC_DIR/config $LXC_DIR/rootfs/etc/hostname $LXC_DIR/rootfs/etc/hosts

I worked around this with
--- lxc-start-ephemeral.orig    2012-08-27 12:19:03.935513119 -0700
+++ lxc-start-ephemeral 2012-08-27 12:19:54.471514479 -0700
@@ -154,7 +154,19 @@
     LXC_MOUNTED=1

     # Update the ephemeral lxc's configuration to reflect the new
container name.
-    sudo sed -i -e "s/$LXC_BASE/$LXC_NAME/" $LXC_DIR/fstab
$LXC_DIR/config $LXC_DIR/rootfs/etc/hostname $LXC_DIR/rootfs/etc/hosts
+    # Check all the places known distros keep hostnames.
+    # FIXME: should we sanity check the hostname to make sure it
contains no bad chars?
+    for file in $LXC_DIR/fstab $LXC_DIR/config \
+                $LXC_DIR/rootfs/etc/hostname \
+                $LXC_DIR/rootfs/etc/hosts \
+                $LXC_DIR/rootfs/etc/sysconfig/network \
+                $LXC_DIR/rootfs/etc/sysconfig/network-scripts/ifcfg-eth0
+    do
+        if test -f "$file"
+        then
+            sudo sed -i -e "s/$LXC_BASE/$LXC_NAME/" $file
+        fi
+    done

     # Update the fstab to have all bind mounts be ephemeral.
     sudo cp $LXC_DIR/fstab $LXC_DIR/fstab.old

Thanks,
Dan

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Lxc-users mailing list
Lxc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-users

Reply via email to