Ansible - inlcude_role a defaults_from

Ansible - inlcude_role a defaults_from
« kdy: 02. 03. 2021, 11:13:39 »
Ahoj,

zkousim zmenit konfiguraci inventare a rozdelit roli nginx na dve role - nginx a nginx-vhost, abych je mohl spoustet nezavisle. Prvni role konfiguruje nginx, druha se stara pouze o konfiguraci vhostu. Potreboval bych ale, aby nginx-vhost obsahoval defaults/main.yml a handlers/main.yml z role nginx. Jednoducha cesta je udelat symlink, ale to se mi nechce v gitu pouzivat. Narazil jsem na toto v dokumentaci:

Kód: [Vybrat]
- include_role:
   name: "nginx"
   defaults_from: "main"
   handlers_from: "main"

Kdyz toto pouziju v nginx-vhost/tasks/main.yml, tak mi to spusti celou roli nginx. Existuje nejaky zpusob, jak dosahnout te funkcionality? Puvodne jsem chtel dosahnout neceho takoveho:

Kód: [Vybrat]
CLI: ansible-playbook ... ... --tags="nginx_vhost"

Playbook:
roles:
 - { role: "nginx", tags: "ngix_vhost" }

ale toto logicky nefunguje. A doporuceni prave bylo rozdelit tu role na dve...


Re:Ansible - inlcude_role a defaults_from
« Odpověď #1 kdy: 02. 03. 2021, 11:44:36 »
Tak nahodou jsem nasel jednu moznou variantu:

Kód: [Vybrat]
nginx/public/
nginx/public/defaults/main.yml
nginx/public/handlers/main.yml
nginx/install/
...
nginx/vhost/
nginx/vhost/tasks/main.yml

A vzhledem k tomu, ze v nginx/public nejsou zadne tasky, tak se naimportuji defaults a handlers pomoci import_role.