aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerge Hallyn <serge@hallyn.com>2012-02-16 14:01:20 -0600
committerDaniel Lezcano <daniel.lezcano@free.fr>2012-02-26 10:44:41 +0100
commitf6144f0cba9850dad8db6ccf7cd5f63a5477af93 (patch)
treee34a9e8b872b34e6709eab321b0db95cba96f42e
parentadd lxc.devttydir config variable (diff)
downloadlxc-f6144f0cba9850dad8db6ccf7cd5f63a5477af93.tar.gz
lxc-f6144f0cba9850dad8db6ccf7cd5f63a5477af93.tar.bz2
lxc-f6144f0cba9850dad8db6ccf7cd5f63a5477af93.zip
ubuntu template changes
Author: Stéphane Graber <stgraber@ubuntu.com> Use ubuntu/ubuntu instead of root/root by default. Stop removing tty[56].conf in Precise. Stop messing with dhclient.conf. Set devttydir on Precise to /dev/lxc to allow for clean upgrades. Signed-off-by: Stéphane Graber <stgraber@ubuntu.com> Signed-off-by: Serge Hallyn <serge@hallyn.com> Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
-rw-r--r--templates/lxc-ubuntu.in48
1 files changed, 31 insertions, 17 deletions
diff --git a/templates/lxc-ubuntu.in b/templates/lxc-ubuntu.in
index 2723912..ffeb871 100644
--- a/templates/lxc-ubuntu.in
+++ b/templates/lxc-ubuntu.in
@@ -32,6 +32,7 @@ configure_ubuntu()
{
rootfs=$1
hostname=$2
+ release=$3
# configure the network using the dhcp
cat <<EOF > $rootfs/etc/network/interfaces
@@ -42,13 +43,6 @@ auto eth0
iface eth0 inet dhcp
EOF
- # so you can 'ssh $hostname.' or 'ssh $hostname.local'
- if [ -f $rootfs/etc/dhcp/dhclient.conf ]; then
- sed -i "s/<hostname>/$hostname/" $rootfs/etc/dhcp/dhclient.conf
- elif [ -f $rootfs/etc/dhcp3/dhclient.conf ]; then
- sed -i "s/<hostname>/$hostname/" $rootfs/etc/dhcp3/dhclient.conf
- fi
-
# set the hostname
cat <<EOF > $rootfs/etc/hostname
$hostname
@@ -58,16 +52,22 @@ EOF
127.0.0.1 localhost $hostname
EOF
- # suppress log level output for udev
- sed -i "s/=\"err\"/=0/" $rootfs/etc/udev/udev.conf
+ if [ "$release" = "precise" ]; then
+ group="sudo"
+ else
+ group="admin"
- # remove jobs for consoles 5 and 6 since we only create 4 consoles in
- # this template
- rm -f $rootfs/etc/init/tty{5,6}.conf
+ # suppress log level output for udev
+ sed -i "s/=\"err\"/=0/" $rootfs/etc/udev/udev.conf
- echo "Please change root-password !"
- echo "root:root" | chroot $rootfs chpasswd
+ # remove jobs for consoles 5 and 6 since we only create 4 consoles in
+ # this template
+ rm -f $rootfs/etc/init/tty{5,6}.conf
+ fi
+ chroot $rootfs groupadd --system $group >/dev/null 2>&1 || true
+ chroot $rootfs useradd --create-home -s /bin/bash -G $group ubuntu
+ echo "ubuntu:ubuntu" | chroot $rootfs chpasswd
return 0
}
@@ -217,7 +217,7 @@ copy_ubuntu()
rootfs=$3
# make a local copy of the miniubuntu
- echo -n "Copying rootfs to $rootfs ..."
+ echo "Copying rootfs to $rootfs ..."
mkdir -p $rootfs
rsync -a $cache/rootfs-$arch/ $rootfs/ || return 1
return 0
@@ -266,14 +266,21 @@ copy_configuration()
rootfs=$2
name=$3
arch=$4
+ release=$5
if [ $arch = "i386" ]; then
arch="i686"
fi
+ ttydir=""
+ if [ $release = "precise" ]; then
+ ttydir=" lxc"
+ fi
+
cat <<EOF >> $path/config
lxc.utsname = $name
+lxc.devttydir = $ttydir
lxc.tty = 4
lxc.pts = 1024
lxc.rootfs = $rootfs
@@ -619,13 +626,13 @@ if [ $? -ne 0 ]; then
exit 1
fi
-configure_ubuntu $rootfs $name
+configure_ubuntu $rootfs $name $release
if [ $? -ne 0 ]; then
echo "failed to configure ubuntu $release for a container"
exit 1
fi
-copy_configuration $path $rootfs $name $arch
+copy_configuration $path $rootfs $name $arch $release
if [ $? -ne 0 ]; then
echo "failed write configuration file"
exit 1
@@ -640,3 +647,10 @@ if [ ! -z $clean ]; then
clean $release || exit 1
exit 0
fi
+
+echo ""
+echo "##"
+echo "# The default user is 'ubuntu' with password 'ubuntu'!"
+echo "# Use the 'sudo' command to run tasks as root in the container."
+echo "##"
+echo ""