Feature add, create empty jail and minor maintenance
This commit is contained in:
@@ -104,6 +104,17 @@ validate_release() {
|
||||
fi
|
||||
}
|
||||
|
||||
generate_minimal_conf() {
|
||||
cat << EOF > "${bastille_jail_conf}"
|
||||
${NAME} {
|
||||
host.hostname = ${NAME};
|
||||
mount.fstab = ${bastille_jail_fstab};
|
||||
path = ${bastille_jail_path};
|
||||
}
|
||||
EOF
|
||||
touch "${bastille_jail_fstab}"
|
||||
}
|
||||
|
||||
generate_jail_conf() {
|
||||
cat << EOF > "${bastille_jail_conf}"
|
||||
${NAME} {
|
||||
@@ -187,10 +198,11 @@ create_jail() {
|
||||
fi
|
||||
fi
|
||||
else
|
||||
mkdir -p "${bastille_jailsdir}/${NAME}"
|
||||
mkdir -p "${bastille_jailsdir}/${NAME}/root"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "${EMPTY_JAIL}" ]; then
|
||||
if [ ! -d "${bastille_jail_base}" ]; then
|
||||
mkdir -p "${bastille_jail_base}"
|
||||
fi
|
||||
@@ -357,6 +369,10 @@ create_jail() {
|
||||
|
||||
## TZ: configurable (default: Etc/UTC)
|
||||
ln -s "/usr/share/zoneinfo/${bastille_tzdata}" etc/localtime
|
||||
else
|
||||
## Generate minimal configuration for empty jail
|
||||
generate_minimal_conf
|
||||
fi
|
||||
}
|
||||
|
||||
# Handle special-case commands first.
|
||||
@@ -372,6 +388,7 @@ if echo "$3" | grep '@'; then
|
||||
fi
|
||||
|
||||
## reset this options
|
||||
EMPTY_JAIL=""
|
||||
THICK_JAIL=""
|
||||
VNET_JAIL=""
|
||||
|
||||
@@ -384,6 +401,10 @@ if [ "${1}" = "-T" -o "${1}" = "--thick" -o "${1}" = "thick" ] && \
|
||||
else
|
||||
## handle single options
|
||||
case "${1}" in
|
||||
-E|--empty|empty)
|
||||
shift
|
||||
EMPTY_JAIL="1"
|
||||
;;
|
||||
-T|--thick|thick)
|
||||
shift
|
||||
THICK_JAIL="1"
|
||||
@@ -404,9 +425,15 @@ RELEASE="$2"
|
||||
IP="$3"
|
||||
INTERFACE="$4"
|
||||
|
||||
if [ -n "${EMPTY_JAIL}" ]; then
|
||||
if [ $# -ne 1 ]; then
|
||||
usage
|
||||
fi
|
||||
else
|
||||
if [ $# -gt 4 ] || [ $# -lt 3 ]; then
|
||||
usage
|
||||
fi
|
||||
fi
|
||||
|
||||
## don't allow for dots(.) in container names
|
||||
if echo "${NAME}" | grep -q "[.]"; then
|
||||
@@ -414,6 +441,7 @@ if echo "${NAME}" | grep -q "[.]"; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${EMPTY_JAIL}" ]; then
|
||||
## verify release
|
||||
case "${RELEASE}" in
|
||||
*-RELEASE|*-release|*-RC1|*-rc1|*-RC2|*-rc2)
|
||||
@@ -464,11 +492,6 @@ if [ ! -d "${bastille_releasesdir}/${RELEASE}" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## check if a running jail matches name or already exist
|
||||
if [ -n "${NAME}" ]; then
|
||||
running_jail
|
||||
fi
|
||||
|
||||
## check if ip address is valid
|
||||
if [ -n "${IP}" ]; then
|
||||
validate_ip
|
||||
@@ -483,5 +506,13 @@ if [ -n "${INTERFACE}" ]; then
|
||||
else
|
||||
validate_netconf
|
||||
fi
|
||||
else
|
||||
echo -e "${COLOR_GREEN}Creating empty jail: ${NAME}.${COLOR_RESET}"
|
||||
fi
|
||||
|
||||
## check if a running jail matches name or already exist
|
||||
if [ -n "${NAME}" ]; then
|
||||
running_jail
|
||||
fi
|
||||
|
||||
create_jail "${NAME}" "${RELEASE}" "${IP}" "${INTERFACE}"
|
||||
|
||||
Reference in New Issue
Block a user