Refactor postinst and prerm
parent
07d86be9b0
commit
703c28e4ce
|
@ -36,6 +36,7 @@ fi
|
||||||
USER_UID=$(echo "$USER_INFO" | cut -d: -f3)
|
USER_UID=$(echo "$USER_INFO" | cut -d: -f3)
|
||||||
USER_GID=$(echo "$USER_INFO" | cut -d: -f4)
|
USER_GID=$(echo "$USER_INFO" | cut -d: -f4)
|
||||||
|
|
||||||
|
|
||||||
INSTALL_OGBOOT_TARGET="/opt/opengnsys/ogboot"
|
INSTALL_OGBOOT_TARGET="/opt/opengnsys/ogboot"
|
||||||
fstab_entries=(
|
fstab_entries=(
|
||||||
"$INSTALL_OGBOOT_TARGET/lib/oglive.iso $INSTALL_OGBOOT_TARGET/mnt iso9660 loop,ro,users,uid=$USER_UID,gid=$USER_GID,noauto 0 0"
|
"$INSTALL_OGBOOT_TARGET/lib/oglive.iso $INSTALL_OGBOOT_TARGET/mnt iso9660 loop,ro,users,uid=$USER_UID,gid=$USER_GID,noauto 0 0"
|
||||||
|
@ -43,11 +44,8 @@ fstab_entries=(
|
||||||
)
|
)
|
||||||
fstab_file="/etc/fstab"
|
fstab_file="/etc/fstab"
|
||||||
|
|
||||||
# Detectar si es una instalación nueva o una actualización
|
|
||||||
if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
|
||||||
# Copy sudo configuration
|
|
||||||
echo "Primera instalación"
|
|
||||||
|
|
||||||
|
configure_sudo() {
|
||||||
echo "Copiando configuración de sudo"
|
echo "Copiando configuración de sudo"
|
||||||
if [ ! -f /etc/sudoers.d/opengnsys ]; then
|
if [ ! -f /etc/sudoers.d/opengnsys ]; then
|
||||||
cp /opt/opengnsys/ogboot/etc/ogboot.sudoers /etc/sudoers.d/opengnsys
|
cp /opt/opengnsys/ogboot/etc/ogboot.sudoers /etc/sudoers.d/opengnsys
|
||||||
|
@ -56,8 +54,9 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
else
|
else
|
||||||
echo "El archivo /etc/sudoers.d/opengnsys ya existe."
|
echo "El archivo /etc/sudoers.d/opengnsys ya existe."
|
||||||
fi
|
fi
|
||||||
# Add fstab entries
|
}
|
||||||
|
|
||||||
|
add_fstab_entries(){
|
||||||
echo "Añadiendo entradas a /etc/fstab"
|
echo "Añadiendo entradas a /etc/fstab"
|
||||||
for entry in "${fstab_entries[@]}"; do
|
for entry in "${fstab_entries[@]}"; do
|
||||||
if ! grep -Fxq "$entry" "$fstab_file"; then
|
if ! grep -Fxq "$entry" "$fstab_file"; then
|
||||||
|
@ -67,9 +66,15 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
echo "La entrada ya existe en /etc/fstab: $entry"
|
echo "La entrada ya existe en /etc/fstab: $entry"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
update_opengnsys_user() {
|
||||||
echo "Actualizando grupos del usuario opengnsys"
|
echo "Actualizando grupos del usuario opengnsys"
|
||||||
usermod -aG disk "$USER"
|
usermod -aG disk "$USER"
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_tftp(){
|
||||||
|
|
||||||
echo "Modificando el archivo tftpboot"
|
echo "Modificando el archivo tftpboot"
|
||||||
if ! dpkg-divert --list /etc/default/tftpd-hpa >/dev/null 2>&1; then
|
if ! dpkg-divert --list /etc/default/tftpd-hpa >/dev/null 2>&1; then
|
||||||
|
@ -78,10 +83,14 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
if [ ! -f /etc/default/tftpd-hpa ]; then
|
if [ ! -f /etc/default/tftpd-hpa ]; then
|
||||||
cp /opt/opengnsys/ogboot/etc/default/tftpd-hpa /etc/default/tftpd-hpa
|
cp /opt/opengnsys/ogboot/etc/default/tftpd-hpa /etc/default/tftpd-hpa
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_oglive(){
|
||||||
echo "Download ogLive"
|
echo "Download ogLive"
|
||||||
/opt/opengnsys/ogboot/bin/oglivecli download "$DEFAULT_OGLIVE"
|
/opt/opengnsys/ogboot/bin/oglivecli download "$DEFAULT_OGLIVE"
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_ipxe(){
|
||||||
echo "Configure ipxe templates"
|
echo "Configure ipxe templates"
|
||||||
cp $OGBOOT_DIR/etc/dhcp_boot.ipxe.tmpl $OGBOOT_DIR/tftpboot/ipxe_scripts/dhcp_boot.ipxe
|
cp $OGBOOT_DIR/etc/dhcp_boot.ipxe.tmpl $OGBOOT_DIR/tftpboot/ipxe_scripts/dhcp_boot.ipxe
|
||||||
cp $OGBOOT_DIR/etc/default.ipxe.tmpl $OGBOOT_DIR/tftpboot/ipxe_scripts/default.ipxe
|
cp $OGBOOT_DIR/etc/default.ipxe.tmpl $OGBOOT_DIR/tftpboot/ipxe_scripts/default.ipxe
|
||||||
|
@ -98,6 +107,9 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
cp bin-x86_64-efi/ipxe.efi $OGBOOT_DIR/tftpboot/
|
cp bin-x86_64-efi/ipxe.efi $OGBOOT_DIR/tftpboot/
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_api(){
|
||||||
echo "Modify env.local.php"
|
echo "Modify env.local.php"
|
||||||
if ! dpkg-divert --list /opt/opengnsys/ogboot/.env.local.php >/dev/null 2>&1; then
|
if ! dpkg-divert --list /opt/opengnsys/ogboot/.env.local.php >/dev/null 2>&1; then
|
||||||
dpkg-divert --add --rename --divert /opt/opengnsys/ogboot/.env.local.php.orig /opt/opengnsys/ogboot/.env.local.php
|
dpkg-divert --add --rename --divert /opt/opengnsys/ogboot/.env.local.php.orig /opt/opengnsys/ogboot/.env.local.php
|
||||||
|
@ -108,7 +120,9 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
sed -i "s|'OGBOOT_IP' => '.*'|'OGBOOT_IP' => '$OGBOOT_IP'|" "$ENV_FILE"
|
sed -i "s|'OGBOOT_IP' => '.*'|'OGBOOT_IP' => '$OGBOOT_IP'|" "$ENV_FILE"
|
||||||
sed -i "s|'OGBOOT_PORT' => '.*'|'OGBOOT_PORT' => '$OGBOOT_PORT'|" "$ENV_FILE"
|
sed -i "s|'OGBOOT_PORT' => '.*'|'OGBOOT_PORT' => '$OGBOOT_PORT'|" "$ENV_FILE"
|
||||||
sed -i "s|'OGCORE_API_URL' => '.*'|'OGCORE_API_URL' => '$OGCORE_API_URL'|" "$ENV_FILE"
|
sed -i "s|'OGCORE_API_URL' => '.*'|'OGCORE_API_URL' => '$OGCORE_API_URL'|" "$ENV_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_nginx_and_fpm() {
|
||||||
echo "Configure nginx"
|
echo "Configure nginx"
|
||||||
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
|
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
|
||||||
if [ ! -f /etc/nginx/sites-available/ogboot.conf ]; then
|
if [ ! -f /etc/nginx/sites-available/ogboot.conf ]; then
|
||||||
|
@ -127,9 +141,11 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
if [ ! -f /etc/php/$PHP_VERSION/fpm/pool.d/ogboot.conf ]; then
|
if [ ! -f /etc/php/$PHP_VERSION/fpm/pool.d/ogboot.conf ]; then
|
||||||
cp /opt/opengnsys/ogboot/etc/ogboot-fpm.conf /etc/php/$PHP_VERSION/fpm/pool.d/ogboot.conf
|
cp /opt/opengnsys/ogboot/etc/ogboot-fpm.conf /etc/php/$PHP_VERSION/fpm/pool.d/ogboot.conf
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_samba(){
|
||||||
echo "Configurando Samba"
|
echo "Configurando Samba"
|
||||||
dpkg-divert --packege ogboot --add --rename --divert /etc/samba/smb.conf.orig /etc/samba/smb.conf
|
dpkg-divert --package ogboot --add --rename --divert /etc/samba/smb.conf.orig /etc/samba/smb.conf
|
||||||
cp /etc/samba/smb.conf.orig /etc/samba/smb.conf
|
cp /etc/samba/smb.conf.orig /etc/samba/smb.conf
|
||||||
mkdir -p /etc/samba/opengsys/
|
mkdir -p /etc/samba/opengsys/
|
||||||
cp /opt/opengnsys/ogboot/etc/samba/smb-ogboot.conf /etc/samba/opengsys/
|
cp /opt/opengnsys/ogboot/etc/samba/smb-ogboot.conf /etc/samba/opengsys/
|
||||||
|
@ -138,25 +154,48 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
if ! grep -q "$INCLUDE_LINE" /etc/samba/smb.conf; then
|
if ! grep -q "$INCLUDE_LINE" /etc/samba/smb.conf; then
|
||||||
echo "$INCLUDE_LINE" | sudo tee -a /etc/samba/smb.conf > /dev/null
|
echo "$INCLUDE_LINE" | sudo tee -a /etc/samba/smb.conf > /dev/null
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_permissions(){
|
||||||
elif [ "$1" = "configure" ] && [ -n "$2" ]; then
|
|
||||||
echo "Actualización desde la versión $2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Cambiar la propiedad de los archivos al usuario especificado
|
|
||||||
echo "Cambiando la propiedad de los archivos al usuario $USER"
|
echo "Cambiando la propiedad de los archivos al usuario $USER"
|
||||||
chown opengnsys:www-data /opt/opengnsys/
|
chown opengnsys:www-data /opt/opengnsys/
|
||||||
chown -R opengnsys:www-data /opt/opengnsys/ogboot
|
chown -R opengnsys:www-data /opt/opengnsys/ogboot
|
||||||
|
}
|
||||||
|
|
||||||
# Install http server stuff
|
restart_services(){
|
||||||
# Reiniciar servicios si es necesario
|
|
||||||
# systemctl restart nombre_del_servicio
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl restart nginx
|
systemctl restart nginx
|
||||||
systemctl restart tftpd-hpa
|
systemctl restart tftpd-hpa
|
||||||
systemctl restart php8.3-fpm
|
systemctl restart php8.3-fpm
|
||||||
systemctl restart samba
|
systemctl restart samba
|
||||||
|
}
|
||||||
|
|
||||||
|
# Detectar si es una instalación nueva o una actualización
|
||||||
|
if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
|
# Copy sudo configuration
|
||||||
|
echo "Primera instalación"
|
||||||
|
configure_sudo
|
||||||
|
add_fstab_entries
|
||||||
|
update_opengnsys_user
|
||||||
|
configure_tftp
|
||||||
|
install_oglive
|
||||||
|
configure_ipxe
|
||||||
|
configure_api
|
||||||
|
configure_nginx_and_fpm
|
||||||
|
configure_samba
|
||||||
|
|
||||||
|
|
||||||
|
elif [ "$1" = "configure" ] && [ -n "$2" ]; then
|
||||||
|
echo "Actualización desde la versión $2"
|
||||||
|
configure_sudo
|
||||||
|
configure_tftp
|
||||||
|
configure_api
|
||||||
|
configure_nginx_and_fpm
|
||||||
|
configure_samba
|
||||||
|
fi
|
||||||
|
|
||||||
|
configure_permissions
|
||||||
|
restart_services
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
remove|upgrade|deconfigure)
|
||||||
|
echo "Deteniendo servicios antes de la eliminación o actualización..."
|
||||||
|
systemctl stop nginx || true
|
||||||
|
systemctl stop tftpd-hpa || true
|
||||||
|
systemctl stop php8.3-fpm || true
|
||||||
|
systemctl stop samba || true
|
||||||
|
|
||||||
|
echo "Eliminando configuraciones específicas..."
|
||||||
|
if [ "$1" = "remove" ]; then
|
||||||
|
rm -f /etc/nginx/sites-enabled/ogboot.conf
|
||||||
|
rm -f /etc/nginx/sites-available/ogboot.conf
|
||||||
|
rm -f /etc/sudoers.d/opengnsys
|
||||||
|
rm -f /etc/php/8.3/fpm/pool.d/ogboot.conf
|
||||||
|
dpkg-divert --remove --rename --divert /etc/default/tftpd-hpa.orig /etc/default/tftpd-hpa || true
|
||||||
|
dpkg-divert --remove --rename --divert /opt/opengnsys/ogboot/.env.local.php.orig /opt/opengnsys/ogboot/.env.local.php || true
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue