From 415008b6fe28eb3be551aeb0e64c1bcb76a3cbef Mon Sep 17 00:00:00 2001 From: Hamatoma Date: Mon, 5 May 2025 14:45:20 +0200 Subject: [PATCH] extended documentation --- docu/de/05_yaml.md | 2 + .../10_einrichten_ansible_auf_workstation.md | 13 +++ docu/de/50_neues_ansknife_projekt.md | 91 ++++++++++++++++++- 3 files changed, 105 insertions(+), 1 deletion(-) diff --git a/docu/de/05_yaml.md b/docu/de/05_yaml.md index 5b3ba25..decb347 100644 --- a/docu/de/05_yaml.md +++ b/docu/de/05_yaml.md @@ -29,6 +29,8 @@ users: Das kann auch in verkürzter Form formuliert werden: ``` users: { jonny: 101, eve: 102 } +# oder +users: jonny=101 eve=102 ``` '''Wichtig''': diff --git a/docu/de/10_einrichten_ansible_auf_workstation.md b/docu/de/10_einrichten_ansible_auf_workstation.md index b928e67..2ea8f11 100644 --- a/docu/de/10_einrichten_ansible_auf_workstation.md +++ b/docu/de/10_einrichten_ansible_auf_workstation.md @@ -48,3 +48,16 @@ ssh-add ``` Hier wird das Passwort des Zertifikats abgefragt. Dieses ist dann bis zum Ende der Session "gültig", d.h. es wird nicht mehr benötigt. +# Anlegen von ansadm +Damit die Konfiguration von ansible selber verändert werden kann, muss ein Benutzer ansadm angelegt werden, der dann als "Ziel" von ssh verwendet wird: +``` +adduser ansadm --uid=260 +``` +Bei der Passwortabfrage und Wiederholung verschiedene Phrasen angeben und auf Wiederholung verzichten, damit kein Login möglich ist. + +Für ansadm muss "sudo" erlaubt sein: In die Datei /etc/sudoers nach "root" am Zeilenanfang suchen, danach der Eintrag: +``` +ansadm: ALL=NOPASSWD: ALL +``` + + diff --git a/docu/de/50_neues_ansknife_projekt.md b/docu/de/50_neues_ansknife_projekt.md index 80d4571..fb1a900 100644 --- a/docu/de/50_neues_ansknife_projekt.md +++ b/docu/de/50_neues_ansknife_projekt.md @@ -108,10 +108,99 @@ Ausgabe: ``` #### vars/php.yaml +In dieser Datei werden die Konfigurationsdaten von php.ini eingetragen. + +Wenn etwas geändert wurde, alle PHP-Versionen anpassen (Liste evt. erweitern): +``` +for version in 8.2 8.3; do + ansible-playbook playbooks/i_40_php.yaml -e php_version=$version +done +``` + +#### vars/ssl-certificate.yaml +Hier werden die Daten des SSL-Zertifikats (benötigt für HTTPS) festgelegt: Name/Ort der Firma/Organisation ... + +#### vars/webapps.yaml +Diese Datei wird von dem Playbook webapp_create_webapp.yaml gepflegt: Hier nur die Beispielsdaten herauslöschen. ### Anpassungen in rocket/templates.local Es müssen alle Dateien angeschaut werden und projektspezifische Anpassungen vorgenommen werden. -# +#### templates.local/nginx/sites +Hier werden alle Dateien aus /etc/nginx/sites-available gepflegt: Jeder Webanwendung hat hier eine +Datei mit dem Namen der Domäne. + +#### templates.local/nginx/http.conf +Daten evt. anpassen. + +#### templates.local/postfix +Der Email-Server postfix kann in zwei Modi benutzt werden: +- send_only: Kein Zugang von extern, nur das Weiterleiten von internen Mails an externe Mailserver: Beispiel: Mails an root werden an myserver@example.com weitergeleitet +- email_forwarding: Der Mailserver kann Weiterleitungen vornehmen: Post von gmail an jonny@example.de wird auf abteilung3@example.com weitergeleitet. Die Konfiguration ist wesentlich aufwändiger. + +Bei der Erstellung des Projekts wurde der EMail-Server-Modus abgefragt: und nur eines der Verzeichnisse postfix/send_only +oder postfix/email_forwarding angelegt. + +- Die Konfiguration in main.cf muss angepasst werden. +- Die Konfiguration von master.cf muss normalerweise nicht geändert werden. +- Die Datei alias muss angepasst werden: die letzte Zeile enthält die externe Zieladresse für interne Mails, z.B. "root: root.rocket@example.com" + + + +#### templates.local/scripts/CreateSysInfo.conf +``` +# This file will be included into CreateSysInfo +DIR_INFO=/srv/www/sys.info/rocket +# a blank separated list of mount points formatted with BTRFS, e.g. "/media/fs.cache /media/fs.system" +BTRFS_FS='' +# a blank separated list of devices that should be controlled by smartmon, e.g. 'sda sdb' +SMART_MON_DEVS='nvme0n1 nvme1n1' +# set to yes if mdadm manages software raid devices +HAS_SOFT_RAID=no +MK_HOME_TAR=yes +USE_ZFS=no +# a blank separated list of "--exclude=" entries. That listed subdirs will not be saved in the TAR archive +EXCLUDE_HOME="--exclude=jails" +``` +- DIR_INFO überprüfen +- BTRFS_FS anpassen, wenn das Dateisystem BtrFS verwendet wird +- SMART_MON_DEVS anpassen: mit "lsblk" alle SSDs oder Festplatten ermitteln und in die Liste eintragen. +- Wenn mdadm installiert ist, hier "yes" eintragen +- USE_ZFS auf "yes" setzen, wenn das Dateisystem ZFS verwendet wird. +#### templates.local/scripts/rocketBackup +'''Hinweis''': rocket steht hier für den Projektnamen. + +Dieses Script führt täglich ein Backup durch: Sichern der Systeminfo und Export der Datenbanken. + +``` +#! /bin/bash +# Ansible controlled: do not change on remote server +VERBOSE=-v +QUIET= +test "$1" = -q && VERBOSE=-q && QUIET=-q +/usr/local/bin/CreateSysInfo $QUIET & +/usr/local/bin/SaveDatabases $QUIET & +``` +Hier sind normalerweise keine Änderungen notwendig. + + +### Anpassungen in playbooks/rocket_cron +'''Hinweis''': rocket steht hier für den Projektnamen. + +Hier werden der Start von regelmäßig auszuführenden Scripts festgelegt. + +Die Datei enthält schon Jobs, die das Backup der Systeminfo, des Homeverzeichneses etc. festlegen. +Weitere Jobs können hier eingetragen werden, per Konvention auch das auszuführende Script. + +## Administrator für MySQL +Damit Ansible Zugriff auf Datenbanken hat, wird ein Administrator eingerichtet. + +Dazu wird in vars/mysql.yaml ein für "dba_name" ein Name definiert: muss nicht geändert werden. +Das Passwort dazu liegt in /vars/mysql_vault.yaml. + +Das Einrichten des Admins geschieht mit: +``` +ansible-playbook playbooks/mysql_create_admin.yaml +``` -- 2.39.5