寻找ansible RDS实例(Finding ansible RDS instances)

2019-10-20 06:41发布

我试图用动态ansible我的EC2实例配置。 我有一个问题去解决如何找到我的RDS实例。 我可以设置键标签,但ansible ec2.py不去接他们( https://github.com/ansible/ansible/issues/7564 )。 有没有人有什么建议?

因此,例如,我要为生产,分期和只是用于测试的RDS实例。

Answer 1:

如果你指的是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"


Answer 2:

对方的回答是现在错误(如果我读正确的问题)。 在同一目录作为您ec2.py ,加ec2.ini文件,并添加:

ec2.ini

[ec2]

rds = true

我有一个类似的问题,但该文档明确指出ec2.py可以用来寻找其他资源。

Ansible动态库存

还有在ec2.ini其他配置选项,包括高速缓存控制和目标变量。 默认情况下,ec2.ini文件配置为所有亚马逊的云服务,但你可以注释掉那些不适用的功能。 举例来说,如果你没有RDS或elasticache,您可以将其设置为False

编辑:可是,我也想强调的是,即使它规定所有的资源都默认支持的,我没有,直到我指定我希望他们在得到RDS结果ec2.ini文件。



文章来源: Finding ansible RDS instances
标签: ansible rds