我有一个group_vars文件夹,其中包含:
我有一个host_vars文件夹,其中包含:
每个变量中都有大量变量。 当前项目要求能够具有适用于所有服务器的全局变量,适用于组的特定于组的变量以及适用于单个服务器的特定变量,如果主机变量不同于全局变量,则将其替换,但正常的ansible变量概率会使我理解为- 所以在这一点上没有什么独特的。
该项目的工作方式是: 我在一个文件夹中有多个文件,这些文件中包含令牌,每个令牌都需要用每个vars文件中的变量替换。 我已经指定了replace模块来解析文件夹/文件并替换标记,为此,我正在使用以下内容,并将其用作名为“ token-place”的角色,tasks / main.yml包含
- name: Replace config
replace:
path: "{{item[0]}}"
regexp: "{{item[1]}}"
replace: "{{item[2]}}"
with_nested:
- "{{file_paths}}"
- "{{tokens | dictsort }}"
defaults / main.yml看起来像这样
file_paths: [] # list of file paths e.g. ['file1, /tmp/file2' ]
tokens: {} # dictionary of tokens e.g. {a: 1, b: 2, c: 3}
文件路径必须是动态的,但这是我可以做的-但任何节省时间的建议都将受到欢迎。
我的问题是我不知道如何从所有3个vars文件中加载所有变量并将其加载到
- "{{tokens | dictsort }}"
因此,当它运行时,它将解压缩所有字典,并替换我放置在其中的所有文件中特定标记的所有实例
- "{{file_paths}}"
任何建议将不胜感激。如果我使用include_vars:我不知道如何解压缩主变量,我的主要问题是我不知道要找到答案的正确问题。 谢谢