我正在尝试动态配置ansible我的EC2实例.我在查找如何查找我的RDS实例时遇到问题.我可以设置关键标签,但ansible ec2.py不会提取它们(https://github.com/ansible/ansible/issues/7564).有没有人有什么建议?
因此,例如,我想要一个RDS实例用于生产,升级和仅用于测试.
如果你的意思是ansible ec2.py库存脚本没有获取RDS实例,那么是的我认为你是对的,它只会找到EC2实例.
我们有一个类似的设置,其中包含用于登台和生产环境的单独RDS实例.我们解决它的方式是任何需要针对mysql数据库运行的playbooks/roles,我们针对魔术主机"localhost"运行它们,并在变量中设置RDS端点.我们为每个环境使用一个单独的变量文件,并在播放开始时加载它们.
例如
|--vars/
| |--staging.yml
| |--production.yml
|
|--playbook.yml
Run Code Online (Sandbox Code Playgroud)
示例"production.yml"文件:
---
DB_SERVER: database-endpoint.cls4o6q35lol.eu-west-1.rds.amazonaws.com
DB_PORT: 3306
DB_USER: dbusername
DB_PASSWORD: dbpassword
Run Code Online (Sandbox Code Playgroud)
创建数据库的示例playbook
- 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
Run Code Online (Sandbox Code Playgroud)
然后你可以在运行playbook时指定envionrment变量.
ansible-playbook playbook.yml --extra-vars "env=production"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |