Compare commits

..

No commits in common. "freebsd_upgrade_stuff" and "master" have entirely different histories.

2 changed files with 6 additions and 64 deletions

View File

@ -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|baseclean] {params}" 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_install="Usage: ${ezjail_admin} install [-mMpPsSK] [-h host] [-r release]" ezjail_usage_install="Usage: ${ezjail_admin} install [-mMpPsS] [-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,7 +53,6 @@ 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
@ -286,14 +285,10 @@ 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} >> ${ezjail_jailbase}/.ezjail.installlog find ${dir} | cpio -d -p -v "${ezjail_jailbase}" || exerr "Error: Installation of ${dir} failed."
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
@ -1072,7 +1067,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:Kr: arg; do case ${arg} in shift; while getopts :mMpPsSh:r: 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";;
@ -1080,7 +1075,6 @@ 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 ))
@ -1212,48 +1206,13 @@ 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}" --currently-running "${ezjail_release}" fetch install env PAGER=/bin/cat freebsd-update -b "${DESTDIR}" 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)

View File

@ -6,7 +6,7 @@
.Nd Administrate ezjail environment .Nd Administrate ezjail environment
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm Cm install .Nm Cm install
.Op Fl mMpPsSK .Op Fl mMpPsS
.Op Fl h Ar host .Op Fl h Ar host
.Op Fl r Ar release .Op Fl r Ar release
.Nm .Nm
@ -61,9 +61,6 @@
.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
@ -126,9 +123,6 @@ 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
@ -632,17 +626,6 @@ 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