Ansible Playbook
Ten pipeline służy do wdrożeń przez Ansible, uruchamiając playbook playbooks/install.yml. Jest zdefiniowany jako pipeline CD i działa w stage deploy.
Wymagania
Section titled “Wymagania”- Repozytorium zawiera playbook:
playbooks/install.yml. - Istnieje inventory:
inventory/hosts.yml(domyślna ścieżka). - Jeżeli używasz ról z Galaxy, dostępny jest
requirements.yml. - Obraz kontenera zawiera Ansible:
registry.rachuna-net.pl/pl.rachuna-net/containers/ansible:1.0.0
- Dostępne są helpery:
.helper_gitlab-ci.sh(konfiguracja środowiska i dostępu do repo).helper_readme.sh(wskazanie dokumentacji po wykonaniu joba)
Struktura pipeline
Section titled “Struktura pipeline”Include: ansible_init.sh.yml
Section titled “Include: ansible_init.sh.yml”Pipeline dołącza lokalny plik:
include:
- local: "pipelines/ansible-playbook/ansible_init.sh.yml"W nim znajduje się snippet .ansible_init.sh, który:
- ustawia zmienne środowiskowe Ansible,
- wyłącza sprawdzanie kluczy hostów,
- wymusza kolorowy output,
- instaluje role z
requirements.ymldoplaybooks/roles.
Domyślne wartości ustawiane przez .ansible_init.sh:
ANSIBLE_INVENTORY=inventory/hosts.ymlANSIBLE_HOST_KEY_CHECKING=falseANSIBLE_FORCE_COLOR=trueANSIBLE_USER=techuser
Zmienne
Section titled “Zmienne”| Zmienna | Domyślna wartość | Opis |
|---|---|---|
IMAGE_ANSIBLE | registry.rachuna-net.pl/pl.rachuna-net/containers/ansible:1.0.0 | Obraz kontenera z Ansible. |
ANSIBLE_INVENTORY | inventory/hosts.yml | Ścieżka do inventory (ustawiana w .ansible_init.sh). |
ANSIBLE_VARS | (brak) | Dodatkowe --extra-vars przekazywane do playbooka. |
ENVIRON | (brak) | Limit hostów/środowiska przekazywany jako --limit. |
DOCS_MD_FILE_PATH | pipelines/ansible-playbook/README.md | Ścieżka do dokumentacji używana przez .helper_readme.sh. |
Joby: opis i zachowanie
Section titled “Joby: opis i zachowanie”1) 🧾 ansible-playbook (stage: deploy)
Section titled “1) 🧾 ansible-playbook (stage: deploy)”Cel: wykonanie playbooka instalacyjnego.
Komenda:
ansible-playbook -i $ANSIBLE_INVENTORY playbooks/install.yml --extra-vars "$ANSIBLE_VARS" --limit $ENVIRONKiedy się uruchamia:
- automatycznie dla pipeline uruchomionego przez
schedule, - manualnie w pozostałych przypadkach.
Typowe problemy i diagnoza
Section titled “Typowe problemy i diagnoza”Brak ról lub błędy ansible-galaxy
Section titled “Brak ról lub błędy ansible-galaxy”- Upewnij się, że
requirements.ymlistnieje w repozytorium. - Sprawdź, czy role są instalowane do
playbooks/roles.
Brak hostów / puste inventory
Section titled “Brak hostów / puste inventory”- Zweryfikuj, czy
inventory/hosts.ymlistnieje i zawiera hosty. - Sprawdź, czy
ENVIRONwskazuje poprawną grupę w inventory.
Brak informacji o dokumentacji po jobie
Section titled “Brak informacji o dokumentacji po jobie”- Sprawdź, czy zmienna
DOCS_MD_FILE_PATHjest ustawiona. - W tym pipeline jest ustawiona na
pipelines/ansible-playbook/README.md.
Referencja: definicje z pipeline
Section titled “Referencja: definicje z pipeline”.ansible_init.sh: ustawienie środowiska + instalacja ról🧾 ansible-playbook: wykonanieplaybooks/install.yml