Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调整角色依赖项的ansible角色依赖项中的变量?_Ansible - Fatal编程技术网

如何调整角色依赖项的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