Compare commits
7 Commits
master
...
freebsd_up
Author | SHA1 | Date | |
---|---|---|---|
|
a5dd360cf8 | ||
|
0b2fd52c9a | ||
|
bcf5edaa20 | ||
|
bc503ac023 | ||
|
8669dbddb5 | ||
|
a78d3142aa | ||
|
aac83f6591 |
51
ezjail-admin
51
ezjail-admin
@ -41,8 +41,8 @@ ezjail_basesystem="base"
|
|||||||
case `uname -p` in amd64) ezjail_dirlist="${ezjail_dirlist} usr/lib32"; ezjail_basesystem="${ezjail_basesystem} lib32";; esac
|
case `uname -p` in amd64) ezjail_dirlist="${ezjail_dirlist} usr/lib32"; ezjail_basesystem="${ezjail_basesystem} lib32";; esac
|
||||||
|
|
||||||
# Synopsis messages
|
# Synopsis messages
|
||||||
ezjail_usage_ezjailadmin="${ezjail_admin} v3.4.2\nUsage: ${ezjail_admin} [archive|config|console|create|delete|freeze|install|list|restore|snapshot|troubleshoot|update] {params}"
|
ezjail_usage_ezjailadmin="${ezjail_admin} v3.4.2\nUsage: ${ezjail_admin} [archive|config|console|create|delete|freeze|install|list|restore|snapshot|troubleshoot|update|baseclean] {params}"
|
||||||
ezjail_usage_install="Usage: ${ezjail_admin} install [-mMpPsS] [-h host] [-r release]"
|
ezjail_usage_install="Usage: ${ezjail_admin} install [-mMpPsSK] [-h host] [-r release]"
|
||||||
ezjail_usage_create="Usage: ${ezjail_admin} create [-xbi] [-f flavour] [-r jailroot] [-s size] [-c bde|eli|zfs] [-C args] [-a archive] [-z parentzfs] jailname jailip"
|
ezjail_usage_create="Usage: ${ezjail_admin} create [-xbi] [-f flavour] [-r jailroot] [-s size] [-c bde|eli|zfs] [-C args] [-a archive] [-z parentzfs] jailname jailip"
|
||||||
ezjail_usage_delete="Usage: ${ezjail_admin} delete [-wf] jailname"
|
ezjail_usage_delete="Usage: ${ezjail_admin} delete [-wf] jailname"
|
||||||
ezjail_usage_update="Usage: ${ezjail_admin} update [-s sourcetree|sourceosversion] [-p] (-b|-i|-u|-U|-P)"
|
ezjail_usage_update="Usage: ${ezjail_admin} update [-s sourcetree|sourceosversion] [-p] (-b|-i|-u|-U|-P)"
|
||||||
@ -53,6 +53,7 @@ ezjail_usage_restore="Usage: ${ezjail_admin} restore [-f] [-d archivedir] (archi
|
|||||||
ezjail_usage_freeze="Usage: ${ezjail_admin} freeze jailname newflavour"
|
ezjail_usage_freeze="Usage: ${ezjail_admin} freeze jailname newflavour"
|
||||||
ezjail_usage_troubleshoot="Usage: ${ezjail_admin} troubleshoot [jailname...]"
|
ezjail_usage_troubleshoot="Usage: ${ezjail_admin} troubleshoot [jailname...]"
|
||||||
ezjail_usage_list="Usage: ${ezjail_admin} list"
|
ezjail_usage_list="Usage: ${ezjail_admin} list"
|
||||||
|
ezjail_usage_baseclean="Usage: ${ezjail_admin} baseclean [-y]"
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# End of variable initialization
|
# End of variable initialization
|
||||||
@ -285,10 +286,14 @@ ezjail_splitworld() {
|
|||||||
# This mkdir is important, since cpio will create intermediate
|
# This mkdir is important, since cpio will create intermediate
|
||||||
# directories with permission 0700 which is bad
|
# directories with permission 0700 which is bad
|
||||||
mkdir -p "${ezjail_jailbase}/usr"
|
mkdir -p "${ezjail_jailbase}/usr"
|
||||||
|
# Remove any leftover ezjail install logs
|
||||||
|
rm -f ${ezjail_jailbase}/.ezjail.installlog
|
||||||
for dir in ${ezjail_dirlist}; do
|
for dir in ${ezjail_dirlist}; do
|
||||||
find ${dir} | cpio -d -p -v "${ezjail_jailbase}" || exerr "Error: Installation of ${dir} failed."
|
find ${dir} >> ${ezjail_jailbase}/.ezjail.installlog
|
||||||
|
find ${dir} | cpio -d -p -v ${ezjail_keep_basejail} "${ezjail_jailbase}" || exerr "Error: Installation of ${dir} failed."
|
||||||
chflags -R noschg ${dir}; rm -r ${dir}; ln -s /basejail/${dir} ${dir}
|
chflags -R noschg ${dir}; rm -r ${dir}; ln -s /basejail/${dir} ${dir}
|
||||||
done
|
done
|
||||||
|
[ "${ezjail_uglyperlhack}" = "YES" ] && echo usr/bin/perl >> ${ezjail_jailbase}/.ezjail.installlog
|
||||||
mkdir basejail
|
mkdir basejail
|
||||||
|
|
||||||
# Try to remove the old template jail
|
# Try to remove the old template jail
|
||||||
@ -1067,7 +1072,7 @@ install)
|
|||||||
# Clean variables, prevent pollution
|
# Clean variables, prevent pollution
|
||||||
unset ezjail_release ezjail_installmanpages ezjail_installports ezjail_installsources ezjail_dir ezjail_ftpserverqueried ezjail_proto ezjail_disturi
|
unset ezjail_release ezjail_installmanpages ezjail_installports ezjail_installsources ezjail_dir ezjail_ftpserverqueried ezjail_proto ezjail_disturi
|
||||||
|
|
||||||
shift; while getopts :mMpPsSh:r: arg; do case ${arg} in
|
shift; while getopts :mMpPsSh:Kr: arg; do case ${arg} in
|
||||||
m) ezjail_installmanpages=" manpages";;
|
m) ezjail_installmanpages=" manpages";;
|
||||||
M) ezjail_installmanpages=" manpages"; unset ezjail_basesystem;;
|
M) ezjail_installmanpages=" manpages"; unset ezjail_basesystem;;
|
||||||
s) ezjail_installsources=" src";;
|
s) ezjail_installsources=" src";;
|
||||||
@ -1075,6 +1080,7 @@ install)
|
|||||||
p) ezjail_installports="YES";;
|
p) ezjail_installports="YES";;
|
||||||
P) ezjail_installports="YES"; unset ezjail_basesystem;;
|
P) ezjail_installports="YES"; unset ezjail_basesystem;;
|
||||||
h) ezjail_ftphost=${OPTARG};;
|
h) ezjail_ftphost=${OPTARG};;
|
||||||
|
K) ezjail_keep_basejail="-u";;
|
||||||
r) ezjail_release=${OPTARG};;
|
r) ezjail_release=${OPTARG};;
|
||||||
?) exerr ${ezjail_usage_install};;
|
?) exerr ${ezjail_usage_install};;
|
||||||
esac; done; shift $(( ${OPTIND} - 1 ))
|
esac; done; shift $(( ${OPTIND} - 1 ))
|
||||||
@ -1206,13 +1212,48 @@ install)
|
|||||||
|
|
||||||
# Update to current patch level, split basejail and newjail
|
# Update to current patch level, split basejail and newjail
|
||||||
if [ "${ezjail_basesystem}" ]; then
|
if [ "${ezjail_basesystem}" ]; then
|
||||||
env PAGER=/bin/cat freebsd-update -b "${DESTDIR}" fetch install
|
env PAGER=/bin/cat freebsd-update -b "${DESTDIR}" --currently-running "${ezjail_release}" fetch install
|
||||||
ezjail_splitworld
|
ezjail_splitworld
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fill ports, if requested
|
# Fill ports, if requested
|
||||||
[ "${ezjail_installports}" ] && ezjail_updateports
|
[ "${ezjail_installports}" ] && ezjail_updateports
|
||||||
|
|
||||||
|
;;
|
||||||
|
######################## ezjail-admin BASECLEAN ########################
|
||||||
|
baseclean)
|
||||||
|
unset ezjail_yeswecan
|
||||||
|
|
||||||
|
shift; while getopts y arg; do case ${arg} in
|
||||||
|
y) ezjail_yeswecan="YES";;
|
||||||
|
?) exerr ${ezjail_usage_baseclean};;
|
||||||
|
esac; done; shift $(( $OPTIND - 1 ))
|
||||||
|
|
||||||
|
[ "${ezjail_yeswecan}" != "YES" ] && echo "baseclean dry run, nothing will be deleted. Use -y option to delete files."
|
||||||
|
[ ! -f "${ezjail_jailbase}/.ezjail.installlog" ] && echo "No .ezjail.installlog found in basejail, please run ezjail-admin install first." && exit 1
|
||||||
|
|
||||||
|
[ "${ezjail_use_zfs}" = "YES" ] && ensure_jailzfs
|
||||||
|
ezjail_makeabsolute ezjail_jailbase
|
||||||
|
|
||||||
|
for _parent in `ls -1d ${ezjail_jailbase}/*/* |grep -v ${ezjail_jailbase}/usr/ports`; do
|
||||||
|
|
||||||
|
# find all files in base jail that are not listed in the install log and delete them
|
||||||
|
for _file in `find ${_parent} -type l -or -type f | sed s:^${ezjail_jailbase}/:: `; do
|
||||||
|
if [ `grep --mmap -c -m 1 -F -x ${_file} ${ezjail_jailbase}/.ezjail.installlog` -lt 1 ]; then
|
||||||
|
[ "${ezjail_yeswecan}" != "YES" ] && echo "File: ${ezjail_jailbase}/${_file} will be deleted"
|
||||||
|
[ "${ezjail_yeswecan}" = "YES" ] && rm "${ezjail_jailbase}/${_file}" && echo "File: ${ezjail_jailbase}/${_file} deleted"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# find all directories in base jail that are not listed in the install log and delete them when empty
|
||||||
|
for _dir in `find ${_parent} -type d | sort -r | sed -E s:^${ezjail_jailbase}/:: `; do
|
||||||
|
if [ `grep -c -m 1 -F -x ${_dir} ${ezjail_jailbase}/.ezjail.installlog` -lt 1 ]; then
|
||||||
|
[ "${ezjail_yeswecan}" != "YES" -a "${_dir}" != "${ezjail_jailbase}" ] && echo "Dir: ${ezjail_jailbase}/${_dir} will be deleted"
|
||||||
|
[ "${ezjail_yeswecan}" = "YES" -a "${_dir}" != "${ezjail_jailbase}" ] && rmdir ${ezjail_jailbase}/${_dir} && echo "Dir: ${ezjail_jailbase}/${_dir} deleted"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
;;
|
;;
|
||||||
######################## ezjail-admin SHORTCUT ########################
|
######################## ezjail-admin SHORTCUT ########################
|
||||||
*start|*stop|*startcrypto|*stopcrypto)
|
*start|*stop|*startcrypto|*stopcrypto)
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
.Nd Administrate ezjail environment
|
.Nd Administrate ezjail environment
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm Cm install
|
.Nm Cm install
|
||||||
.Op Fl mMpPsS
|
.Op Fl mMpPsSK
|
||||||
.Op Fl h Ar host
|
.Op Fl h Ar host
|
||||||
.Op Fl r Ar release
|
.Op Fl r Ar release
|
||||||
.Nm
|
.Nm
|
||||||
@ -61,6 +61,9 @@
|
|||||||
.Op Fl s Ar sourcetree | sourceosversion
|
.Op Fl s Ar sourcetree | sourceosversion
|
||||||
.Op Fl p
|
.Op Fl p
|
||||||
.Fl b | Fl i | Fl P | Fl u | Fl U
|
.Fl b | Fl i | Fl P | Fl u | Fl U
|
||||||
|
.Nm
|
||||||
|
.Cm baseclean
|
||||||
|
.Op Fl y
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
The
|
The
|
||||||
.Nm
|
.Nm
|
||||||
@ -123,6 +126,9 @@ for details or
|
|||||||
.Xr portsnap 8 .
|
.Xr portsnap 8 .
|
||||||
.It Fl P
|
.It Fl P
|
||||||
Fetch and extract a ports tree, without (re)installing the base jail.
|
Fetch and extract a ports tree, without (re)installing the base jail.
|
||||||
|
.It Fl K
|
||||||
|
Reinstall the base jail and the new jail template. Can be used together with -r
|
||||||
|
to upgrade both to a newer (or older) FreeBSD version.
|
||||||
.It Fl h Ar host
|
.It Fl h Ar host
|
||||||
Set the remote host to fetch FreeBSD distribution sets from. If absent the
|
Set the remote host to fetch FreeBSD distribution sets from. If absent the
|
||||||
default host
|
default host
|
||||||
@ -626,6 +632,17 @@ sub command to install the basejail from binary packages.
|
|||||||
.Pp
|
.Pp
|
||||||
If the basejail is managed in its own ZFS filesystem, a snapshot of that
|
If the basejail is managed in its own ZFS filesystem, a snapshot of that
|
||||||
filesystem is taken first.
|
filesystem is taken first.
|
||||||
|
.Ss Nm Cm baseclean
|
||||||
|
Cleans ezjail's basejail from any unneeded files that might still be present
|
||||||
|
after an upgrade via
|
||||||
|
.Cm ezjail-admin install
|
||||||
|
.Fl K
|
||||||
|
.Pp
|
||||||
|
Defaults in a dry run which
|
||||||
|
will not delete anything, but shows all files that would be deleted.
|
||||||
|
.Pp
|
||||||
|
.Fl y
|
||||||
|
Really delete that files.
|
||||||
.Sh FILES
|
.Sh FILES
|
||||||
.Pa EZJAIL_PREFIX/bin/ezjail-admin
|
.Pa EZJAIL_PREFIX/bin/ezjail-admin
|
||||||
.br
|
.br
|
||||||
|
Loading…
x
Reference in New Issue
Block a user