我试图用动态ansible我的EC2实例配置。 我有一个问题去解决如何找到我的RDS实例。 我可以设置键标签,但ansible ec2.py不去接他们( https://github.com/ansible/ansible/issues/7564 )。 有没有人有什么建议?
因此,例如,我要为生产,分期和只是用于测试的RDS实例。
我试图用动态ansible我的EC2实例配置。 我有一个问题去解决如何找到我的RDS实例。 我可以设置键标签,但ansible ec2.py不去接他们( https://github.com/ansible/ansible/issues/7564 )。 有没有人有什么建议?
因此,例如,我要为生产,分期和只是用于测试的RDS实例。
如果你指的是ansible ec2.py库存脚本不拿起RDS实例,然后是的,我相信你是正确的,它只能找到EC2实例。
我们有分期和生产环境一个单独的RDS实例类似的设置。 我们解决了它是任何剧本/角色需要对MySQL数据库运行的方式,我们运行他们对阵魔术主机“本地主机”,并在变量设定的RDS端点。 我们使用每个环境一个独立的变量文件,并在剧中开始加载它们。
如
|--vars/
| |--staging.yml
| |--production.yml
|
|--playbook.yml
例如“production.yml”文件:
---
DB_SERVER: database-endpoint.cls4o6q35lol.eu-west-1.rds.amazonaws.com
DB_PORT: 3306
DB_USER: dbusername
DB_PASSWORD: dbpassword
例如剧本,创建一个数据库
- name: Playbook name
hosts: localhost
vars_files:
- vars/{{ env }}.yml
tasks:
- mysql_db: login_host={{ DB_SERVER }}
login_user={{ DB_USER }}
login_password={{ DB_PASSWORD }}
login_port={{ DB_PORT }}
collation=utf8_general_ci
encoding=utf8
name=databasename
state=present
然后,当你运行的剧本你可以specifiy的envionrment变量。
ansible-playbook playbook.yml --extra-vars "env=production"
对方的回答是现在错误(如果我读正确的问题)。 在同一目录作为您ec2.py
,加ec2.ini
文件,并添加:
ec2.ini
[ec2]
rds = true
我有一个类似的问题,但该文档明确指出ec2.py可以用来寻找其他资源。
Ansible动态库存
还有在ec2.ini其他配置选项,包括高速缓存控制和目标变量。 默认情况下,ec2.ini文件配置为所有亚马逊的云服务,但你可以注释掉那些不适用的功能。 举例来说,如果你没有RDS或elasticache,您可以将其设置为False
编辑:可是,我也想强调的是,即使它规定所有的资源都默认支持的,我没有,直到我指定我希望他们在得到RDS结果ec2.ini
文件。