summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2010-02-08 05:05:04 +0000
committererdgeist <erdgeist@erdgeist.org>2010-02-08 05:05:04 +0000
commitbd9c44955201b34fa55d2d9821b2031fca0433ba (patch)
treefbafc69435ed61b11666a90bc9c4f2b309070de5
parent9d981caa73abde57e9e3a43ea97adb5a2c278247 (diff)
Consider this to be the second part of the changes that started in 1.247
We no allow multiple flavours to be installed at once, feed them space separated to the -f option in ezjail-admin create This installs several ezjail.flavour scripts into / of the new jail, enumerating them /ezjail.flavour.0001 through 9999 It also adds a new script to /etc/rc.d/ezjail-config in the new jail which executes /ezjail.flavour.* as it finds them. On an unrelated note ezjail-admin delete and console will now use the onestop and onestart parameters if used with -f, so they even work with ezjail_enable not set.
-rwxr-xr-xezjail-admin23
1 files changed, 11 insertions, 12 deletions
diff --git a/ezjail-admin b/ezjail-admin
index 86787dd..2ea7328 100755
--- a/ezjail-admin
+++ b/ezjail-admin
@@ -128,7 +128,7 @@ detach_images () {
128# Find and execute our rc script 128# Find and execute our rc script
129start_stop_jail_by_script () { 129start_stop_jail_by_script () {
130 ezjail_action=$1 130 ezjail_action=$1
131 [ "${ezjail_action}" = "start" ] && ezjail_success_check="-n" || ezjail_success_check="-z" 131 [ "${ezjail_action}" = "onestart" ] && ezjail_success_check="-n" || ezjail_success_check="-z"
132 132
133 # Try to locate and run ezjails rc.d script 133 # Try to locate and run ezjails rc.d script
134 if [ -x "${ezjail_prefix}/etc/rc.d/ezjail" ]; then 134 if [ -x "${ezjail_prefix}/etc/rc.d/ezjail" ]; then
@@ -399,7 +399,7 @@ check_for_zfs_exist () {
399 399
400############################# 400#############################
401# End of function definitions 401# End of function definitions
402# " 402#
403 403
404# check for command 404# check for command
405[ $# -gt 0 ] || exerr ${ezjail_usage_ezjailadmin} 405[ $# -gt 0 ] || exerr ${ezjail_usage_ezjailadmin}
@@ -494,7 +494,7 @@ create)
494 494
495 # do some sanity checks on the selected flavour (if any) 495 # do some sanity checks on the selected flavour (if any)
496 for ezjail_flavour in ${ezjail_flavours}; do 496 for ezjail_flavour in ${ezjail_flavours}; do
497 [-d "${ezjail_flavours_dir}/${ezjail_flavour}" ] || exerr "Error: Flavour config directory ${ezjail_flavours_dir}/${ezjail_flavour} not found.\n Refer to ${ezjail_admin}s man page for details on flavours." 497 [ -d "${ezjail_flavours_dir}/${ezjail_flavour}" ] || exerr "Error: Flavour config directory ${ezjail_flavours_dir}/${ezjail_flavour} not found.\n Refer to ${ezjail_admin}s man page for details on flavours."
498 done 498 done
499 499
500 # check for restore circumstances, normally this is invoked by the restore command 500 # check for restore circumstances, normally this is invoked by the restore command
@@ -640,7 +640,7 @@ create)
640 640
641 # Final steps for flavour installation 641 # Final steps for flavour installation
642 if [ -z "${ezjail_exists}" ]; then 642 if [ -z "${ezjail_exists}" ]; then
643 _installed_flavours=0 643 installed_flavours=0
644 for ezjail_flavour in ${ezjail_flavours}; do 644 for ezjail_flavour in ${ezjail_flavours}; do
645 # install files and config to new jail 645 # install files and config to new jail
646 cd "${ezjail_flavours_dir}/${ezjail_flavour}" && find . | cpio -p -u -v "${ezjail_rootdir}" > /dev/null 646 cd "${ezjail_flavours_dir}/${ezjail_flavour}" && find . | cpio -p -u -v "${ezjail_rootdir}" > /dev/null
@@ -652,20 +652,20 @@ create)
652 # If a config is found, make it auto run on jails startup 652 # If a config is found, make it auto run on jails startup
653 if [ -f "${ezjail_rootdir}/ezjail.flavour" ]; then 653 if [ -f "${ezjail_rootdir}/ezjail.flavour" ]; then
654 chmod 0755 "${ezjail_rootdir}/ezjail.flavour" 654 chmod 0755 "${ezjail_rootdir}/ezjail.flavour"
655 mv "${ezjail_rootdir}/ezjail.flavour" "${ezjail_rootdir}/ezjail.flavour".`printf %04d ${_installed_flavours}` 655 mv "${ezjail_rootdir}/ezjail.flavour" "${ezjail_rootdir}/ezjail.flavour".`printf %04d $(( installed_flavours+=1 ))`
656 echo "Note: Shell scripts for flavour ${ezjail_flavour} installed, flavourizing on jails first startup." 656 echo "Note: Shell scripts for flavour ${ezjail_flavour} installed, flavourizing on jails first startup."
657 fi 657 fi
658 658
659 echo << "EOF" 659 cat > "${ezjail_rootdir}/etc/rc.d/ezjail-config" <<"EOF"
660#!/bin/sh 660#!/bin/sh
661# 661#
662# BEFORE: DAEMON 662# BEFORE: DAEMON
663# PROVIDES: ezjail-config 663# PROVIDES: ezjail-config
664# 664#
665case "$1" in 665case "$1" in
666 start) 666 *start)
667 rm -f "${0}" 667 rm -f "${0}"
668 for ezjail_flavour in /ezjail.flavour*; do 668 for ezjail_flavour in /ezjail.flavour.*; do
669 [ -x "${ezjail_flavour}" ] && "${ezjail_flavour}" 669 [ -x "${ezjail_flavour}" ] && "${ezjail_flavour}"
670 rm -f "${ezjail_flavour}" 670 rm -f "${ezjail_flavour}"
671 done 671 done
@@ -673,9 +673,8 @@ case "$1" in
673 *) 673 *)
674 ;; 674 ;;
675esac 675esac
676
677EOF 676EOF
678 > "${ezjail_rootdir}/etc/rc.d/ezjail-config" 677 chmod 0755 "${ezjail_rootdir}/etc/rc.d/ezjail-config"
679 done 678 done
680 fi 679 fi
681 680
@@ -735,7 +734,7 @@ delete)
735 [ "${ezjail_forcestop}" ] || exerr "Error: Jail appears to be still running.\n '${ezjail_admin} stop ${ezjail_name}' it first or use '${ezjail_admin} delete -f ${ezjail_name}' to force stop." 734 [ "${ezjail_forcestop}" ] || exerr "Error: Jail appears to be still running.\n '${ezjail_admin} stop ${ezjail_name}' it first or use '${ezjail_admin} delete -f ${ezjail_name}' to force stop."
736 735
737 # This one will also exerr on failure 736 # This one will also exerr on failure
738 start_stop_jail_by_script stop 737 start_stop_jail_by_script onestop
739 fi 738 fi
740 739
741 if [ "${ezjail_attached}" ]; then 740 if [ "${ezjail_attached}" ]; then
@@ -1002,7 +1001,7 @@ console)
1002 [ "$ezjail_forcestart}" ] || exerr "Error: Jail ${ezjail_name} appears not to be running\n Start it first, or use '${ezjail_admin} console -f ${ezjail_name}' to force start." 1001 [ "$ezjail_forcestart}" ] || exerr "Error: Jail ${ezjail_name} appears not to be running\n Start it first, or use '${ezjail_admin} console -f ${ezjail_name}' to force start."
1003 1002
1004 # This one will also exerr on failure 1003 # This one will also exerr on failure
1005 start_stop_jail_by_script start 1004 start_stop_jail_by_script onestart
1006 fi 1005 fi
1007 1006
1008 # use the jails FIB if there is one 1007 # use the jails FIB if there is one