在Ansible中为组添加公共变量的位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Ansible中为组添加公共变量的位置相关的知识,希望对你有一定的参考价值。
我们有一些脚本可以帮助我们在AWS中设置最多6个虚拟机的VPC。现在我想登录这些机器。出于安全原因,我们只能通过SSH访问其中一个,然后通过隧道/代理访问其他计算机。所以在我们的库存中,我们有SSH主机的IP地址(我们称之为Redcarpet)和其他一些主机,如Elasticsearch,Mongodb和Worker:
#inventory/hosts
[redcarpet]
57.44.113.25
[services]
10.0.1.2
[worker]
10.0.5.77
10.0.1.200
[elasticsearch]
10.0.5.30
[mongodb]
10.0.1.5
现在我需要告诉每个组,除了redcarpet使用某些SSH设置。如果这些适用于所有团体,我会把它们放在inventory/group_vars/all.yml
,但现在我必须把它们放入:
inventory/group_vars/services.yml
inventory/group_vars/worker.yml
inventory/group_vars/elasticsearch.yml
inventory/group_vars/mongodb.yml
这会导致重复。因此,我想使用include
或include_vars
来包含来自公共文件的一个或两个变量(例如inventory/common.yml
)。但是,当我尝试在上面的任何group_var文件中执行此操作时,它不会获取变量。使用多个组共有的变量的最佳实践是什么?
如果您想使用group_vars方法,我建议您添加另一个组,并将依赖组作为子组添加到该组。
#inventory/hosts
[redcarpet]
57.44.113.25
[services]
10.0.1.2
[worker]
10.0.5.77
10.0.1.200
[elasticsearch]
10.0.5.30
[mongodb]
10.0.1.5
[redcarpet_deps:children]
mongodb
elasticsearch
worker
services
现在你可以拥有一个名为redcarpet_deps.yml
的group_vars文件,他们应该从那里获取变量。
以上是关于在Ansible中为组添加公共变量的位置的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring sec 中为组使用属性:hasAnyRole 的授权标签
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段