gpt4 book ai didi

ansible - 剧本中ansible主机的默认值?

转载 作者:行者123 更新时间:2023-12-04 02:11:00 24 4
gpt4 key购买 nike

我的示例剧本(适用于 ansible 2.1)是:

---
# This is sample playbook.

- name: add sample_role
hosts: '{{ target }}'
become: true
become_user: root
roles:
- sample role

当我运行它时,一切都很好:
ansible-playbook -i staging test_playbook.yml --extra-vars "target=192.168.15.29"

我怎样才能省略目标?

我试过这样的事情:
  hosts: '{{ target | default(all) }}'

或者
  hosts: '{{ target | default(hostvars) }}'

然后运行:
ansible-playbook -i staging test_playbook.yml

, 但遗憾的是:

ERROR! 'all' is undefined



或者:

ERROR! 'hostvars' is undefined

最佳答案

如果您只是添加 all如果没有引号,则将其视为变量,因此您可以像这样修复它:
hosts: '{{ target | default("all") }}'
到目前为止 hostvars这是 ansible 中的保留字,我认为不能用于此目的。它的值(value)将是这样的:

ok: [localhost] => {
"msg": {
"localhost": {
"ansible_check_mode": false,
"ansible_version": {
"full": "2.1.0.0",
"major": 2,
"minor": 1,
"revision": 0,
"string": "2.1.0.0"
},
"group_names": [],
"groups": {
"all": [
"localhost"
],
"ungrouped": []
},
"inventory_dir": null,
"inventory_file": null,
"inventory_hostname": "localhost",
"inventory_hostname_short": "localhost",
"omit": "__omit_place_holder__41c600ef78930ed8b38e6eed4e5b5ab51199729e",
"playbook_dir": "/Users/xyz/test-ansible"
}
}
}

希望能帮到你。

关于ansible - 剧本中ansible主机的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361017/

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