gpt4 book ai didi

Ansible:使用变量定义 playbook 主机

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

我安装了以下版本:ansible 2.3.0 (devel 2131eaba0c)

我想将我的主机变量指定为外部变量,然后在 playbook 中使用它,类似于:

hosts: "{{integration}}"

在我的 group_vars/all 文件中,我定义了以下变量:

integration: "int60"

主机文件如下所示:

[int60] 
hostA

[int61]
hostB

不幸的是,这不起作用。我还尝试通过以下方式定义主机变量:

[integration]
127.0.0.1 ansible_host="{{ integration_env }}"

并在我的group_vars/all文件中指定integration_env。在这种情况下,它似乎在本地运行任务,而不是在所需的环境中。

可以做这样的事情吗?我愿意接受全新的方式来做到这一点。主要目标只是在 var 文件中定义主机变量。

最佳答案

如果您将integration变量作为额外变量传递,这将起作用:

ansible-playbook -e integration=int60 myplaybook.yml

播放“标题”中使用的任何变量都应在 Ansible 解析 playbook 之前定义。

在您的示例中,您将集成定义为主机事实。事实仅在任务级别定义,而不是在游戏级别定义。

更新:并且您可以使用其他方式传递变量,而不仅仅是额外的变量。例如:

- hosts: "{{ lookup('env','DYN_HOSTS') }}"

也可以。

关于Ansible:使用变量定义 playbook 主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40992585/

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