vserver=$1; shift
fcdistro=$1; shift
+ pldistro=$1; shift
templates=/etc/vservers/.distributions/${fcdistro}
if [ -f ${templates}/yum/yum.conf ] ; then
echo "WARNING : cannot create myplc repo"
else
# exclude kernel from fedora repos
+ yumexclude=$(pl_plcyumexclude $fcdistro $pldistro $DIRNAME)
for repo in /vservers/$vserver/etc/yum.repos.d/* ; do
- [ -f $repo ] && yumconf_exclude $repo "exclude=$pl_KEXCLUDES"
+ [ -f $repo ] && yumconf_exclude $repo "exclude=$yumexclude"
done
# the build repo is not signed at this stage
cat > /vservers/$vserver/etc/yum.repos.d/myplc.repo <<EOF
vserver=$1; shift
fcdistro=$1; shift
+ pldistro=$1; shift
personality=$1; shift
# check that this is a new one - see above
echo "* ${i}-th attempt to 'vserver build' failed - waiting for 3 seconds"
sleep 3
done
- # check success
- [ -d /vservers/$vserver ]
+ # check success - not enough to check for the directory, let's assume /etc/ in image
+ [ -d /vservers/$vserver/etc ]
if [ ! -z "$personality" ] ; then
if [ -f "/etc/vservers/$vserver/personality" ] ; then
grep -q ^CAP_SYS_ADMIN $BCAPFILE || echo CAP_SYS_ADMIN >> $BCAPFILE
grep -q ^CAP_MKNOD $BCAPFILE || echo CAP_MKNOD >> $BCAPFILE
grep -q ^CAP_IPC_LOCK $BCAPFILE || echo CAP_IPC_LOCK >> $BCAPFILE
- # useful for f15 guests that use set_cap_file
+ # useful for f16 guests that use set_cap_file
grep -q ^CAP_SETFCAP $BCAPFILE || echo CAP_SETFCAP >> $BCAPFILE
else
### capabilities required for a myplc vserver
# for /etc/plc.d/gpg - need to init /dev/random
grep -q ^CAP_MKNOD $BCAPFILE || echo CAP_MKNOD >> $BCAPFILE
grep -q ^CAP_NET_BIND_SERVICE $BCAPFILE || echo CAP_NET_BIND_SERVICE >> $BCAPFILE
- # useful for f15 guests that use set_cap_file
+ # useful for f16 guests that use set_cap_file
grep -q ^CAP_SETFCAP $BCAPFILE || echo CAP_SETFCAP >> $BCAPFILE
fi
# Enable cgroup
mkdir /etc/vservers/$vserver/cgroup
- # Start Vserver automatically on boot
- echo "default" > /etc/vservers/$vserver/apps/init/mark
-
- # Set the init style of your vserver to plain for f15 and higher
- # not working with f15 anyways, systemd requires 2.6.36 to work
+ # Set the init style of your vserver to plain for f16 and higher
+ # not working with f16 anyways, systemd requires 2.6.36 to work
case $fcdistro in
f1[5-9]) echo plain > /etc/vservers/$vserver/apps/init/style ;;
esac
fi
# minimal config in the vserver for yum to work
- [ "$pkg_method" = "yum" ] && configure_yum_in_vserver $vserver $fcdistro
+ [ "$pkg_method" = "yum" ] && configure_yum_in_vserver $vserver $fcdistro $pldistro
# set up resolv.conf
cp /etc/resolv.conf /vservers/$vserver/etc/resolv.conf
echo " -d pldistro - defaults to $DEFAULT_PLDISTRO"
echo " -p personality - defaults to $DEFAULT_PERSONALITY"
echo " -i ifname: determines ip and netmask attached to ifname, and passes it to the vserver"
+ echo " -r : set apps/init/mark to default so the vserver restart upon reboot"
echo " -v : verbose - passes -v to calls to vserver"
echo "vserver-options"
echo " all args after the optional -- are passed to vserver <name> build <options>"
esac
VERBOSE=
+ RESISTANT=""
IFNAME=""
VSERVER_OPTIONS=""
- while getopts "f:d:p:i:v" opt ; do
+ while getopts "f:d:p:i:rv" opt ; do
case $opt in
f) fcdistro=$OPTARG;;
d) pldistro=$OPTARG;;
p) personality=$OPTARG;;
i) IFNAME=$OPTARG;;
+ r) RESISTANT="true";;
v) VERBOSE="-v" ;;
*) usage ;;
esac
[ -z "$pldistro" ] && pldistro=$DEFAULT_PLDISTRO
[ -z "$personality" ] && personality=$DEFAULT_PERSONALITY
- setup_vserver $vserver $fcdistro $personality
+ setup_vserver $vserver $fcdistro $pldistro $personality
devel_or_vtest_tools $vserver $fcdistro $pldistro $personality
post_install $vserver $personality
+ # Start Vserver automatically on boot
+ [ -n "$RESISTANt" ] && echo "default" > /etc/vservers/$vserver/apps/init/mark
+
+ echo $COMMAND Done
}
main "$@"