cdriehuys.rds-postgres

cdriehuys.rds-postgres

此角色允许您使用 AWS 的 RDS 创建 PostgreSQL 数据库。

要求

由于此角色与 AWS 交互,因此需要安装 boto 包。此角色的功能依赖于 boto >= 2.26 在运行角色的主机上安装。我们还需要 psycopg2 来与数据库进行交互。

角色变量

此角色与 AWS 交互,因此您必须设置凭证以使用该角色。如果未提供凭证作为变量,Ansible 将尝试从环境变量中查找它们,如这里所述。

aws_access_key: 您的访问密钥
aws_secret_key: 您的秘密密钥
aws_region: 您的 AWS 区域

该角色使用一些常见的 AWS 变量,以便为其他参数提供默认名称。

aws_application_name: 我的应用
aws_tags: {}

以下参数在创建数据库实例时使用。您很可能会想修改这些参数,因为它们的默认值为最小值。

db_instance_name: "{{ aws_application_name }}-db"
db_instance_size: 5
db_instance_type: db.t2.micro

db_instance_default_tags:
  application: "{{ aws_application_name }}"
  role: database
db_instance_tags: "{{ db_instance_default_tags | combine(aws_tags) }}"

db_instance_subnet: 默认

# 管理员用户的凭证
db_admin_username: dbadmin
db_admin_password: 密码

默认情况下,RDS 实例创建时有一个安全组,允许在角色运行期间从任何地方访问。角色结束后,默认情况下该安全组不允许任何访问。如果运行时不知道所需的规则,则我们将创建的安全组的引用保存为 db_security_group

db_instance_sg_name: "{{ aws_application_name }}-db-sg"
db_instance_sg_description: '{{ aws_application_name }}' 数据库的安全组。

# 用您想要的规则覆盖此项
db_instance_sg_rules: []

# 这些是角色运行时允许访问的规则
db_instance_sg_holes:
  - proto: tcp
    from_port: 5432
    to_port: 5432
    cidr_ip: 0.0.0.0/0

每个实例可以托管多个数据库。数据库用名称和可选参数进行指定。每个数据库给予的用户将拥有该数据库的所有权限。

db_map: {}

# 一个包含多个用户的多个数据库示例
db_map:
  mydb:
    users:
      john: johnpassword
      alice: alicepassword

  otherdb:
    users:
      phil: philpassword

依赖

示例剧本

由于该角色使用了 local_action 命令,因此设置主机为本地计算机是最合理的。

- hosts: localhost
  connection: local
  gather_facts: no
  roles:
     - cdriehuys.rds-postgres

许可证

MIT

作者信息

Chathan Driehuys cdriehuys@gmail.com

关于项目

Role for provisioning a PostgreSQL database on RDS.

安装
ansible-galaxy install cdriehuys.rds-postgres
许可证
mit
下载
111
拥有者
Software developer from North Carolina.