Compare commits

...

2 Commits

Author SHA1 Message Date
Nicolas Arenas 1585b7a706 refs #2270 , backup kea and config files 2025-06-20 15:12:22 +02:00
Nicolas Arenas 024569f3a5 update post install 2025-06-20 13:30:59 +02:00
2 changed files with 124 additions and 61 deletions

View File

@ -4,6 +4,26 @@ set -e
. /usr/share/debconf/confmodule . /usr/share/debconf/confmodule
restore_config_if_modified() {
local new="$1"
local backup="$1.bak.upgrade_package"
if [ -f "$backup" ]; then
if ! cmp -s "$new" "$backup"; then
echo ">>> Archivo modificado por el usuario detectado en $new"
echo " - Guardando archivo nuevo como ${new}.new"
mv -f "$new" "${new}.new"
echo " - Restaurando archivo anterior desde backup"
mv -f "$backup" "$new"
else
echo ">>> El archivo $new no ha cambiado desde la última versión, eliminando backup"
rm -f "$backup"
fi
fi
}
KEA_CTRL_AGENT_CONF="/etc/kea/kea-ctrl-agent.conf" KEA_CTRL_AGENT_CONF="/etc/kea/kea-ctrl-agent.conf"
PUBLIC_DIR=/opt/opengnsys/ogdhcp/api/public PUBLIC_DIR=/opt/opengnsys/ogdhcp/api/public
db_get opengnsys/ogdhcp_interfaces db_get opengnsys/ogdhcp_interfaces
@ -13,10 +33,18 @@ OGDHCP_IP="$RET"
db_get opengnsys/ogdhcp_ogbootIP db_get opengnsys/ogdhcp_ogbootIP
OGBOOT_IP="$RET" OGBOOT_IP="$RET"
# Get PHP version
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
if [ -z "$PHP_VERSION" ]; then
echo "Error: No se pudo determinar la versión de PHP."
exit 1
fi
case "$1" in case "$1" in
configure) configure)
echo "Configurando ogdhcp..." if [ -z "$2" ]; then
echo ">>> Configuración de ogdhcp, realizando instalacion nueva"
# Configuración de kea-ctrl-agent # Configuración de kea-ctrl-agent
echo "Eliminando autenticación de kea-ctrl-agent..." echo "Eliminando autenticación de kea-ctrl-agent..."
if [ -e "$KEA_CTRL_AGENT_CONF" ]; then if [ -e "$KEA_CTRL_AGENT_CONF" ]; then
@ -28,7 +56,6 @@ case "$1" in
}' "$KEA_CTRL_AGENT_CONF" }' "$KEA_CTRL_AGENT_CONF"
fi fi
fi fi
# Configuración de AppArmor # Configuración de AppArmor
APPARMOR_LOCAL_PROFILE="/etc/apparmor.d/local/usr.sbin.kea-dhcp4" APPARMOR_LOCAL_PROFILE="/etc/apparmor.d/local/usr.sbin.kea-dhcp4"
echo "Añadiendo permisos personalizados a AppArmor para kea-dhcp4..." echo "Añadiendo permisos personalizados a AppArmor para kea-dhcp4..."
@ -48,7 +75,6 @@ EOF
# Configuración de nginx # Configuración de nginx
echo "Configurando nginx..." echo "Configurando nginx..."
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
if [ ! -f /etc/nginx/sites-available/ogdhcp.conf ]; then if [ ! -f /etc/nginx/sites-available/ogdhcp.conf ]; then
cp /opt/opengnsys/ogdhcp/etc/nginxServer.conf.tmpl /etc/nginx/sites-available/ogdhcp.conf cp /opt/opengnsys/ogdhcp/etc/nginxServer.conf.tmpl /etc/nginx/sites-available/ogdhcp.conf
sed -i "s|__PHPVERSION__|$PHP_VERSION|g" /etc/nginx/sites-available/ogdhcp.conf sed -i "s|__PHPVERSION__|$PHP_VERSION|g" /etc/nginx/sites-available/ogdhcp.conf
@ -103,9 +129,21 @@ EOF
} }
EOF EOF
fi fi
;; else
echo "Actualizando configuración de kea-dhcp4..."
restore_config_if_modified "/etc/kea/kea-dhcp4.conf"
restore_config_if_modified "/etc/kea/kea-ctrl-agent.conf"
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"
fi
echo ">>> Configuración de ogdhcp completada."
;;
abort-upgrade|abort-remove|abort-deconfigure) abort-upgrade|abort-remove|abort-deconfigure)
echo ">>> Abortando la configuración de ogdhcp"
echo "No se realizaron cambios en la configuración."
exit 0
;; ;;
*) *)
@ -115,15 +153,16 @@ EOF
esac esac
chown opengnsys:www-data /opt/opengnsys/ chown opengnsys:www-data /opt/opengnsys/
chown -R opengnsys:www-data /opt/opengnsys/ogdhcp chown -R opengnsys:www-data /opt/opengnsys/ogdhcp
chown -R _kea:_kea /etc/kea chown -R _kea:_kea /etc/kea
# Reiniciar servicios # Reiniciar servicios
systemctl daemon-reload systemctl daemon-reload
systemctl restart nginx systemctl restart nginx || echo "Error al reiniciar nginx"
systemctl restart kea-dhcp4-server systemctl restart kea-dhcp4-server || echo "Error al reiniciar kea-dhcp4-server"
systemctl restart kea-ctrl-agent systemctl restart kea-ctrl-agent || echo "Error al reiniciar kea-ctrl-agent"
systemctl restart php$PHP_VERSION-fpm systemctl restart php$PHP_VERSION-fpm || echo "Error al reiniciar php$PHP_VERSION-fpm"
exit 0 exit 0

32
debian/ogdhcp.preinst vendored
View File

@ -2,14 +2,38 @@
set -e set -e
# Asegurarse de que el usuario exista backup_file_if_exists() {
local original="$1"
local backup="$1.bak"
if [ -e "$original" ]; then
echo " - Guardando backup de $original en $backup"
cp -a "$original" "$backup"
fi
}
USER="opengnsys" USER="opengnsys"
HOME_DIR="/opt/opengnsys" HOME_DIR="/opt/opengnsys"
if id "$USER" &>/dev/null; then
case $1 in
install)
if id "$USER" &>/dev/null; then
echo "El usuario $USER ya existe." echo "El usuario $USER ya existe."
else else
echo "Creando el usuario $USER con home en $HOME_DIR." echo "Creando el usuario $USER con home en $HOME_DIR."
useradd -m -d "$HOME_DIR" -s /bin/bash "$USER" useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
fi fi
;;
upgrade)
echo ">>> Actualización de ogdhcp" echo ">>> Backup de archivos de configuración reales en /opt/opengnsys"
backup_file_if_exists "/etc/kea/kea-dhcp4.conf"
backup_file_if_exists "/etc/kea/kea-ctrl-agent.conf"
backup_file_if_exists "/opt/opengnsys/ogdhcp/api/.env"
;;
*)
echo "Modo no reconocido: $1"
exit 1
;;
esac
exit 0 exit 0