summaryrefslogtreecommitdiffstats
path: root/satellit_installer/includes/90-patch_slxadmin.inc
diff options
context:
space:
mode:
authorSimon Rettberg2020-12-17 15:08:14 +0100
committerSimon Rettberg2020-12-17 15:08:14 +0100
commitb5c3eb9e01b09367935f558a57633b68a65a1a21 (patch)
treeb6c322f3089192124779b9d7a29c8365eb39533f /satellit_installer/includes/90-patch_slxadmin.inc
parent[SSPS] slx-cert: Put hostname in SAN too, chromium requires this (diff)
downloadsetup-scripts-b5c3eb9e01b09367935f558a57633b68a65a1a21.tar.gz
setup-scripts-b5c3eb9e01b09367935f558a57633b68a65a1a21.tar.xz
setup-scripts-b5c3eb9e01b09367935f558a57633b68a65a1a21.zip
[SSPS] Refactor static_files: Submodules with tree
Add submodules (aka directories) to static_files, named according to what component they are for. Add function "install_files" to copy the contents of one of those modules to the root directory. This should make the resulting setup more obvious and require less manual copying of files everywhere.
Diffstat (limited to 'satellit_installer/includes/90-patch_slxadmin.inc')
-rw-r--r--satellit_installer/includes/90-patch_slxadmin.inc34
1 files changed, 6 insertions, 28 deletions
diff --git a/satellit_installer/includes/90-patch_slxadmin.inc b/satellit_installer/includes/90-patch_slxadmin.inc
index f254ae7..69afbcb 100644
--- a/satellit_installer/includes/90-patch_slxadmin.inc
+++ b/satellit_installer/includes/90-patch_slxadmin.inc
@@ -1,19 +1,5 @@
-copy_slxadmin_config () {
- # Install config
- cp -p "${BASEDIR}/static_files/slxadmin-config.php" "$WWWDIR/slx-admin/config.php" || perror "slxadmin config.php not found"
- chmod 640 "$WWWDIR/slx-admin/config.php"
- chown root:www-data "$WWWDIR/slx-admin/config.php"
-}
-
# Prepare files and symlinks in slx-admin www dir
patch_slxadmin_dir () {
- # Create redirect for /
- cat > "$WWWDIR/index.php" <<-HIERDOCK
- <?php
- Header('Location: /slx-admin/?do=Main');
- Header('HTTP/1.1 301 Moved permanently');
- HIERDOCK
-
# Create modules directory and link modules from modules-available according to slxadmin module list (SLXADMIN_MODULES):
mkdir -p "$WWWDIR/slx-admin/modules"
cd "$WWWDIR/slx-admin/modules" || perror "Cannot cd to slxadmin/modules"
@@ -22,32 +8,24 @@ patch_slxadmin_dir () {
ln -s "../modules-available/$MOD" "$NAME" || perror "Could not activate module '$MOD' (alias '$NAME')"
done
cd - 1>/dev/null
- # Add system cronjob to execute slx-admin cronjob
- cp "$BASEDIR/static_files/slxadmin-crontab" "/etc/cron.d/slx-admin" || perror "could not install slxadmin crontab"
- cp "$BASEDIR/static_files/slxadmin-cronscript" "/opt/openslx/slxadmin-cronscript" || perror "could not install slxadmin cronscript"
- # Add script and service to trigger init hook
- cp "$BASEDIR/static_files/slxadmin-bootscript" "/opt/openslx/slxadmin-bootscript" || perror "could not install slxadmin bootscript"
- cp "$BASEDIR/static_files/slxadmin-boot.service" "/etc/systemd/system/slxadmin-boot.service" || perror "could not install slxadmin boot service"
- ln -nfs "../slxadmin-boot.service" "/etc/systemd/system/multi-user.target.wants/slxadmin-boot.service" || perror "Could not enable slxadmin boot service"
}
# This needs to be called after mysql users have been created
install_slxadmin_db () {
# Prepare temporary config
- copy_slxadmin_config
- sed -i "s/%MYSQL_OPENSLX_PASS%/${MYSQL_OPENSLX_PASS}/" "$WWWDIR/slx-admin/config.php"
+ install_files "slxadmin"
+ sed -i "s/%MYSQL_OPENSLX_PASS%/${MYSQL_OPENSLX_PASS}/" "$WWWDIR/slx-admin/config.php" || perror "Could not write temporary DB password to config.php"
# Install slx-admin DB
cd "$WWWDIR/slx-admin" || perror "Cannot cd to $WWWDIR"
echo "# Installing slx-admin database"
sudo -n -u www-data ./install-all || perror "Could not install slx-admin database"
cd - 1>/dev/null
- # Copy init script for later use (restoring backup)
- mkdir -p "/opt/openslx/restore.d"
- cp -a "${BASEDIR}/static_files/slxadmin-init" "/opt/openslx/restore.d/" || perror "Could not copy slxadmin-init"
- # Fill database with data we need
+ # Fill database with data we need (run as root)
/opt/openslx/restore.d/slxadmin-init/init.sh || perror "Filling tables with required data failed"
# Reset with original template for firstboot script
- copy_slxadmin_config
+ install_files "slxadmin"
+ chmod 640 "$WWWDIR/slx-admin/config.php"
+ chown root:www-data "$WWWDIR/slx-admin/config.php"
# appending a variable with satellite server build date/time to slx-admin config:
echo "define('CONFIG_FOOTER', 'Build time: $(date "+%Y-%m-%d %H:%m:%S"), $VERSION');" >> "$WWWDIR/slx-admin/config.php"
}