ansibleguy.sw_semaphore
Ansible-Rolle - Ansible-Semaphore
Rolle zur Bereitstellung von Ansible Semaphore auf einem Linux-Server.
Semaphore ist eine leichte Alternative zu Ansible AWX. (WebUI für die Nutzung von Ansible)
Molecule-Protokolle: Kurz, Vollständig
Getestet:
- Debian 11
Installation
# Neueste Version
ansible-galaxy role install git+https://github.com/ansibleguy/sw_semaphore
# Aus Galaxy
ansible-galaxy install ansibleguy.sw_semaphore
# oder auf benutzerdefinierter Rolle-Pfad
ansible-galaxy install ansibleguy.sw_semaphore --roles-path ./roles
# Abhängigkeiten installieren
ansible-galaxy install -r requirements.yml
Nutzung
Möchten Sie eine einfache Ansible-GUI? Schauen Sie sich meine Ansible WebUI an.
Konfiguration
Minimale Konfiguration:
semaphore:
nginx:
domain: 'semaphore.test.ansibleguy.net'
# optional:
# version: '2.8.90'
# admin:
# user: 'admin'
# name: 'AnsibleGuy'
# email: '[email protected]'
Definieren Sie die Konfiguration nach Bedarf:
semaphore:
manage:
webserver: true # lokalen nginx mit min-ca-Zertifikat installieren und konfigurieren
database: true # lokale mariadb installieren und konfigurieren
backup: true # Dienst für tägliche lokale Datenbanksicherung installieren (wenn die Datenbank verwaltet wird)
user: true # Dienstbenutzer 'semaphore' erstellen
ansible_cfg: true # /home/semaphore/.ansible.cfg bereitstellen
admin: true # Admin-Benutzer nach der Installation hinzufügen
version: '2.8.90' # siehe: https://github.com/ansible-semaphore/semaphore/releases
persistent_requirements: false
admin:
user: 'admin'
email: '[email protected]'
pwd: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
config: # Schlüssel-Wert-Paare wie in 'config.json' festgelegt: https://docs.ansible-semaphore.com/administration-guide/configuration
concurrency_mode: 'node'
email_sender: '[email protected]'
email_host: 'mail.template.ansibleguy.net'
email_alert: true
# optional
ldap_enable: true
ldap_needtls: true
ldap_binddn: 'service_semaphore'
ldap_bindpassword: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
ldap_server: 'ldap.template.ansibleguy.net:636'
ldap_searchfilter: '(&(mail=%s)(objectClass=person)(memberOf:=CN=semaphore,OU=Groups,DC=template,DC=ansibleguy,DC=net))' # Anmeldung mit E-Mail; muss in der Gruppe 'semaphore' sein
# optional => siehe: https://docs.ansible-semaphore.com/administration-guide/security#database-encryption
cookie_hash: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
cookie_encryption: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
access_key_encryption: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
requirements: # Anforderungen, die Ihre Ausführungsumgebung benötigt
pip: ['httpx'] # alle Python3-Module
collections: ['community.general'] # alle Ansible-Sammlungen (wenn persistent_requirements=true)
roles: [] # alle Ansible-Rollen (wenn persistent_requirements=true)
ansible_config: # /home/semaphore/.ansible.cfg => wenn manage.ansible_cfg=true; siehe: https://docs.ansible.com/ansible/latest/reference_appendices/config.html
defaults: # Abschnitt
remote_port: 48322
vault_id_match: 'semaphore'
diff:
context: 2
backup:
retention_days: 30
Vielleicht möchten Sie 'ansible-vault' verwenden, um Ihre Passwörter zu verschlüsseln:
ansible-vault encrypt_string
Ausführung
Führen Sie das Playbook aus:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Es gibt auch einige nützliche Tags:
- webserver
- database
- config
- requirements
Um Fehler zu debuggen - können Sie die Variable 'debug' zur Laufzeit setzen:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Funktionalität
Paketinstallation
- Ansible-Semaphore in der angegebenen Version
- Python3 PIP
- Python3 Virtual-Environment
- Ansible
- gängige Jinja-Filterabhängigkeiten für Ansible
- Git
Konfiguration
Dienst: 'semaphore.service'
Dienstbenutzer: 'semaphore'
Standardkonfiguration:
- Verzeichnisse:
- Venv: '/var/local/lib/semaphore_venv'
- Konfiguration: '/etc/semaphore'
- Backup: '/var/backups/semaphore'
- Tmp/Run: '/tmp/.semaphore'
- Verzeichnisse:
Standard-Opt-ins:
- Nginx-Proxy => mit DIESER Rolle
- MariaDB-Datenbank => mit DIESER Rolle
- Tägliche lokale Datenbanksicherung (wenn die Datenbank verwaltet wird)
- Sicherungsdienst: 'semaphore-backup.service'
- Bereitstellung 'ansible.cfg' für Dienstbenutzer
- Hinzufügen des Admin-Benutzers nach der Installation
Standard-Opt-outs:
- Persistente Anforderungen
- Aktualisierungsdienst: 'semaphore-requirements.service'
- Persistente Anforderungen
Informationen
Hinweis: Diese Rolle unterstützt derzeit nur Debian-basierte Systeme.
Hinweis: Die meisten Funktionen der Rolle können optional ausgewählt bzw. abgewählt werden.
Alle verfügbaren Optionen - siehe die Standardkonfiguration im Hauptstandarddatei!
Warnung: Nicht jede Einstellung/Variable, die Sie bereitstellen, wird auf Gültigkeit überprüft. Eine fehlerhafte Konfiguration könnte die Rolle beschädigen!
Hinweis: Wenn Sie Docker verwenden möchten => sollten Sie sich stattdessen das offizielle Docker-Image von Ansible-Semaphore ansehen!
Info: Persistente Anforderungen können verwendet werden, um die Ausführungen zu beschleunigen:
Damit werden Ansible-Rollen und Ansible-Sammlungen mit einem externen Dienst/Timer installiert und aktualisiert.
Standardmäßig muss Semaphore sie BEI JEDER AUSFÜHRUNG neu installieren.
Damit dies funktioniert, müssen Sie auch sicherstellen, dass die Anforderungsdateien nicht in Ihren Repositories vorhanden sind:
- $REPO/collections/requirements.yml
- $REPO/roles/requirements.yml
Ansible role to provision Ansible-Semaphore on a linux server
ansible-galaxy install ansibleguy.sw_semaphore