gpt4 book ai didi

python - Ansible Python API - 如何获取在 vars_files、host_vars、group_vars 中定义的变量

转载 作者:行者123 更新时间:2023-12-05 07:07:18 25 4
gpt4 key购买 nike

我正在尝试使用 Python API 从所有可能的位置拉取 variables

在我的剧本 test_play.yml 我有..

---
hosts: abc.com
gather_facts: no

roles:
- my_roles

vars_files:
- var/var.yml

tasks:
.....
.....

文件结构-

test_play.yml
roles
- my_roles
-- defaults
vars
- var.yml
hosts
- DEV
-- hosts
-- group_vars
--- all.yml

我的代码——

host_file = path_to_host_file
play_path = path_to_playbook

inventory = InventoryManager(loader=DataLoader(), source=[host_file])
variable_manager = VariableManager(loader=DataLoader(), inventory=inventory)

pb = Playbook.load(play_path, variable_manager, DataLoader())
play = pb.get_plays()

# here I get one play, which is fine
all_vars = variable_manager.get_vars(play=plays[0])

all_vars 中,我只获取在 inventory file, rules 中定义的变量。但是 var.yml,group_vars/all.yml 中定义的变量丢失了。如何获得它们?

最佳答案

你只需要:

variable_manager.get_vars(host=inventory.get_host("hostname"))

令人遗憾的是 Ansible 没有为其 API 提供更好的文档。

关于python - Ansible Python API - 如何获取在 vars_files、host_vars、group_vars 中定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62208902/

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