ansibleguy.sw_semaphore
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)
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'
 
 
- Katalogi:
- Domyślne opcje włączone: 
- Domyślne opcje wyłączone: - Wymagania trwałe- Usługa aktualizacji: 'semaphore-requirements.service'
 
 
- Wymagania trwałe
 
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
 
ansible-galaxy install ansibleguy.sw_semaphore
