mirror of
https://codeberg.org/scip/jaildk.git
synced 2025-12-18 21:21:02 +01:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e893017be | |||
| 9fcf0beb9c | |||
| a293128eea | |||
| 27aada4b8e | |||
| db33a41983 | |||
| 6fad6cd2f9 | |||
| cafc20e743 | |||
| cf812919cb | |||
| e2aa249464 | |||
|
|
4dab8e10ea | ||
| ad1333ebb0 | |||
|
|
514d0adeda | ||
|
|
22e02b7ce5 |
@@ -143,7 +143,7 @@ For an overview of the provided commands, here's the usage screen:
|
|||||||
Usage: ./jaildk <command> <command-args>
|
Usage: ./jaildk <command> <command-args>
|
||||||
|
|
||||||
Building Jails:
|
Building Jails:
|
||||||
base -b <name> [-w] - build a new base
|
base -b <name> [-w] [-s <script>] - build a new base
|
||||||
build <jail> -m <mode> [-b <base>] [-v <version>] - install a build chroot of a jail
|
build <jail> -m <mode> [-b <base>] [-v <version>] - install a build chroot of a jail
|
||||||
create - create a new jail from a template
|
create - create a new jail from a template
|
||||||
clone -s <src> -d <dst> [-o <v>] [-n <v>] - clone an existing jail or jail version
|
clone -s <src> -d <dst> [-o <v>] [-n <v>] - clone an existing jail or jail version
|
||||||
|
|||||||
270
src/jaildk.sh
270
src/jaildk.sh
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
version=2.0.0
|
version=2.0.3
|
||||||
|
|
||||||
# this will be completed during build. Don't touch it, just execute
|
# this will be completed during build. Don't touch it, just execute
|
||||||
# make and use the resulting script!
|
# make and use the resulting script!
|
||||||
@@ -112,7 +112,7 @@ die() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
load-jail-config() {
|
load_jail_config() {
|
||||||
local jail=$1
|
local jail=$1
|
||||||
if test -d $j/etc/$jail; then
|
if test -d $j/etc/$jail; then
|
||||||
# everything inside gets global
|
# everything inside gets global
|
||||||
@@ -210,12 +210,11 @@ jaildk_build() {
|
|||||||
jail=$1
|
jail=$1
|
||||||
mode=start
|
mode=start
|
||||||
shift
|
shift
|
||||||
shift
|
|
||||||
|
|
||||||
BASE=''
|
BASE=''
|
||||||
VERSION=''
|
VERSION=''
|
||||||
|
|
||||||
while getopts "b:v:m:" arg; do
|
OPTIND=1; while getopts "b:v:m:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
b) BASE=${OPTARG};;
|
b) BASE=${OPTARG};;
|
||||||
v) VERSION=${OPTARG};;
|
v) VERSION=${OPTARG};;
|
||||||
@@ -224,13 +223,13 @@ jaildk_build() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_build
|
usage_build
|
||||||
fi
|
fi
|
||||||
|
|
||||||
die_if_not_exist $jail $VERSION
|
die_if_not_exist $jail $VERSION
|
||||||
|
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
if test -n "$VERSION"; then
|
if test -n "$VERSION"; then
|
||||||
# overridden with -v
|
# overridden with -v
|
||||||
@@ -240,13 +239,13 @@ jaildk_build() {
|
|||||||
if test -n "$BASE"; then
|
if test -n "$BASE"; then
|
||||||
# dito
|
# dito
|
||||||
base=$BASE
|
base=$BASE
|
||||||
fi
|
else
|
||||||
|
if test -n "$buildbase"; then
|
||||||
if test -n "$buildbase"; then
|
base="$buildbase"
|
||||||
base="$buildbase"
|
elif test -z "$base"; then
|
||||||
elif test -z "$base"; then
|
# nothing configured, use default: latest
|
||||||
# nothing configured, use default: latest
|
base=`ls $j/base | tail -1`
|
||||||
base=`ls $j/base | tail -1`
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# install the jail to build/
|
# install the jail to build/
|
||||||
@@ -256,6 +255,7 @@ jaildk_build() {
|
|||||||
start)
|
start)
|
||||||
# make it usable
|
# make it usable
|
||||||
ex chroot $j/build/$jail /etc/rc.d/ldconfig onestart
|
ex chroot $j/build/$jail /etc/rc.d/ldconfig onestart
|
||||||
|
ex chroot $j/build/$jail pkg-static bootstrap -f
|
||||||
ex mkdir -p $j/build/$jail/usr/local/db
|
ex mkdir -p $j/build/$jail/usr/local/db
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -338,8 +338,13 @@ rc_pf() {
|
|||||||
conf=$j/etc/$jail/pf.conf
|
conf=$j/etc/$jail/pf.conf
|
||||||
ruleset=$j/etc/$jail/pf-ruleset.conf
|
ruleset=$j/etc/$jail/pf-ruleset.conf
|
||||||
|
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
|
if test -z "$ip" -a -z "$ip6"; then
|
||||||
|
echo "PF not supported without configured ip address!" >&2
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# - put this into a separate function
|
# - put this into a separate function
|
||||||
# - clean up if generation of pf-ruleset.conf fails somehow
|
# - clean up if generation of pf-ruleset.conf fails somehow
|
||||||
@@ -520,7 +525,7 @@ rc_ports() {
|
|||||||
rw=$5
|
rw=$5
|
||||||
rcscript=ports
|
rcscript=ports
|
||||||
|
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
if test -z "$ports"; then
|
if test -z "$ports"; then
|
||||||
# ports not configured, abort
|
# ports not configured, abort
|
||||||
@@ -563,7 +568,7 @@ rc_mount() {
|
|||||||
rw=$5
|
rw=$5
|
||||||
rcscript=mount
|
rcscript=mount
|
||||||
|
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
conf=$j/etc/$jail/$rcscript.conf
|
conf=$j/etc/$jail/$rcscript.conf
|
||||||
|
|
||||||
@@ -698,7 +703,7 @@ jaildk_install() {
|
|||||||
base=''
|
base=''
|
||||||
version=''
|
version=''
|
||||||
|
|
||||||
while getopts "r:b:v:wm:" arg; do
|
OPTIND=1; while getopts "r:b:v:wm:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
w) rw=1;;
|
w) rw=1;;
|
||||||
b) base=${OPTARG};;
|
b) base=${OPTARG};;
|
||||||
@@ -709,7 +714,7 @@ jaildk_install() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_install
|
usage_install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -781,7 +786,7 @@ jaildk_uninstall() {
|
|||||||
base=''
|
base=''
|
||||||
version=''
|
version=''
|
||||||
|
|
||||||
while getopts "wa" arg; do
|
OPTIND=1; while getopts "wa" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
w) rw="-w";;
|
w) rw="-w";;
|
||||||
a) all=1; rw="-w";;
|
a) all=1; rw="-w";;
|
||||||
@@ -789,7 +794,7 @@ jaildk_uninstall() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_uninstall
|
usage_uninstall
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -831,6 +836,8 @@ Build a base directory from bsd install media. Options:
|
|||||||
build stuff. Use this if you want to use the ports
|
build stuff. Use this if you want to use the ports
|
||||||
collection.
|
collection.
|
||||||
-f force mode, remove any old dist files.
|
-f force mode, remove any old dist files.
|
||||||
|
-s <script> install additional scripts to /usr/bin, separate multiple
|
||||||
|
scripts with whitespace.
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -840,11 +847,13 @@ jaildk_base() {
|
|||||||
base=""
|
base=""
|
||||||
force=""
|
force=""
|
||||||
rw=""
|
rw=""
|
||||||
|
scripts=""
|
||||||
|
|
||||||
while getopts "b:wf" arg; do
|
OPTIND=1; while getopts "b:wfs:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
w) rw=1;;
|
w) rw=1;;
|
||||||
b) base=${OPTARG};;
|
b) base=${OPTARG};;
|
||||||
|
s) scripts="${OPTARG}";;
|
||||||
f) force=1;;
|
f) force=1;;
|
||||||
*) usage_base;;
|
*) usage_base;;
|
||||||
esac
|
esac
|
||||||
@@ -927,61 +936,66 @@ var/tmp"
|
|||||||
if test -d "$basedir"; then
|
if test -d "$basedir"; then
|
||||||
echo "base $basedir already exist!"
|
echo "base $basedir already exist!"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
fi
|
||||||
ex mkdir -p $basedir
|
|
||||||
|
|
||||||
if test -e /usr/freebsd-dist/MANIFEST; then
|
ex mkdir -p $basedir
|
||||||
clean=''
|
|
||||||
if test -n "$force"; then
|
|
||||||
clean=1
|
|
||||||
else
|
|
||||||
echo "Found old dist files:"
|
|
||||||
ls -l /usr/freebsd-dist
|
|
||||||
echo -n "Want to remove them [nY]? "
|
|
||||||
read yesno
|
|
||||||
case $yesno in
|
|
||||||
y|Y) clean=1;;
|
|
||||||
*) clean='';;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$clean"; then
|
if test -e /usr/freebsd-dist/MANIFEST; then
|
||||||
ex rm -f /usr/freebsd-dist/*
|
clean=''
|
||||||
fi
|
if test -n "$force"; then
|
||||||
fi
|
clean=1
|
||||||
|
|
||||||
bsdinstall jail $basedir || exit 1
|
|
||||||
|
|
||||||
if test -z "$rw"; then
|
|
||||||
# run base
|
|
||||||
for file in $removelist; do
|
|
||||||
ex rm -rf $basedir/$file
|
|
||||||
done
|
|
||||||
else
|
else
|
||||||
# build base with ports support
|
echo "Found old dist files:"
|
||||||
ex mkdir -p $basedir/usr/ports
|
ls -l /usr/freebsd-dist
|
||||||
fi
|
echo -n "Want to remove them [nY]? "
|
||||||
|
|
||||||
ex mkdir $basedir/home
|
|
||||||
ex rm -rf $basedir/var/db
|
|
||||||
ex ln -s /usr/local/db $basedir/var/db
|
|
||||||
|
|
||||||
# add some symlinks from /var to /tmp to make pkg work properly
|
|
||||||
ex rm -rf $basedir/var/tmp $basedir/var/cache $basedir/var/run
|
|
||||||
ex ln -s /tmp $basedir/var/tmp
|
|
||||||
ex ln -s /tmp $basedir/var/cache
|
|
||||||
ex ln -s /tmp $basedir/var/run
|
|
||||||
|
|
||||||
if test -n "$rw"; then
|
|
||||||
echo "You have choosen to create a build base with ports support"
|
|
||||||
echo -n "Want to fetch the ports collection now [Yn]? "
|
|
||||||
read yesno
|
read yesno
|
||||||
case $yesno in
|
case $yesno in
|
||||||
y|Y|yes|YES)
|
y|Y) clean=1;;
|
||||||
jaildk_fetchports
|
*) clean='';;
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test -n "$clean"; then
|
||||||
|
ex rm -f /usr/freebsd-dist/*
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
bsdinstall jail $basedir || exit 1
|
||||||
|
|
||||||
|
if test -z "$rw"; then
|
||||||
|
# run base
|
||||||
|
for file in $removelist; do
|
||||||
|
ex rm -rf $basedir/$file
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# build base with ports support
|
||||||
|
ex mkdir -p $basedir/usr/ports
|
||||||
|
fi
|
||||||
|
|
||||||
|
ex mkdir $basedir/home
|
||||||
|
ex rm -rf $basedir/var/db
|
||||||
|
ex ln -s /usr/local/db $basedir/var/db
|
||||||
|
|
||||||
|
# add some symlinks from /var to /tmp to make pkg work properly
|
||||||
|
ex rm -rf $basedir/var/tmp $basedir/var/cache $basedir/var/run
|
||||||
|
ex ln -s /tmp $basedir/var/tmp
|
||||||
|
ex ln -s /tmp $basedir/var/cache
|
||||||
|
ex ln -s /tmp $basedir/var/run
|
||||||
|
|
||||||
|
# any scripts?
|
||||||
|
for script in $scripts; do
|
||||||
|
ex install -m 755 $script -o root -g wheel $basedir/usr/bin/$script
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -n "$rw"; then
|
||||||
|
echo "You have choosen to create a build base with ports support"
|
||||||
|
echo -n "Want to fetch the ports collection now [Yn]? "
|
||||||
|
read yesno
|
||||||
|
case $yesno in
|
||||||
|
y|Y|yes|YES)
|
||||||
|
jaildk_fetchports
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1027,7 +1041,7 @@ Hints:
|
|||||||
jaildk_clone() {
|
jaildk_clone() {
|
||||||
local src new srcversion newversion update cloneto clonefrom fs srcmount dstmount opts size perm
|
local src new srcversion newversion update cloneto clonefrom fs srcmount dstmount opts size perm
|
||||||
|
|
||||||
while getopts "s:d:o:n:" arg; do
|
OPTIND=1; while getopts "s:d:o:n:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
o) srcversion=${OPTARG};;
|
o) srcversion=${OPTARG};;
|
||||||
n) newversion=${OPTARG};;
|
n) newversion=${OPTARG};;
|
||||||
@@ -1054,7 +1068,7 @@ jaildk_clone() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
die_if_not_exist $src "Source jail"
|
die_if_not_exist $src "Source jail"
|
||||||
load-jail-config $src
|
load_jail_config $src
|
||||||
|
|
||||||
if test -z "$srcversion"; then
|
if test -z "$srcversion"; then
|
||||||
srcversion=$version
|
srcversion=$version
|
||||||
@@ -1122,7 +1136,7 @@ jaildk_clone() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
bold "To mount the build chroot of the new jail, execute:"
|
bold "To mount the build chroot of the new jail, execute:"
|
||||||
echo "jaildk build $new start"
|
echo "jaildk build $new -m start"
|
||||||
echo
|
echo
|
||||||
bold "To login into the build chroot"
|
bold "To login into the build chroot"
|
||||||
echo "jaildk blogin $new"
|
echo "jaildk blogin $new"
|
||||||
@@ -1158,7 +1172,7 @@ jaildk_create() {
|
|||||||
|
|
||||||
src=.template
|
src=.template
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_create
|
usage_create
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1169,8 +1183,7 @@ jaildk_create() {
|
|||||||
mkdir -p $j/etc/$jail
|
mkdir -p $j/etc/$jail
|
||||||
|
|
||||||
jaildk_clone -s $src -d $jail -o $srcversion -n $newversion
|
jaildk_clone -s $src -d $jail -o $srcversion -n $newversion
|
||||||
# some perl magic to extract the hostname (if any) from /etc/jail.conf - and write it into the jails rc.conf
|
jailhostname=$(cat /etc/jail.conf | grep -E "^$jail" -A50 | sed '/\}/q' | grep hostname | cut -d\" -f2)
|
||||||
jailhostname=$(cat /etc/jail.conf | tr -d '\t\r\n ' | perl -ne '$_ =~ /.*'"$newjail"'(\{(?:\{.*\}|[^{])*\})|\w+/; print $1;' | grep -oE 'hostname=[^;]+' | cut -d= -f2)
|
|
||||||
if [ -n "$jailhostname" ]; then
|
if [ -n "$jailhostname" ]; then
|
||||||
echo "new name: $jailhostname"
|
echo "new name: $jailhostname"
|
||||||
echo "in path $j/etc/$jail/local-etc-$newversion/rc.conf"
|
echo "in path $j/etc/$jail/local-etc-$newversion/rc.conf"
|
||||||
@@ -1199,14 +1212,14 @@ jaildk_remove() {
|
|||||||
shift
|
shift
|
||||||
version=''
|
version=''
|
||||||
|
|
||||||
while getopts "v:" arg; do
|
OPTIND=1; while getopts "v:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
v) version=${OPTARG};;
|
v) version=${OPTARG};;
|
||||||
*) usage_remove;;
|
*) usage_remove;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_remove
|
usage_remove
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1274,7 +1287,7 @@ jaildk_jail() {
|
|||||||
|
|
||||||
if test "x$mode" = "xstatus"; then
|
if test "x$mode" = "xstatus"; then
|
||||||
(
|
(
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
bold "Running jails:"
|
bold "Running jails:"
|
||||||
lookup='*'
|
lookup='*'
|
||||||
else
|
else
|
||||||
@@ -1291,7 +1304,7 @@ jaildk_jail() {
|
|||||||
build='no'
|
build='no'
|
||||||
base=''
|
base=''
|
||||||
|
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
_eip=''
|
_eip=''
|
||||||
for map in $maps; do
|
for map in $maps; do
|
||||||
@@ -1303,8 +1316,8 @@ jaildk_jail() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
if jls -j $jail > /dev/null 2>&1; then
|
if jls -j $jail > /dev/null 2>&1; then
|
||||||
# jail is running
|
# jail is running, get some data about jail
|
||||||
eval `jls -j $jail -qn | perl -n -e 'chomp; %j = map { ($a,$b) = split /=/; $a=~ s/\.//g; $a => $b } split/ /; foreach (keys %j) {print "$_=$j{$_}\n"}'`
|
eval $(jls -j v6 -qn ip4.addr ip6.addr jid)
|
||||||
if test -n "$ip4addr"; then
|
if test -n "$ip4addr"; then
|
||||||
ip=$ip4addr
|
ip=$ip4addr
|
||||||
else
|
else
|
||||||
@@ -1337,7 +1350,7 @@ jaildk_jail() {
|
|||||||
if test -n "$jail"; then
|
if test -n "$jail"; then
|
||||||
jaildk_rc $jail -m status
|
jaildk_rc $jail -m status
|
||||||
fi
|
fi
|
||||||
elif test -z "$jail"; then
|
elif test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_$mode
|
usage_$mode
|
||||||
else
|
else
|
||||||
bold "Jail $jail $mode:"
|
bold "Jail $jail $mode:"
|
||||||
@@ -1384,7 +1397,7 @@ jaildk_rc() {
|
|||||||
|
|
||||||
rcd=''
|
rcd=''
|
||||||
|
|
||||||
while getopts "r:m:" arg; do
|
OPTIND=1; while getopts "r:m:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
r) rcd=${OPTARG};;
|
r) rcd=${OPTARG};;
|
||||||
m) mode=${OPTARG};;
|
m) mode=${OPTARG};;
|
||||||
@@ -1396,7 +1409,7 @@ jaildk_rc() {
|
|||||||
rcd='all'
|
rcd='all'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "$jail" -o -z "$mode"; then
|
if test -z "$jail" -o "$jail" = "-h" -o -z "$mode"; then
|
||||||
usage_rc
|
usage_rc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1456,7 +1469,7 @@ jaildk_blogin() {
|
|||||||
|
|
||||||
jail=$1
|
jail=$1
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
file=`basename $0`
|
file=`basename $0`
|
||||||
if test "$file" = "jaildk"; then
|
if test "$file" = "jaildk"; then
|
||||||
file="$0 blogin"
|
file="$0 blogin"
|
||||||
@@ -1505,7 +1518,7 @@ jaildk_login() {
|
|||||||
me=`id -u`
|
me=`id -u`
|
||||||
jexec="jexec"
|
jexec="jexec"
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
file=`basename $0`
|
file=`basename $0`
|
||||||
if test "$file" = "jaildk"; then
|
if test "$file" = "jaildk"; then
|
||||||
file="$0 jlogin"
|
file="$0 jlogin"
|
||||||
@@ -1559,7 +1572,7 @@ jaildk_reinstall() {
|
|||||||
jail=$1
|
jail=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
while getopts "b:v:" arg; do
|
OPTIND=1; while getopts "b:v:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
b) NEWBASE=${OPTARG};;
|
b) NEWBASE=${OPTARG};;
|
||||||
v) NEWVERSION=${OPTARG};;
|
v) NEWVERSION=${OPTARG};;
|
||||||
@@ -1567,7 +1580,7 @@ jaildk_reinstall() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_reinstall
|
usage_reinstall
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1583,7 +1596,7 @@ jaildk_reinstall() {
|
|||||||
sync
|
sync
|
||||||
|
|
||||||
if test -n "$NEWBASE" -o -n "$NEWVERSION"; then
|
if test -n "$NEWBASE" -o -n "$NEWVERSION"; then
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
ts=`date +%Y%m%d%H%M`
|
ts=`date +%Y%m%d%H%M`
|
||||||
change=''
|
change=''
|
||||||
if test $NEWBASE != $base; then
|
if test $NEWBASE != $base; then
|
||||||
@@ -1607,7 +1620,7 @@ jaildk_reinstall() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
jaildk_install -m $jail start
|
jaildk_install $jail -m start
|
||||||
jaildk_jail start $jail
|
jaildk_jail start $jail
|
||||||
|
|
||||||
sleep 0.2
|
sleep 0.2
|
||||||
@@ -1644,7 +1657,11 @@ jaildk_setup() {
|
|||||||
|
|
||||||
version=`date +%Y%m%d`
|
version=`date +%Y%m%d`
|
||||||
|
|
||||||
for subdir in appl/default-$version/db/ports appl/default-$version/etc etc/.template/etc-$version etc/.template/local-etc-$version home/.template/root-$version log/.template-$version; do
|
for subdir in appl/default-$version/db/ports \
|
||||||
|
appl/default-$version/etc \
|
||||||
|
etc/.template/etc-$version \
|
||||||
|
etc/.template/local-etc-$version \
|
||||||
|
home/.template/root-$version log/.template-$version; do
|
||||||
ex mkdir -p $j/$subdir
|
ex mkdir -p $j/$subdir
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -1764,7 +1781,7 @@ jaildk_update() {
|
|||||||
repo="https://github.com/TLINDEN/jaildk.git"
|
repo="https://github.com/TLINDEN/jaildk.git"
|
||||||
mustberoot
|
mustberoot
|
||||||
|
|
||||||
while getopts "f" arg; do
|
OPTIND=1; while getopts "f" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
f) force=1;;
|
f) force=1;;
|
||||||
*) usage_update;;
|
*) usage_update;;
|
||||||
@@ -1804,7 +1821,7 @@ Fetch current portscollection, use <version> or todays timestamp as new version"
|
|||||||
jaildk_fetchports() {
|
jaildk_fetchports() {
|
||||||
local version=`date +%Y%m%d`
|
local version=`date +%Y%m%d`
|
||||||
|
|
||||||
while getopts "v:" arg; do
|
OPTIND=1; while getopts "v:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
v) version=${OPTARG};;
|
v) version=${OPTARG};;
|
||||||
*) usage_fetchports;;
|
*) usage_fetchports;;
|
||||||
@@ -1865,7 +1882,7 @@ jaildk_freeze() {
|
|||||||
ADDBASE=""
|
ADDBASE=""
|
||||||
ADDAPPL=""
|
ADDAPPL=""
|
||||||
|
|
||||||
while getopts "abv:" arg; do
|
OPTIND=1; while getopts "abv:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
a) ADDAPPL=1;;
|
a) ADDAPPL=1;;
|
||||||
b) ADDBASE=1;;
|
b) ADDBASE=1;;
|
||||||
@@ -1874,7 +1891,7 @@ jaildk_freeze() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_freeze
|
usage_freeze
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1891,7 +1908,7 @@ jaildk_freeze() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
if test -n "$VERSION"; then
|
if test -n "$VERSION"; then
|
||||||
version=$VERSION
|
version=$VERSION
|
||||||
@@ -2068,7 +2085,12 @@ jaildk_ipfw() {
|
|||||||
|
|
||||||
jail=$1
|
jail=$1
|
||||||
|
|
||||||
while getopts "m:" arg; do
|
if ! test -f "$j/etc/$jail/ipfw.conf"; then
|
||||||
|
# dont do anything in non-ipf shells
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
OPTIND=1; while getopts "m:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
m) mode=${OPTARG};;
|
m) mode=${OPTARG};;
|
||||||
*) usage_ipfw;;
|
*) usage_ipfw;;
|
||||||
@@ -2079,21 +2101,19 @@ jaildk_ipfw() {
|
|||||||
usage_ipfw
|
usage_ipfw
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -f "$j/etc/$jail/ipfw.conf"; then
|
echo
|
||||||
echo
|
bold "Managing IPFW Rules..."
|
||||||
bold "Managing IPFW Rules..."
|
case $mode in
|
||||||
case $mode in
|
start)
|
||||||
start)
|
ipfw_delete $jail "y"
|
||||||
ipfw_delete $jail "y"
|
ipfw_add $jail
|
||||||
ipfw_add $jail
|
;;
|
||||||
;;
|
stop)
|
||||||
stop)
|
ipfw_delete $jail
|
||||||
ipfw_delete $jail
|
;;
|
||||||
;;
|
esac
|
||||||
esac
|
bold "... done"
|
||||||
bold "... done"
|
echo
|
||||||
echo
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ipfw_add() {
|
ipfw_add() {
|
||||||
@@ -2102,7 +2122,7 @@ ipfw_add() {
|
|||||||
jail=$1
|
jail=$1
|
||||||
|
|
||||||
# support jail variables as well
|
# support jail variables as well
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
if test -z $ip; then
|
if test -z $ip; then
|
||||||
# Getting current jails IP..
|
# Getting current jails IP..
|
||||||
@@ -2183,7 +2203,7 @@ jaildk_vnet() {
|
|||||||
|
|
||||||
BRIDGE=''
|
BRIDGE=''
|
||||||
|
|
||||||
while getopts "b:i:r:" arg; do
|
OPTIND=1; while getopts "b:i:r:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
b) BRIDGE=${OPTARG};;
|
b) BRIDGE=${OPTARG};;
|
||||||
*) usage_vnet;;
|
*) usage_vnet;;
|
||||||
@@ -2196,7 +2216,7 @@ jaildk_vnet() {
|
|||||||
|
|
||||||
die_if_not_exist $jail
|
die_if_not_exist $jail
|
||||||
|
|
||||||
load-jail-config $jail
|
load_jail_config $jail
|
||||||
|
|
||||||
if test -z "$ip" -a -z "$gw"; then
|
if test -z "$ip" -a -z "$gw"; then
|
||||||
usage_vnet
|
usage_vnet
|
||||||
@@ -2273,7 +2293,7 @@ delete directories. Be sure to have backups available!
|
|||||||
jaildk_prune() {
|
jaildk_prune() {
|
||||||
local BASE APPL JAIL UNUSED
|
local BASE APPL JAIL UNUSED
|
||||||
|
|
||||||
while getopts "baj:u" arg; do
|
OPTIND=1; while getopts "baj:u" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
b) BASE=1;;
|
b) BASE=1;;
|
||||||
a) APPL=1;;
|
a) APPL=1;;
|
||||||
@@ -2321,7 +2341,7 @@ jaildk_prune() {
|
|||||||
|
|
||||||
elif test -n "$JAIL"; then
|
elif test -n "$JAIL"; then
|
||||||
die_if_not_exist $JAIL
|
die_if_not_exist $JAIL
|
||||||
load-jail-config $JAIL
|
load_jail_config $JAIL
|
||||||
|
|
||||||
if test -z "$UNUSED"; then
|
if test -z "$UNUSED"; then
|
||||||
bold "Current Active jail version for jail $JAIL:" > /dev/stderr
|
bold "Current Active jail version for jail $JAIL:" > /dev/stderr
|
||||||
@@ -2358,7 +2378,7 @@ jaildk_bootstrap() {
|
|||||||
PORTS=''
|
PORTS=''
|
||||||
IP=''
|
IP=''
|
||||||
|
|
||||||
while getopts "i:b:v:p:a:" arg; do
|
OPTIND=1; while getopts "i:b:v:p:a:" arg; do
|
||||||
case $arg in
|
case $arg in
|
||||||
b) BASE=${OPTARG};;
|
b) BASE=${OPTARG};;
|
||||||
v) VERSION=${OPTARG};;
|
v) VERSION=${OPTARG};;
|
||||||
@@ -2369,7 +2389,7 @@ jaildk_bootstrap() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$jail"; then
|
if test -z "$jail" -o "$jail" = "-h"; then
|
||||||
usage_bootstrap
|
usage_bootstrap
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -2458,6 +2478,16 @@ mustberoot() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sanitycheck() {
|
||||||
|
# check if certain programs are installed
|
||||||
|
for program in cpdup; do
|
||||||
|
if ! command -v $program 2>&1 >/dev/null; then
|
||||||
|
echo "$program must be installed!" >&2
|
||||||
|
exit1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
#
|
#
|
||||||
# main()
|
# main()
|
||||||
@@ -2482,6 +2512,8 @@ if test -z "$runner"; then
|
|||||||
usage_jaildk
|
usage_jaildk
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sanitycheck
|
||||||
|
|
||||||
case $runner in
|
case $runner in
|
||||||
start|stop|restart)
|
start|stop|restart)
|
||||||
# running jails
|
# running jails
|
||||||
|
|||||||
Reference in New Issue
Block a user