如何使用 Ansible 使用动态清单设置变量
How to set a variable using dynamic inventory using Ansible
我正在寻找使用从动态库存接收的库存信息在 ansible 剧本中设置变量的方法。
例如,如果我们有一个示例剧本,例如
---
- hosts: localhost
connection: local
tasks:
- set_fact: rds_hostname="{{ rds_mysql }}" #set rds endpoint from ec2.py
- debug: var=rds_hostname
当我 运行 普通 ec2.py 脚本作为
时,我能够获得端点
"rds_mysql":{
"rds_mysql.shdahfiahfa.us-easy-1.rds.amazon.com"
}
但是我希望将 rds_hostname 设置为从 dynamic_inventory 接收到的端点。
谁能指出我的错误。谢谢
我能够通过使用这样的方法解决我的上述问题
- set_fact: rds_hostname="{{ groups.rds_mysql[0] }}"
在我的研究过程中,我还发现了一个很好的 ansible galaxy 代码,它允许您转储 ansible-playbooks 可访问的所有变量
https://galaxy.ansible.com/list#/roles/646
希望这对某人有所帮助:)
我正在寻找使用从动态库存接收的库存信息在 ansible 剧本中设置变量的方法。
例如,如果我们有一个示例剧本,例如
---
- hosts: localhost
connection: local
tasks:
- set_fact: rds_hostname="{{ rds_mysql }}" #set rds endpoint from ec2.py
- debug: var=rds_hostname
当我 运行 普通 ec2.py 脚本作为
时,我能够获得端点"rds_mysql":{
"rds_mysql.shdahfiahfa.us-easy-1.rds.amazon.com" }
但是我希望将 rds_hostname 设置为从 dynamic_inventory 接收到的端点。
谁能指出我的错误。谢谢
我能够通过使用这样的方法解决我的上述问题
- set_fact: rds_hostname="{{ groups.rds_mysql[0] }}"
在我的研究过程中,我还发现了一个很好的 ansible galaxy 代码,它允许您转储 ansible-playbooks 可访问的所有变量
https://galaxy.ansible.com/list#/roles/646
希望这对某人有所帮助:)