close #2270 Fix backup kea and config Reviewed-on: #9pull/10/head
parent
bbde1dc3c1
commit
245eb14dc6
|
|
@ -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,65 +33,71 @@ 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
|
||||||
dpkg-divert --package ogdhcp --divert "$KEA_CTRL_AGENT_CONF.dpkg-dist" --rename "$KEA_CTRL_AGENT_CONF"
|
dpkg-divert --package ogdhcp --divert "$KEA_CTRL_AGENT_CONF.dpkg-dist" --rename "$KEA_CTRL_AGENT_CONF"
|
||||||
cp -a "$KEA_CTRL_AGENT_CONF.dpkg-dist" "$KEA_CTRL_AGENT_CONF"
|
cp -a "$KEA_CTRL_AGENT_CONF.dpkg-dist" "$KEA_CTRL_AGENT_CONF"
|
||||||
if grep -q '^[^#]*"authentication": {' "$KEA_CTRL_AGENT_CONF"; then
|
if grep -q '^[^#]*"authentication": {' "$KEA_CTRL_AGENT_CONF"; then
|
||||||
sed -i '/"authentication": {/,/^[[:space:]]*},/ {
|
sed -i '/"authentication": {/,/^[[:space:]]*},/ {
|
||||||
s/^\([[:space:]]*\)\([^#]\)/\1#\2/
|
s/^\([[:space:]]*\)\([^#]\)/\1#\2/
|
||||||
}' "$KEA_CTRL_AGENT_CONF"
|
}' "$KEA_CTRL_AGENT_CONF"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
# Configuración de AppArmor
|
||||||
|
APPARMOR_LOCAL_PROFILE="/etc/apparmor.d/local/usr.sbin.kea-dhcp4"
|
||||||
# Configuración de AppArmor
|
echo "Añadiendo permisos personalizados a AppArmor para kea-dhcp4..."
|
||||||
APPARMOR_LOCAL_PROFILE="/etc/apparmor.d/local/usr.sbin.kea-dhcp4"
|
mkdir -p "$(dirname "$APPARMOR_LOCAL_PROFILE")"
|
||||||
echo "Añadiendo permisos personalizados a AppArmor para kea-dhcp4..."
|
cat > "$APPARMOR_LOCAL_PROFILE" <<EOF
|
||||||
mkdir -p "$(dirname "$APPARMOR_LOCAL_PROFILE")"
|
|
||||||
cat > "$APPARMOR_LOCAL_PROFILE" <<EOF
|
|
||||||
/etc/kea/ rw,
|
/etc/kea/ rw,
|
||||||
/etc/kea/** rw,
|
/etc/kea/** rw,
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "Recargando perfiles de AppArmor..."
|
echo "Recargando perfiles de AppArmor..."
|
||||||
apparmor_parser -r /etc/apparmor.d/usr.sbin.kea-dhcp4
|
apparmor_parser -r /etc/apparmor.d/usr.sbin.kea-dhcp4
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "El perfil de AppArmor se recargó correctamente."
|
echo "El perfil de AppArmor se recargó correctamente."
|
||||||
else
|
else
|
||||||
echo "Error al recargar el perfil de AppArmor."
|
echo "Error al recargar el perfil de AppArmor."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 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
|
sed -i "s|__SERVERIP__|$OGDHCP_IP|g" /etc/nginx/sites-available/ogdhcp.conf
|
||||||
sed -i "s|__SERVERIP__|$OGDHCP_IP|g" /etc/nginx/sites-available/ogdhcp.conf
|
sed -i "s|__PUBLICDIR__|$PUBLIC_DIR|g" /etc/nginx/sites-available/ogdhcp.conf
|
||||||
sed -i "s|__PUBLICDIR__|$PUBLIC_DIR|g" /etc/nginx/sites-available/ogdhcp.conf
|
ln -s /etc/nginx/sites-available/ogdhcp.conf /etc/nginx/sites-enabled/ogdhcp.conf
|
||||||
ln -s /etc/nginx/sites-available/ogdhcp.conf /etc/nginx/sites-enabled/ogdhcp.conf
|
else
|
||||||
else
|
echo "El archivo /etc/nginx/sites-available/ogdhcp.conf ya existe."
|
||||||
echo "El archivo /etc/nginx/sites-available/ogdhcp.conf ya existe."
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Configuración de php-fpm
|
# Configuración de php-fpm
|
||||||
echo "Configurando php-fpm..."
|
echo "Configurando php-fpm..."
|
||||||
if [ ! -f /etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf ]; then
|
if [ ! -f /etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf ]; then
|
||||||
cp /opt/opengnsys/ogdhcp/etc/php/fpm/ogdhcp-fpm.conf /etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf
|
cp /opt/opengnsys/ogdhcp/etc/php/fpm/ogdhcp-fpm.conf /etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configuración de kea-dhcp4
|
# Configuración de kea-dhcp4
|
||||||
echo "Configurando kea-dhcp4..."
|
echo "Configurando kea-dhcp4..."
|
||||||
IFS=',' read -r -a INTERFACES <<< "$OGDHCP_INTERFACES"
|
IFS=',' read -r -a INTERFACES <<< "$OGDHCP_INTERFACES"
|
||||||
KEA_CONFIG="/etc/kea/kea-dhcp4.conf"
|
KEA_CONFIG="/etc/kea/kea-dhcp4.conf"
|
||||||
if [ -e "$KEA_CONFIG" ]; then
|
if [ -e "$KEA_CONFIG" ]; then
|
||||||
dpkg-divert --package ogdhcp --divert "$KEA_CONFIG.dpkg-dist" --rename "$KEA_CONFIG"
|
dpkg-divert --package ogdhcp --divert "$KEA_CONFIG.dpkg-dist" --rename "$KEA_CONFIG"
|
||||||
cat > "$KEA_CONFIG" <<EOF
|
cat > "$KEA_CONFIG" <<EOF
|
||||||
{
|
{
|
||||||
"Dhcp4": {
|
"Dhcp4": {
|
||||||
"interfaces-config": {
|
"interfaces-config": {
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
echo "El usuario $USER ya existe."
|
case $1 in
|
||||||
else
|
install)
|
||||||
echo "Creando el usuario $USER con home en $HOME_DIR."
|
if id "$USER" &>/dev/null; then
|
||||||
useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
|
echo "El usuario $USER ya existe."
|
||||||
fi
|
else
|
||||||
|
echo "Creando el usuario $USER con home en $HOME_DIR."
|
||||||
|
useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
|
||||||
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue