rds-postgres
cdriehuys.rds-postgres
Эта роль позволяет вам создать базу данных PostgreSQL с использованием RDS от AWS.
Требования
Поскольку эта роль взаимодействует с 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: default
# Учетные данные для администратора
db_admin_username: dbadmin
db_admin_password: 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
Зависимости
Не применимо
Пример Playbook
Поскольку роль использует команды local_action
, логично установить хост на локальную машину.
- hosts: localhost
connection: local
gather_facts: no
roles:
- cdriehuys.rds-postgres
Лицензия
MIT
Информация об авторе
Чатан Дрихуис cdriehuys@gmail.com
ansible-galaxy install cdriehuys/ansible-role-rds-postgres