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

О проекте

Role for provisioning a PostgreSQL database on RDS.

Установить
ansible-galaxy install cdriehuys/ansible-role-rds-postgres
Лицензия
mit
Загрузки
98
Владелец
Software developer from North Carolina.