mirror of
https://github.com/hackacad/bastille.git
synced 2025-12-23 10:40:43 +01:00
clone: Allow to clone with VLANs
This commit is contained in:
@@ -230,15 +230,28 @@ update_jailconf_vnet() {
|
|||||||
sed -i '' "/${_new_host_epair}/ s|vnet host interface for Bastille jail ${TARGET}|vnet host interface for Bastille jail ${NEWNAME}|g" "${_jail_conf}"
|
sed -i '' "/${_new_host_epair}/ s|vnet host interface for Bastille jail ${TARGET}|vnet host interface for Bastille jail ${NEWNAME}|g" "${_jail_conf}"
|
||||||
# Update /etc/rc.conf
|
# Update /etc/rc.conf
|
||||||
local _jail_vnet="$(grep ${_target_jail_epair} "${_rc_conf}" | grep -Eo -m 1 "vnet[0-9]+")"
|
local _jail_vnet="$(grep ${_target_jail_epair} "${_rc_conf}" | grep -Eo -m 1 "vnet[0-9]+")"
|
||||||
|
local _jail_vnet_vlan="$(grep "vlans_${_jail_vnet}" "${_rc_conf}" | sed 's/.*=//g')"
|
||||||
sed -i '' "s|${_target_jail_epair}_name|${_new_jail_epair}_name|" "${_rc_conf}"
|
sed -i '' "s|${_target_jail_epair}_name|${_new_jail_epair}_name|" "${_rc_conf}"
|
||||||
if grep "vnet0" "${_rc_conf}" | grep -q "${_new_jail_epair}_name"; then
|
if grep "vnet0" "${_rc_conf}" | grep -q "${_new_jail_epair}_name"; then
|
||||||
if [ "${IP}" = "0.0.0.0" ]; then
|
if [ -n "${_jail_vnet_vlan}" ]; then
|
||||||
sysrc -f "${_rc_conf}" ifconfig_vnet0="SYNCDHCP"
|
if [ "${IP}" = "0.0.0.0" ] || [ "${IP}" = "DHCP" ]; then
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0_${_jail_vnet_vlan}="SYNCDHCP"
|
||||||
|
else
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0_${_jail_vnet_vlan}="inet ${IP}"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
sysrc -f "${_rc_conf}" ifconfig_vnet0="inet ${IP}"
|
if [ "${IP}" = "0.0.0.0" ] || [ "${IP}" = "DHCP" ]; then
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0="SYNCDHCP"
|
||||||
|
else
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0="inet ${IP}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}="SYNCDHCP"
|
if [ -n "${_jail_vnet_vlan}" ]; then
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}_${_jail_vnet_vlan}="SYNCDHCP"
|
||||||
|
else
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}="SYNCDHCP"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
@@ -249,7 +262,8 @@ update_jailconf_vnet() {
|
|||||||
if ! grep -oq "bastille${_num}" ${bastille_jailsdir}/*/jail.conf; then
|
if ! grep -oq "bastille${_num}" ${bastille_jailsdir}/*/jail.conf; then
|
||||||
# Update jail.conf epair name
|
# Update jail.conf epair name
|
||||||
local uniq_epair="bastille${_num}"
|
local uniq_epair="bastille${_num}"
|
||||||
local _if_vnet="$(grep ${_if} "${_rc_conf}" | grep -Eo -m 1 "vnet[0-9]+")"
|
local _jail_vnet="$(grep ${_if} "${_rc_conf}" | grep -Eo -m 1 "vnet[0-9]+")"
|
||||||
|
local _jail_vnet_vlan="$(grep "vlans_${_jail_vnet}" "${_rc_conf}" | sed 's/.*=//g')"
|
||||||
sed -i '' "s|${_if}|${uniq_epair}|g" "${_jail_conf}"
|
sed -i '' "s|${_if}|${uniq_epair}|g" "${_jail_conf}"
|
||||||
# If jail had a static MAC, generate one for clone
|
# If jail had a static MAC, generate one for clone
|
||||||
if grep ether ${_jail_conf} | grep -qoc ${uniq_epair}; then
|
if grep ether ${_jail_conf} | grep -qoc ${uniq_epair}; then
|
||||||
@@ -262,13 +276,25 @@ update_jailconf_vnet() {
|
|||||||
# Update /etc/rc.conf
|
# Update /etc/rc.conf
|
||||||
sed -i '' "s|ifconfig_e0b_${_if}_name|ifconfig_e0b_${uniq_epair}_name|" "${_rc_conf}"
|
sed -i '' "s|ifconfig_e0b_${_if}_name|ifconfig_e0b_${uniq_epair}_name|" "${_rc_conf}"
|
||||||
if grep "vnet0" "${_rc_conf}" | grep -q ${uniq_epair}; then
|
if grep "vnet0" "${_rc_conf}" | grep -q ${uniq_epair}; then
|
||||||
if [ "${IP}" = "0.0.0.0" ]; then
|
if [ -n "${_jail_vnet_vlan}" ]; then
|
||||||
sysrc -f "${_rc_conf}" ifconfig_vnet0="SYNCDHCP"
|
if [ "${IP}" = "0.0.0.0" ] || [ "${IP}" = "DHCP" ]; then
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0_${_jail_vnet_vlan}="SYNCDHCP"
|
||||||
|
else
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0_${_jail_vnet_vlan}="inet ${IP}"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
sysrc -f "${_rc_conf}" ifconfig_vnet0=" inet ${IP} "
|
if [ "${IP}" = "0.0.0.0" ] || [ "${IP}" = "DHCP" ]; then
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0="SYNCDHCP"
|
||||||
|
else
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_vnet0="inet ${IP}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
sysrc -f "${_rc_conf}" ifconfig_${_if_vnet}="SYNCDHCP"
|
if [ -n "${_jail_vnet_vlan}" ]; then
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}_${_jail_vnet_vlan}="SYNCDHCP"
|
||||||
|
else
|
||||||
|
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}="SYNCDHCP"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user