forked from ungleich-public/cdist
Added support for multiple IP addresses
FreeBSD jails support jail_${name}_ip="iface1|addr1, iface2|addr2" format for specifying multiple IP addresses
This commit is contained in:
parent
52fdf15a4b
commit
9f330e361d
1 changed files with 16 additions and 3 deletions
|
@ -92,6 +92,20 @@ fi
|
||||||
|
|
||||||
present="$(cat "$__object/explorer/present")"
|
present="$(cat "$__object/explorer/present")"
|
||||||
status="$(cat "$__object/explorer/status")"
|
status="$(cat "$__object/explorer/status")"
|
||||||
|
# Handle ip="iface|addr, iface|addr" format
|
||||||
|
if [ $(expr "${ip}" : ".*|.*") -gt "0" ]; then
|
||||||
|
# If we have multiple IPs defined, $interface doesn't make sense because ip="iface|addr, iface|addr" implies it
|
||||||
|
interface=""
|
||||||
|
SAVE_IFS="$IFS"
|
||||||
|
IFS=", "
|
||||||
|
for cur_ip in ${ip}; do
|
||||||
|
# Just get the last IP address for SSH to listen on
|
||||||
|
mgmt_ip=$(echo "${ip}" | sed -E -e 's/^.*\|(.*)\/[0-9]+$/\1/')
|
||||||
|
done
|
||||||
|
IFS="$SAVE_IFS"
|
||||||
|
else
|
||||||
|
mgmt_ip=$(echo "${ip}" | cut '-d ' -f1)
|
||||||
|
fi
|
||||||
|
|
||||||
stopJail() {
|
stopJail() {
|
||||||
# Check $status before issuing command
|
# Check $status before issuing command
|
||||||
|
@ -250,7 +264,7 @@ if [ -n "$interface" ]; then
|
||||||
jail_${name}_interface="${interface}"
|
jail_${name}_interface="${interface}"
|
||||||
END
|
END
|
||||||
EOF
|
EOF
|
||||||
else
|
elif [ "$(expr "${ip}" : ".*|.*")" -eq "0" ]; then
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
interface=\$(ifconfig -l | cut '-d ' -f1)
|
interface=\$(ifconfig -l | cut '-d ' -f1)
|
||||||
cat >>/etc/rc.conf <<END
|
cat >>/etc/rc.conf <<END
|
||||||
|
@ -316,8 +330,7 @@ echo syslogd_flags=\"-ss\" >>"${jaildir}/rw/${name}/etc/rc.conf"
|
||||||
EOF
|
EOF
|
||||||
# Configure SSHd's listening address
|
# Configure SSHd's listening address
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
ip=\$(echo "${ip}" | cut '-d ' -f1)
|
sed -E -i '.bak' -e "s/#?ListenAddress 0.0.0.0/ListenAddress ${mgmt_ip}/" "${jaildir}/rw/${name}/etc/ssh/sshd_config"
|
||||||
sed -i '.bak' "s/#ListenAddress 0.0.0.0/ListenAddress \${ip}/" "${jaildir}/rw/${name}/etc/ssh/sshd_config"
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue