【问题标题】:Ansible fact can't reference as my host/group variableAnsible 事实不能作为我的主机/组变量引用
【发布时间】:2017-02-03 05:31:24
【问题描述】:

如果我要在“host_vars/host_name”或“group_vars/group_name”文件夹下声明以下变量 - 我将得到未定义的变量。

同时,如果我要在我的任何 ":var" 组变量下的 Inventory 文件中声明相同,我可以调用我的变量就好了。

我想知道这是否是预期的?有没有其他人看到类似的东西?事实查找当然是启用的。

这是我的例子:

network_mask = "{{ ansible_eth1.ipv4.network }}/{{ ansible_eth1.ipv4.netmask }}"

【问题讨论】:

    标签: ansible ansible-facts


    【解决方案1】:

    host_varsgroup_vars 中的文件是 supposed to be YAML or JSON

    这些变量文件是 YAML 格式。有效的文件扩展名包括“.yml”、“.yaml”、“.json”或没有文件扩展名

    所以改成:

    network_mask: "{{ ansible_eth1.ipv4.network }}/{{ ansible_eth1.ipv4.netmask }}"
    

    【讨论】:

    • 感谢您的帮助!我应该更具体。早些时候,相同的 YAML “key:value” 语法对我不起作用。事实证明,我在这里面临一个非常不同的问题。
    • 问题是我将我的剧本保存在一个单独的文件夹中 - 这会阻止在 host_vars/group_vars 文件夹中查找变量。似乎我唯一的选择是将这些文件夹复制到相应的剧本文件夹中 - 不是很优雅,但我不知道现阶段有更好的解决方案。如果有任何兴趣,可以在这里找到更多信息:(github.com/ansible/ansible/issues/16878)
    猜你喜欢
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多