Skip to content
GitLabGitHub

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.


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

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.yml do playbooks/roles.

Domyślne wartości ustawiane przez .ansible_init.sh:

  • ANSIBLE_INVENTORY=inventory/hosts.yml
  • ANSIBLE_HOST_KEY_CHECKING=false
  • ANSIBLE_FORCE_COLOR=true
  • ANSIBLE_USER=techuser

ZmiennaDomyślna wartośćOpis
IMAGE_ANSIBLEregistry.rachuna-net.pl/pl.rachuna-net/containers/ansible:1.0.0Obraz kontenera z Ansible.
ANSIBLE_INVENTORYinventory/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_PATHpipelines/ansible-playbook/README.mdŚcieżka do dokumentacji używana przez .helper_readme.sh.

Cel: wykonanie playbooka instalacyjnego.

Komenda:

ansible-playbook -i $ANSIBLE_INVENTORY playbooks/install.yml --extra-vars "$ANSIBLE_VARS" --limit $ENVIRON

Kiedy się uruchamia:

  • automatycznie dla pipeline uruchomionego przez schedule,
  • manualnie w pozostałych przypadkach.

  • Upewnij się, że requirements.yml istnieje w repozytorium.
  • Sprawdź, czy role są instalowane do playbooks/roles.
  • Zweryfikuj, czy inventory/hosts.yml istnieje i zawiera hosty.
  • Sprawdź, czy ENVIRON wskazuje poprawną grupę w inventory.
  • Sprawdź, czy zmienna DOCS_MD_FILE_PATH jest ustawiona.
  • W tym pipeline jest ustawiona na pipelines/ansible-playbook/README.md.

  • .ansible_init.sh: ustawienie środowiska + instalacja ról
  • 🧾 ansible-playbook: wykonanie playbooks/install.yml