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
安装
ansible-galaxy install cdriehuys.rds-postgres
许可证
mit
下载
111
拥有者
Software developer from North Carolina.