查找ansible RDS实例

hum*_*um3 1 rds ansible

我正在尝试动态配置ansible我的EC2实例.我在查找如何查找我的RDS实例时遇到问题.我可以设置关键标签,但ansible ec2.py不会提取它们(https://github.com/ansible/ansible/issues/7564).有没有人有什么建议?

因此,例如,我想要一个RDS实例用于生产,升级和仅用于测试.

Woo*_*ham 5

如果你的意思是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)