如何使用 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

希望这对某人有所帮助:)