gpt4 book ai didi

具有不同变量的多台服务器上的 ansible 剧本

转载 作者:行者123 更新时间:2023-12-02 01:13:51 32 4
gpt4 key购买 nike

我正在使用主机文件在主机列表上运行一个 ansible 剧本:

[consul]
${HOST1} ansible_ssh_host=${HOST1} ansible_ssh_user=devops ansible_ssh_pass=blabla
${HOST2} ansible_ssh_host=${HOST2} ansible_ssh_user=devops ansible_ssh_pass=blabla
.......so on...

问题是我需要为每个主机传递不同的变量。我知道标志 -e 允许我使用 ansible-playbook 命令发送变量,但它不适用于每个主机。

我用这个运行剧本:

ansible-playbook -vvvv site.yml

如何为每个主机传递不同的变量?

谢谢!

注意:我使用的是ansible 1.7.1

最佳答案

您应该可以通过两种方式做到这一点:

1) 在主机文件中包含变量:

[consul]
${HOST1} ansible_ssh_host=${HOST1} .... myvar=x
${HOST2} ansible_ssh_host=${HOST2} .... myvar=y

2) 或者使用include_vars任务根据主机名加载文件

include_vars: "{{ ansible_ssh_host }}.yml"

如果您要为主机加载很多变量,则第二种方法很好。

对于更复杂的情况,查找模块可能会有所帮助: http://docs.ansible.com/ansible/playbooks_lookups.html

关于具有不同变量的多台服务器上的 ansible 剧本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43637980/

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