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