【问题标题】:Unable to access variables from a files with "includes" in ansible无法从具有“包含”的文件中访问变量
【发布时间】:2020-08-10 13:08:50
【问题描述】:

我有一本需要从 yaml 文件中读取变量的剧本。我在我的游戏中使用了 include_role,所以似乎无法利用 vars_files。我也试过 vars_from 但这似乎也不起作用。变量位于 ~promupdate/vars/hostgroup/templates/test.yaml 文件夹中

我试过下面的剧本

- hosts: "{{ test }}"
  serial: "100%"
  tasks:
    - include_role:
        name: promethium_update
      vars:
        name: "{{ item }}"
        wrapped: "{{ lookup('file', /promupdate/vars/hostgroup/templates/item.yml) | from_yaml }}"
      with_items: {{ templates }}

这是我得到的错误。

fatal: [prom-test]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'PromUpdater' is undefined"}

有没有人想出办法来实现这一点?

我尝试了 ansible 2.5 和 ansible 2.7

【问题讨论】:

    标签: ansible ansible-2.x


    【解决方案1】:

    你可以试试include_vars

    - hosts: "{{ test }}"
      serial: "100%"
      tasks:
        - name: include vars first
          include_vars: path_to_var_file
            
        - include_role:
          name: promethium_update
    

    【讨论】:

    • 如何将这两个作为同一个循环的一部分运行?这些需要在同一个“项目”上运行,并根据正在运行的项目导入不同的文件。如果文件是静态的,我认为这会起作用。
    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2011-02-20
    • 2015-10-31
    • 1970-01-01
    • 2011-12-03
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多