ansibleguy.sw_semaphore

Ansible-Semaphore - nowoczesny interfejs użytkownika dla Ansible

Rola Ansible - Ansible-Semaphore

Rola do instalacji Ansible Semaphore na serwerze Linux.

Semaphore to lekka alternatywa dla Ansible AWX. (Interfejs WWW dla użycia Ansible)

Postaw mi kawę

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

Logi Molecule: Krótki, Pełny

Testowane:

  • Debian 11

Instalacja

# najnowsza wersja
ansible-galaxy role install git+https://github.com/ansibleguy/sw_semaphore

# z galaxy
ansible-galaxy install ansibleguy.sw_semaphore

# lub do własnej ścieżki ról
ansible-galaxy install ansibleguy.sw_semaphore --roles-path ./roles

# instalacja zależności
ansible-galaxy install -r requirements.yml

Użycie

Chcesz prosty interfejs GUI dla Ansible? Sprawdź mój Ansible WebUI

Konfiguracja

Minimalna konfiguracja:

semaphore:
  nginx:
    domena: 'semaphore.test.ansibleguy.net'

  # opcjonalne:
  # wersja: '2.8.90'
  # admin:
  #   użytkownik: 'admin'
  #   nazwa: 'AnsibleGuy'
  #   email: '[email protected]'

Zdefiniuj konfigurację według potrzeb:

semaphore:
  zarządzanie:
    serwer_www: true  # instalacja i konfiguracja lokalnego nginx z certyfikatem min-ca
    baza_danych: true  # instalacja i konfiguracja lokalnej mariadb
    kopia_zapasowa: true  # instalacja usługi do codziennych lokalnych kopii bazy danych (jeśli baza jest zarządzana)
    użytkownik: true  # utworzenie użytkownika usługi 'semaphore'
    ansible_cfg: true  # dostarczenie /home/semaphore/.ansible.cfg
    admin: true  # dodanie użytkownika administratora po instalacji

  wersja: '2.8.90'  # zobacz: https://github.com/ansible-semaphore/semaphore/releases

  wymagania_trwałe: false

  admin:
    użytkownik: 'admin'
    email: '[email protected]'
    hasło: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      ...

  konfiguracja:  # klucze i wartości konfiguracyjne jak w 'config.json': https://docs.ansible-semaphore.com/administration-guide/configuration
    tryb_równoległości: 'node'
    nadawca_email: '[email protected]'
    host_email: 'mail.template.ansibleguy.net'
    alert_email: true

    # opcjonalne
    ldap_włączone: true
    ldap_needs_tls: true
    ldap_binddn: 'service_semaphore'
    ldap_bindpassword: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      ...
    ldap_serwer: 'ldap.template.ansibleguy.net:636'
    ldap_searchfilter: '(&(mail=%s)(objectClass=person)(memberOf:=CN=semaphore,OU=Groups,DC=template,DC=ansibleguy,DC=net))'  # logowanie za pomocą maila; musi być w grupie 'semaphore'

    # opcjonalne => zobacz: 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
      ...

  wymagania:  # wymagania twojego środowiska wykonawczego
    pip: ['httpx']  # dowolne moduły python3
    kolekcje: ['community.general']  # dowolne kolekcje ansible (jeśli wymagania_trwałe=true)
    role: []  # dowolne role ansible (jeśli wymagania_trwałe=true)

  ansible_config:  # /home/semaphore/.ansible.cfg => jeśli manage.ansible_cfg=true; zobacz: https://docs.ansible.com/ansible/latest/reference_appendices/config.html
    domyślne:  # sekcja
      remote_port: 48322
      vault_id_match: 'semaphore'
    różnice:
      kontekst: 2

  kopia_zapasowa:
    dni_zatrzymania: 30

Możesz użyć 'ansible-vault' do szyfrowania swoich haseł:

ansible-vault encrypt_string

Wykonanie

Uruchom playbook:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml

Dostępne są również przydatne tagi:

  • serwer_www
  • baza_danych
  • konfiguracja
  • wymagania

Aby debugować błędy - możesz ustawić zmienną 'debug' w czasie wykonywania:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

Funkcjonalność

  • Instalacja pakietów

    • Ansible-Semaphore w określonej wersji
    • Python3 PIP
    • Środowisko wirtualne Python3
      • Ansible
      • podstawowe zależności filtra Jinja Ansible
    • Git
  • Konfiguracja

    • Usługa: 'semaphore.service'

    • Użytkownik usługi: 'semaphore'

    • Domyślna konfiguracja:

      • Katalogi:
        • Venv: '/var/local/lib/semaphore_venv'
        • Konfiguracja: '/etc/semaphore'
        • Kopie zapasowe: '/var/backups/semaphore'
        • Tmp/Uruchomienie: '/tmp/.semaphore'
    • Domyślne opcje włączone:

      • Nginx proxy => używając TEJ Roli
      • Baza danych MariaDB => używając TEJ Roli
      • Codzienna lokalna kopia bazy danych (jeśli baza jest zarządzana)
        • Usługa kopii: 'semaphore-backup.service'
      • Dostarczenie 'ansible.cfg' dla użytkownika usługi
      • Dodanie użytkownika administratora po instalacji
    • Domyślne opcje wyłączone:

      • Wymagania trwałe
        • Usługa aktualizacji: 'semaphore-requirements.service'

Informacje

  • Uwaga: ta rola obecnie wspiera tylko systemy oparte na debianie

  • Uwaga: Większość funkcjonalności roli można włączyć lub wyłączyć.

    Wszelkie dostępne opcje - zobacz domyślną konfigurację w głównym pliku domyślnym!

  • Ostrzeżenie: Nie każda ustawiona przez ciebie wartość/zmienna będzie sprawdzana pod kątem poprawności. Zła konfiguracja może zepsuć rolę!

  • Uwaga: Jeśli chcesz używać dockera => możesz sprawdzić oficjalny obraz dockera Ansible-Semaphore zamiast tego!

  • Informacja: Wymagania trwałe mogą być używane do przyspieszenia wykonania:

    Będzie instalować i aktualizować role ansible oraz kolekcje ansible za pomocą zewnętrznej usługi/timer.

    Domyślnie semaphore musi ponownie je zainstalować przy KAŻDYM WYKONANIU.

    Aby to działało - musisz również upewnić się, że pliki wymaganiowe nie istnieją w twoich repozytoriach:

    • $REPO/collections/requirements.yml
    • $REPO/roles/requirements.yml
O projekcie

Ansible role to provision Ansible-Semaphore on a linux server

Zainstaluj
ansible-galaxy install ansibleguy.sw_semaphore
Licencja
gpl-3.0
Pobrania
2.1k
Właściciel
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg