如何调整角色依赖项的ansible角色依赖项中的变量?
所以我有两个角色,一个取决于另一个,还有一个剧本。剧本使用第二个角色 第一个角色是如何调整角色依赖项的ansible角色依赖项中的变量?,ansible,Ansible,所以我有两个角色,一个取决于另一个,还有一个剧本。剧本使用第二个角色 第一个角色是base server setup,第二个角色是base server setup with docker 第二个角色在meta/main.yml中具有第一个作为依赖项的角色 第一个角色在其meta/main.yml中具有其他公共角色作为依赖项,并将一些选项传递给这些角色。 第二个角色需要调整传递给第一个角色的依赖项的一些选项 如果我像下面这样组织角色,则第二个角色的调整不会传递给第一个角色的依赖项。这意味着,无人
base server setup
,第二个角色是base server setup with docker
第二个角色在
meta/main.yml
中具有第一个作为依赖项的角色第一个角色在其
meta/main.yml
中具有其他公共角色作为依赖项,并将一些选项传递给这些角色。第二个角色需要调整传递给第一个角色的依赖项的一些选项 如果我像下面这样组织角色,则第二个角色的调整不会传递给第一个角色的依赖项。这意味着,
无人参与的起源模式
没有像我希望的那样包括Docker
playbook.yml
---
- hosts: vagrant
vars:
base_server_setup__user: test
base_server_setup__password: 123456
base_server_setup__mail: test@example.org
roles:
- role: base-server-setup-with-docker
become: true
使用docker/meta/main.yml设置基本服务器(第二个角色)
基本服务器设置/meta/main.yml(第一个角色)
但是,如果我使用include_role
而不是将其设置为依赖项来将第一个角色包含到第二个角色中,那么第二个角色对第一个角色的无人值守升级
依赖项的调整将向下传递,并包含Docker
为了保持一致性,我认为在第一个角色中使用include_role
进行无人值守升级也是一个好主意。但当我这样做时,第二个角色的调整不会再次传递给第一个角色的依赖项。
另外,如果有更多的角色也具有某种继承依赖关系,那么我不知道是否可以调整变量以获得依赖关系的依赖关系
那么,做我想做的事情的正确且一致的方法是什么呢?
还是我做的都是错的,而ansible的方法是完全不同的?(或者如果我更喜欢使用厨师或木偶)
---
dependencies:
- role: base-server-setup
vars:
# jnv.unattended-upgrades
unattended_origins_patterns:
- 'o=${distro_id},a=${distro_codename}'
- 'o=${distro_id},a=${distro_codename}-security'
- 'o=Docker,a=${distro_codename}'
---
dependencies:
- role: jnv.unattended-upgrades
vars:
unattended_origins_patterns:
- 'o=${distro_id},a=${distro_codename}'
- 'o=${distro_id},a=${distro_codename}-security'
unattended_mail: "{{ base_server_setup__mail }}"
unattended_automatic_reboot: true
unattended_syslog_enable: true