如果变量可能在库存文件或group_vars
目录中,我如何从库存中获取变量的值?Ansible:如何从库存或group_vars文件中获取变量的值?
例如,region=place-a
可能位于库存文件中或位于group_vars
某处的文件中。我想要一个命令能够使用ansible或某些东西检索该值来检索该值。如:
$ ansible -i /somewhere/production/web --get-value region
place-a
这将帮助我部署和知道哪个区域正在部署到。
。
更详细的解释,以澄清,我的库存结构是这样的:
/somewhere/production/web
/somewhere/production/group_vars/web
内容与清单文件中的变量,/somewhere/production/web
看起来是这样的:
[web:children]
web1 ansible_ssh_host=10.0.0.1
web2 ansible_ssh_host=10.0.0.2
[web:vars]
region=place-a
我能得到只需简单地解析文件即可从清单文件中获取价值。像这样:
$ awk -F "=" '/^region/ {print $2}' /somewhere/production/web
place-a
但该变量也可能在group_vars
文件中。例如:
$ cat /somewhere/production/group_vars/web
region: place-a
或者,它可能看起来像一个数组:
$ cat /somewhere/production/group_vars/web
region:
- place-a
我不想寻找和分析所有可能的文件。
Ansible是否有办法获取值?有点像--list-hosts
?所有的
$ ansible web -i /somewhere/production/web --list-hosts
web1
web2
>“不,没有CLI选项来获取变量的值。”太糟糕了,不过谢谢。这就是我想要确定的。 – user3358549