Role w Ansible zapewniają ustandaryzowany sposób pakowania zadań, handlerów, zmiennych i szablonów w celu ich łatwego ponownego użycia.
🔗 Related: Podstawowa ściąga z Ansible · Przewodnik szybkiego startu Ansible · Przykłady playbooków Ansible
Standardowy układ katalogów roli
Wygeneruj strukturę roli za pomocą ansible-galaxy init role_name:
roles/
common/
tasks/
main.yml # Główny punkt wejścia dla zadań wykonywanych przez rolę
handlers/
main.yml # Handlery wywoływane przez notify
templates/ # Szablony Jinja2 (.j2) używane przez moduł template
files/ # Pliki statyczne i skrypty przesyłane modułem copy
vars/
main.yml # Zmienne o wysokim priorytecie specyficzne dla roli
defaults/
main.yml # Domyślne zmienne o niskim priorytecie (nadpisywalne)
meta/
main.yml # Zależności roli i metadane autora
Używanie ról w Playbookach
---
- name: Apply common and webserver roles
hosts: webservers
become: true
roles:
- role: common
- role: nginx
vars:
nginx_port: 8080
Priorytet zmiennych w rolach
Zmienne w defaults/main.yml mają najniższy priorytet w Ansible, stanowiąc bezpieczne wartości domyślne łatwe do nadpisania.
Zmienne w vars/main.yml mają wysoki priorytet i służą do wewnętrznej logiki roli.