gpt4 book ai didi

yaml - 在 --extra-vars 中传递数组

转载 作者:行者123 更新时间:2023-12-03 06:14:28 40 4
gpt4 key购买 nike

如何将 YAML 数组传递给 Ansible playbook 中的 --extra-vars

我的意思是如果我有一本剧本:

- hosts: "{{ hostName }}"
remote_user: admin

那么我应该这样称呼我的剧本

ansible-playbook DeployWar.yml \
--extra-vars="hostName=tomcat-webApp"

但是我想在两台服务器上运行这个剧本,例如 tomcat-webApptomcat-all,并且我想从外部控制它,即:使用 --额外变量

我尝试做的是:

ansible-playbook DeployWar.yml \
--extra-vars="hostName=[tomcat-webApp, tomcat-all]"

ansible-playbook DeployWar.yml \
--extra-vars="hostName={tomcat-webApp, tomcat-all}"

ansible-playbook DeployWar.yml \
--extra-vars="[{hostName: tomcat-webApp}, {hostName: tomcat-all}]"

但在所有情况下,我的剧本都无法在我的调用中声明语法错误。

最佳答案

要回答您的第一个问题,“如何将 YAML 数组传递给 Ansible playbook 中的 --extra-vars。”:您可以传递 JSON formatted string to extra-vars .

这是一个示例:

- hosts: all
gather_facts: no
tasks:
- debug:
var: test_list

以及如何将变量 test_list 传递给命令 ansible-playbook:

ansible-playbook \
test.yml \
--connection local \
--inventory localhost, \
--extra-vars='{"test_list": [1,2,3]}'

虽然您可以对主机使用变量,但我建议您查看 Ansible 的主机管理机制,即 inventory--limit 选项结合使用。

关于yaml - 在 --extra-vars 中传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617273/

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