查找ansible RDS实例

时间:2014-06-06 12:11:47

标签: ansible rds

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

因此,例如,我想要一个用于生产,登台和仅用于测试的RDS实例。

2 个答案:

答案 0 :(得分:5)

如果你的意思是ansible ec2.py库存脚本没有获取RDS实例,那么我相信你是对的,它只会找到EC2实例。

我们有一个类似的设置,其中包含用于登台和生产环境的单独RDS实例。我们解决它的方式是任何需要针对mysql数据库运行的playbooks / roles,我们针对魔术主机“localhost”运行它们,并在变量中设置RDS端点。我们为每个环境使用一个单独的变量文件,并在播放开始时加载它们。

e.g。

|--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

然后你可以在运行playbook时指定envionrment变量。

ansible-playbook playbook.yml --extra-vars "env=production"

答案 1 :(得分:0)

现在另一个答案是错的(如果我正确地阅读了这个问题)。在与ec2.py相同的目录中,添加ec2.ini文件,然后添加:

ec2.ini

[ec2]

rds = true

我有类似的问题,但文档明确指出ec2.py可用于查找其他资源。

Ansible Dynamic Inventory

  

ec2.ini中还有其他配置选项,包括缓存控制和目标变量。默认情况下,ec2.ini文件是为所有Amazon云服务配置的,但您可以注释掉任何不适用的功能。例如,如果您没有RDS或弹性,则可以将它们设置为False

编辑:但是,我也想强调一下,即使它声明默认支持所有资源,但我没有获得RDS结果,直到我在ec2.ini指定我想要它们文件。