fede2cr.alfresco52
alfresco_ansible 
Ansible-Rezepte für Alfresco
Beschreibung
Rezepte für:
- Automatische Installation und Aktualisierung von Alfresco 5.2
- Automatische Installation von Alfresco 6.1 (in Arbeit)
Nutzung
Die Ansible-Rolle für Alfresco wurde so erstellt, dass die Aufgaben in Tags unterteilt sind. Dadurch kann man bei einer einzigen sequenziellen Ausführung auswählen, welche Teile ausgeführt werden sollen. So kann die gleiche Rolle sowohl Alfresco auf einem neuen Rechner installieren als auch auf die im Inventar angegebene Version aktualisieren.
Installation von Grund auf
Anforderungen für Ansible
Auf einem physischen oder virtualisierten Ubuntu 18.04-Rechner mit ausreichend Speicherplatz für die Installation von Alfresco und zur Sicherung der Daten muss zunächst der SSH-Dienst aktiviert werden. Eine SSH-Schlüssel muss auf den Benutzer kopiert werden, der für die Verbindung verwendet werden soll. Außerdem muss ein Sudo-Recht erstellt werden, indem mit dem entsprechenden Benutzer die Datei /etc/sudoers.d/ansible
erstellt wird:
%sudo ALL=(ALL) NOPASSWD: ALL
Defaults:greencore !requiretty
Dann installieren wir einige benötigte Pakete für die erste Verbindung, sowohl von der Distribution als auch von Python:
# Ubuntu-Pakete
sudo apt install -y python3-minimal python3-pip
# Für Mysql
sudo apt install -y python3-pymysql
# Für PostgreSQL
python3-psycopg2 libpq-dev postgresql libpostgresql-jdbc-java
# Python-Pakete
sudo pip3 install ansible psutil # "ansible" kann auf dem Remote-Rechner weggelassen werden, nur auf dem Controller notwendig
Konfiguration des Inventars
Es muss nur eine einzige Datei geändert werden, und zwar das Inventar, in dem wir die IP des Servers definieren, auf dem wir Alfresco installieren oder aktualisieren möchten, sowie die Parameter, die für die Konfiguration von Alfresco verwendet werden.
Beispiel für inventory/hosts.yml
:
---
alfresco:
hosts:
10.xx.xx.xx: # Ändern Sie die IP des Alfresco-Servers
ansible_user: greencore # Benutzer, der für SSH verwendet wird
alfresco_installer: alfresco-community-installer-201707-linux-x64.bin # Welche Version des Installers, auskommentieren
# alt
#alfresco_installer: alfresco-community-installer-201602-linux-x64.bin
alf_glob_prop_path: /opt/alfresco_community/tomcat/shared/classes/alfresco-global.properties # Pfad zur Datei alfresco-global.properties
alf_root: /opt/alfresco_community/ # Alfresco Wurzelverzeichnis
dir_root: /opt/alfresco_community/alf_data # alf_data Verzeichnis
solr4_root: /opt/alfresco_community/alf_data/solr4/index # Solr Verzeichnis
installer_delay: 190 # Zeit, die gewartet wird bis der Installer abgeschlossen ist
Bevor wir fortfahren, überprüfen wir das Inventar und die Ausführung von Ansible im Allgemeinen, indem wir Folgendes ausführen:
ansible -i inventory/hosts.yml -m ping alfresco
10.xx.xx.xx | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Um nur die Verfügbarkeit von Konfigurationsdateien, Downloads, benötigten Python-Modulen für Ansible und ähnlichem zu überprüfen, führen wir zuerst Ansible im Dry-Run-Modus aus. Das bedeutet, dass keine Änderungen vorgenommen werden.
ansible-playbook -C -i inventory/hosts.yml install_alfresco52-mysql_no_docker.yml --tags install,mysql_install,mysql
Wenn wir keine Probleme feststellen, können wir jetzt ohne die Option -C
die Installation von Alfresco durchführen:
ansible-playbook -i inventory/hosts.yml install_alfresco52-mysql_no_docker.yml --tags install,mysql_install,mysql
Aktualisierung von Alfresco
Vor Beginn wird empfohlen, die Dienste des Systems zu überprüfen, bevor ein Update durchgeführt wird. Befolgen Sie die Änderungsanforderungen, verwenden Sie Testmaschinen und erstellen Sie immer Sicherungen von Produktionsmaschinen.
Wenn Sie das komplette Labor zur Installation und Aktualisierung durchführen, müssen Sie möglicherweise die zu installierende Version von Alfresco gemäß der Inventardatei ändern.
In diesem Fall kümmern sich die zusätzlichen Tags mysql_preupgrade und mysql_postupgrade um das Backup der Daten, verschieben das Alfresco-Verzeichnis und importieren die Daten in MySQL sowie das dir.root für die Aktualisierung.
ansible-playbook -i inventory/hosts.yml install_alfresco52-mysql_no_docker.yml --tags install,mysql_preupgrade,mysql,mysql_postupgrade
Nun müssen wir nur noch den Dienst überprüfen, dass der Inhalt an seinem Platz ist, und die Protokolldateien auf mögliche Fehlermeldungen beobachten.
Fehlerbehebung
Wenn etwas schiefgeht, z.B. wenn die Wartezeit des Installers zu kurz ist, können Sie nach dieser Aufgabe fortfahren, indem Sie diesen Befehl als Grundlage verwenden:
ansible-playbook -i inventar playbook.yml --tags a,b,c --start-at-task="Vollständiger Name der Aufgabe"
ansible-galaxy install fede2cr.alfresco52