Adds leases hoook to kea config
parent
54eab1342b
commit
ba461ead15
|
|
@ -24,6 +24,28 @@ restore_config_if_modified() {
|
|||
}
|
||||
|
||||
|
||||
# Añade el hook lease-cmds a kea-dhcp4.conf solo si no está ya presente
|
||||
ensure_lease_cmds_hook() {
|
||||
local config="$1"
|
||||
local lib="$2"
|
||||
|
||||
[ -f "$config" ] || return 0
|
||||
[ -n "$lib" ] || return 0
|
||||
|
||||
if grep -q "libdhcp_lease_cmds" "$config"; then
|
||||
echo "El hook lease-cmds ya está presente en $config, no se añade de nuevo."
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Añadiendo hook lease-cmds a $config..."
|
||||
local tmp
|
||||
tmp=$(mktemp)
|
||||
jq --arg lib "$lib" \
|
||||
'.Dhcp4["hooks-libraries"] = (.Dhcp4["hooks-libraries"] // []) + [{"library": $lib}]' \
|
||||
"$config" > "$tmp" && mv "$tmp" "$config"
|
||||
chown _kea:_kea "$config"
|
||||
}
|
||||
|
||||
KEA_CTRL_AGENT_CONF="/etc/kea/kea-ctrl-agent.conf"
|
||||
PUBLIC_DIR=/opt/opengnsys/ogdhcp/api/public
|
||||
db_get opengnsys/ogdhcp_interfaces
|
||||
|
|
@ -95,13 +117,23 @@ EOF
|
|||
echo "Configurando kea-dhcp4..."
|
||||
IFS=',' read -r -a INTERFACES <<< "$OGDHCP_INTERFACES"
|
||||
KEA_CONFIG="/etc/kea/kea-dhcp4.conf"
|
||||
|
||||
# Detectar la ruta de libdhcp_lease_cmds.so (varía según arquitectura)
|
||||
LEASE_CMDS_LIB=$(find /usr/lib -name "libdhcp_lease_cmds.so" 2>/dev/null | head -1)
|
||||
if [ -z "$LEASE_CMDS_LIB" ]; then
|
||||
echo "Advertencia: no se encontró libdhcp_lease_cmds.so. El hook lease-cmds no estará activo."
|
||||
else
|
||||
echo "Librería lease-cmds encontrada en: $LEASE_CMDS_LIB"
|
||||
fi
|
||||
|
||||
if [ -e "$KEA_CONFIG" ]; then
|
||||
dpkg-divert --package ogdhcp --divert "$KEA_CONFIG.dpkg-dist" --rename "$KEA_CONFIG"
|
||||
# El fichero se genera desde cero, no hay riesgo de duplicación
|
||||
cat > "$KEA_CONFIG" <<EOF
|
||||
{
|
||||
"Dhcp4": {
|
||||
"interfaces-config": {
|
||||
"interfaces": [ $(
|
||||
"interfaces": [ $(
|
||||
for interface in "${INTERFACES[@]}"; do
|
||||
echo "\"$interface\""
|
||||
done | paste -sd "," -
|
||||
|
|
@ -128,6 +160,8 @@ EOF
|
|||
}
|
||||
}
|
||||
EOF
|
||||
# Añadir el hook tras generar el fichero (la función verifica que no esté ya)
|
||||
ensure_lease_cmds_hook "$KEA_CONFIG" "$LEASE_CMDS_LIB"
|
||||
fi
|
||||
else
|
||||
|
||||
|
|
@ -137,6 +171,10 @@ EOF
|
|||
restore_config_if_modified "/opt/opengnsys/ogdhcp/api/.env"
|
||||
restore_config_if_modified "/etc/nginx/sites-available/ogdhcp.conf"
|
||||
restore_config_if_modified "/etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf"
|
||||
|
||||
# En upgrade: añadir el hook si se instaló kea-hook-lease-cmds y no estaba configurado
|
||||
LEASE_CMDS_LIB=$(find /usr/lib -name "libdhcp_lease_cmds.so" 2>/dev/null | head -1)
|
||||
ensure_lease_cmds_hook "/etc/kea/kea-dhcp4.conf" "$LEASE_CMDS_LIB"
|
||||
fi
|
||||
echo ">>> Configuración de ogdhcp completada."
|
||||
;;
|
||||
|
|
|
|||
Loading…
Reference in New Issue