deployment - Ansible 中的单个变量如何根据主机实例具有不同的值?
问题描述
我 "appInstanceName": "{{appname_from_template}}"
在我的 ansible 模板中,我appname_from_template
在我的group_vars/all
文件中维护。
在部署时,我希望{{appname_from_template}}
将其替换为"endpoint_1"
主机 1 和主机"endpoint_2"
2。
但我不确定单个变量如何根据它部署的实例具有不同的值。
请问有什么办法可以吗?谢谢
解决方案
鉴于group_vars/all
shell> cat group_vars/all
appname_from_template: endpoint_maintained_in_groupvars_all
您可以在优先级高于 7时覆盖变量appname_from_template 。请参阅了解变量优先级。“变量可以根据实例有不同的值”如果你把它放到
- 清单文件中的host_vars(优先级 8)或
- 清单目录中的host_vars(优先级 9)或
- 剧本目录中的host_vars(优先级 10)。
例如
shell> cat host_vars/host1
appname_from_template: endpoint_1
shell> cat host_vars/host2
appname_from_template: endpoint_2
然后是剧本
- hosts: host1,host2,host3
tasks:
- debug:
var: appname_from_template
对 host1 和 host2使用host_vars ,对 host3使用group_vars
ok: [host1] =>
appname_from_template: endpoint_1
ok: [host3] =>
appname_from_template: endpoint_maintained_in_groupvars_all
ok: [host2] =>
appname_from_template: endpoint_2
推荐阅读
- paypal - PayPal Checkout.js 函数数据与操作变量?
- java - 将代理数据设置为 Spring SOAP Web 服务模板
- activemq - ActiveMQ 可能还没有准备好。服务正在部分运行
- java - 新值 EditText 未显示,没有任何错误
- python - discord.py 使用 json 的调平系统。如何将这些东西添加到我的代码中?
- java - HttpMethodBase 与 HttpRequestBase
- c# - Deserializing xml returns zero elements
- css - Wordpress Woocommerce 主题的标题不像原始演示那样透明
- mongodb - 通过查询将数组对象中的键值获取到mongodb和mongoose中的数组
- python - 根据元组的第一个条目从列表中删除重复的元组