gpt4 book ai didi

ansible - vars_files中的动态文件名

转载 作者:行者123 更新时间:2023-12-04 12:29:36 26 4
gpt4 key购买 nike

以下是一个简单的剧本,尝试动态加载变量:

site.yml
---
- hosts: localhost
vars_files:
- "{{ name }}.yml"
tasks:
- debug: var={{ foo }}

变量foo在此文件中定义:
vars/myvars.yml
---
foo: "Hello"

然后像这样运行剧本:
ansible-playbook test.yml -e "name=myvars"

但是,这导致此错误:
ERROR! vars file {{ name }}.yml was not found
从我从几个代码片段中了解到的情况来看,这应该是可能的,并且可以从myvars.yml中导入变量。当尝试使用ansible 1.7.x时,它似乎确实可以工作(尽管我遇到了另一个问题,文件名vas可以正确解析)。

此行为是否已更改(也许已删除了对动态变量文件的支持?)。是否有其他方法可以实现此行为(我可以使用include_vars任务,但是不太合适)?

编辑:为了确保我的剧本结构正确,这是一个github存储库: https://github.com/jcechace/ansible_sinppets/tree/master/dynamic_vars

最佳答案

像这样更改您的site.yml:

- hosts: localhost
vars_files:
- "vars/{{ name }}.yml"
tasks:
- debug: var={{ foo }}

然后运行以下命令:
ansible-playbook site.yml -e "name=myvars" -c local

希望这会帮助你。

关于ansible - vars_files中的动态文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36620963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com