ansibleguy.sw_semaphore

Ansible-Semaphore - moderne Benutzeroberfläche für Ansible

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)

Kauf mir einen Kaffee

Molecule Test Status YamlLint Test Status PyLint Test Status Ansible-Lint Test Status Ansible Galaxy

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'
    • 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'

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
Über das Projekt

Ansible role to provision Ansible-Semaphore on a linux server

Installieren
ansible-galaxy install ansibleguy.sw_semaphore
GitHub Repository
Lizenz
gpl-3.0
Downloads
2.1k
Besitzer
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg