gpt4 book ai didi

ansible - 在角色任务中包含变量

转载 作者:行者123 更新时间:2023-12-04 14:12:51 25 4
gpt4 key购买 nike

在一个角色中,我试图从另一个角色加载一些变量。 (如果该角色包含在当前戏剧中,则变量将是可访问的,但事实并非如此。)

所以我尝试了这个:

- include_vars: ../../another_role/defaults/main.yml

但它不起作用,没有错误,但变量仍然未定义。
所以我试着聪明点,把文件符号链接(symbolic link)到 vars/another_role_defaults.yml在我想使用变量的角色中,然后像这样包含它:
- include_vars: another_role_defaults.yml

结果相同,没有错误(如果找不到文件,为什么不抛出错误??)但变量仍然未定义。我也试过这个,很好,但仍然没有雪茄。
- include_vars: ../vars/another_role_defaults.yml

我究竟做错了什么?

最佳答案

从 ansible-core 2.11 开始,您可以这样做:

- include_vars: ../../nrpe/vars/standard_nrpe_checks.yml
name: standard_nrpe_checks
- debug:
msg: "{{ standard_nrpe_checks }}"
要获得相同的结果,您还可以使用 set_fact使用查找插件。
- debug:
msg: "{{ lookup('file', '../../nrpe/vars/standard_nrpe_checks.yml') }}"
我想提一下,如果您正在使用集合并分发您可以使用的剧本
playbooks
|_vars/
|_standard_nrpe_checks.yml
在这种情况下,我现在可以从集合中共享 var,因为它位于查找路径中,所以我不需要相对指定它。 IE。而不是将列表作为 nrpe 角色默认读取两个角色并将其维护在一个地方。
- include_vars: standard_nrpe_checks.yml
name: standard_nrpe_checks
- debug:
msg: "{{ standard_nrpe_checks }}"
TASK [namespace.my_collection.icinga : debug] *******************************************
ok: [hostname] =>
msg: |-
standard_nrpe_checks:
check_users:
script: check_users

关于ansible - 在角色任务中包含变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557042/

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