forked from ungleich-public/cdist
Multiple bugfixes
fixed remote copy command fixed problem with code-remote when jail_enable wasn't in rc.conf fixed problem with code-remote when jail_list wasn't in rc.conf added check to see if /etc/devfs.rules exists before trying to use it added dependency on __directory/usr/jail
This commit is contained in:
parent
f5437ccce6
commit
847fc9d8c1
3 changed files with 59 additions and 8 deletions
|
@ -29,6 +29,6 @@ jailbase="/usr/jail/jailbase.tgz"
|
|||
basepresent="$(cat "$__object/explorer/basepresent")"
|
||||
|
||||
if [ "$basepresent" = "NONE" ]; then
|
||||
echo "$__remote_copy" "$__object/files/jailbase.tgz" "${target_host}:${jailbase}"
|
||||
echo "$__remote_copy" "$__type/files/jailbase.tgz" "$__target_host:${jailbase}"
|
||||
fi
|
||||
|
||||
|
|
|
@ -212,6 +212,16 @@ EOF
|
|||
|
||||
# Add the jail_$name_* lines to rc.conf
|
||||
cat <<EOF
|
||||
# first check to see whether jail_enable="YES" exists in rc.conf or not and add it
|
||||
# if necessary
|
||||
|
||||
jail_enable="\$(grep '^jail_enable=' /etc/rc.conf | cut -d= -f2)"
|
||||
if [ -z "\$jail_enable" ]; then # no jail_enable line in rc.conf at all
|
||||
echo "jail_enable=\"YES\"" >>/etc/rc.conf
|
||||
elif [ ! "\$(echo \$jail_enable | tr '[a-z]' '[A-Z]')" = "YES" ]; then # jail_enable="NO"
|
||||
sed -i '.bak' 's/^jail_enable=.*$/jail_enable="YES"/g' /etc/rc.conf # fix this -^
|
||||
rm -f /etc/rc.conf.bak
|
||||
fi
|
||||
cat >>/etc/rc.conf <<END
|
||||
jail_${name}_rootdir="${jaildir}/${name}"
|
||||
jail_${name}_hostname="${hostname}"
|
||||
|
@ -243,6 +253,9 @@ if [ "$devfsenable" = "true" ]; then
|
|||
jail_${name}_devfs_ruleset="${devfsruleset}"
|
||||
END
|
||||
if [ "${devfsruleset}" = "jailrules" ]; then # The default ruleset is to be used
|
||||
if [ ! -f /etc/devfs.rules ]; then
|
||||
touch /etc/devfs.rules
|
||||
fi
|
||||
if [ -z "\$(grep '\[jailrules=' /etc/devfs.rules)" ]; then # The default ruleset doesn't exist
|
||||
# Get the highest-numbered ruleset
|
||||
highest="\$(sed -n 's/\[.*=\([0-9]*\)\]/\1/pg' /etc/devfs.rules | sort -u | tail -n 1)" || true
|
||||
|
@ -263,17 +276,20 @@ fi
|
|||
|
||||
# Add $name to jail_list if $onboot=true
|
||||
if [ "$onboot" = "true" ]; then
|
||||
|
||||
# first check to see whether jail_enable="YES" exists in rc.conf or not and add it
|
||||
# if necessary
|
||||
|
||||
cat <<EOF
|
||||
eval \$(grep '^jail_list=' /etc/rc.conf)
|
||||
jail_list="\${jail_list} ${name}"
|
||||
grep -q '^jail_list=' /etc/rc.conf
|
||||
if [ "\$?" -eq "0" ]; then
|
||||
sed -i '.bak' "s/^jail_list=\".*\"/jail_list=\"\${jail_list}\"/" /etc/rc.conf
|
||||
jail_list="\$(grep '^jail_enable=' /etc/rc.conf | cut -d= -f2)"
|
||||
if [ -z "\$jail_list" ]; then # no jail_list line in rc.conf at all
|
||||
echo "jail_list=\"${name}\"" >>/etc/rc.conf
|
||||
else
|
||||
echo jail_list=\"\${jail_list}\" >>/etc/rc.conf
|
||||
jail_list="\${jail_list} ${name}"
|
||||
sed -i '.bak' "s/^jail_list=\".*\"/jail_list=\"\${jail_list}\"/" /etc/rc.conf
|
||||
rm -f /etc/rc.conf.bak
|
||||
fi
|
||||
unset jail_list
|
||||
rm -f /etc/rc.conf.bak
|
||||
EOF
|
||||
fi
|
||||
|
||||
|
|
35
conf/type/__jail/manifest
Executable file
35
conf/type/__jail/manifest
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# 2012 Jake Guffey (jake.guffey at eprotex.com)
|
||||
#
|
||||
# This file is part of cdist.
|
||||
#
|
||||
# cdist is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# cdist is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# The __jail type creates, configures, and deletes FreeBSD jails for use as
|
||||
# virtual machines.
|
||||
#
|
||||
|
||||
# Debug
|
||||
#exec >&2
|
||||
#set -x
|
||||
|
||||
jaildir="/usr/jail"
|
||||
|
||||
__directory ${jaildir} --parents yes
|
||||
|
||||
# Debug
|
||||
#set +x
|
||||
|
Loading…
Reference in a new issue