BUILD_DIR=$(pwd)
# pkgs parsing utilities
-PATH=$(dirname $0):$PATH export PATH
-
-# old guests have e.g. mount in /bin but this is no longer part of
-# the standard PATH in recent hosts after usrmove, so let's keep it simple
-export PATH=PATH=$PATH:/bin:/sbin
+export PATH=$(dirname $0):$PATH
. build.common
mknod -m 600 ${dev_path}/initctl p
mknod -m 666 ${dev_path}/ptmx c 5 2
- #echo "setting root passwd to $root_password"
- #echo "root:$root_password" | chroot $rootfs_path chpasswd
-
if [ "$(echo $fcdistro | cut -d"f" -f2)" -le "14" ]; then
fedora_configure_init
else
mkdir $rootfs_path/root/.ssh
cat /root/.ssh/id_rsa.pub >> $rootfs_path/root/.ssh/authorized_keys
- config_xml=$config_path/"lxc.xml"
+ # don't keep the input xml, this can be retrieved at all times with virsh dumpxml
+ config_xml=$tmp/$lxc.xml
( [ -n "$BUILD_MODE" ] && write_lxc_xml_build $lxc || write_lxc_xml_test $lxc ) > $config_xml
# define lxc container for libvirt
chroot $rootfs_path rpm -aq > $rootfs_path/init-lxc.rpms
;;
debootstrap)
+ # for ubuntu
+ if grep -iq ubuntu /vservers/$vserver/rootfs/etc/lsb-release 2> /dev/null; then
+ # on ubuntu, at this point we end up with a single feed in /etc/apt/sources.list
+ # we need at least to add the 'universe' feed for python-rpm
+ ( cd /vservers/$vserver/rootfs/etc/apt ; head -1 sources.list | sed -e s,main,universe, > sources.list.d/universe.list )
+ # also adding a link to updates sounds about right
+ ( cd /vservers/$vserver/rootfs/etc/apt ; head -1 sources.list | sed -e 's, main,-updates main,' > sources.list.d/updates.list )
+ fi
chroot $rootfs_path apt-get update
for package in $packages ; do
# close stdin in an attempt to avoid this hanging
return 0
}
-# would be much simpler if enter-lxc-namespace was looking along a PATH...
-function bin_in_container () {
- binary=$1; shift
- lxc=$1; shift
-
- for path in /sbin /bin /usr/bin /usr/sbin; do
- [ -f $rootfs_path/$path/$binary ] && { echo $path/$binary; return; }
- done
- echo bin_in_container_cannot_find_$binary
-}
-
function post_install () {
lxc=$1; shift
personality=$1; shift
post_install_build $lxc $personality
lxc_start $lxc
# manually run dhclient in guest - somehow this network won't start on its own
- virsh -c lxc:/// lxc-enter-namespace $lxc $(bin_in_container dhclient $lxc) $VIF_GUEST
+ virsh -c lxc:/// lxc-enter-namespace $lxc $(bin_in_container $lxc dhclient) $VIF_GUEST
else
post_install_myplc $lxc $personality
lxc_start $lxc
config_path=$path/$lxc
cache_base=/var/cache/lxc/fedora/$arch
cache=$cache_base/$release
- root_password=root
# check whether the rootfs directory is created to know if the container exists
# bacause /var/lib/lxc/$lxc is already created while putting $lxc.timestamp