postgresql

enix.postgresql

Роль для развертывания и настройки postgresql на unix-хостах с использованием Ansible.

Требования

Поддерживаемые платформы:

  • Debian 9 "Stretch"
  • Debian 10 "Buster"
  • Debian 11 "Bullseye"
  • Ubuntu 20.04 "Focal"
  • Ubuntu 22.04 "Jammy"

Переменные роли

Эта роль уже содержит почти все необходимые настройки по умолчанию. Вы можете переопределить каждую из них в переменных ваших хостов/групп, в инвентаре или в вашем play. Смотрите аннотированные настройки в defaults/main.yml для помощи в конфигурации.

  • postgresql__version - версия postgresql для установки. По умолчанию 14. Доступные версии: 10, 11, 12, 13, 14.
  • postgresql__extensions - пакеты расширений postgresql для установки.
  • postgresql__global_config_options - глобальные параметры конфигурации, которые нужно установить в postgresql.conf. Общие параметры:
postgresql__global_config_options:
  - option: listen_addresses
    value: '*'
  - option: log_min_duration_statement
    value: 1000
  - option: bonjour
    value: off
    state: absent
  • postgresql__includeconf - список конфигурационных файлов для шаблонизации и загрузки в conf.d/.
  • postgresql__hba_entries - записи для аутентификации на основе хоста. Переопределят стандартные настройки PostgreSQL. По умолчанию не определено. Обязательные поля: type, database, user, auth_method, необязательные: address, ip_address, ip_mask, auth_options. Для воспроизведения предоставленной конфигурации пакета:
postgresql_hba_entries:
  - {type: local, database: all, user: postgres, auth_method: peer}
  - {type: local, database: all, user: all, auth_method: peer}
  - {type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5}
  - {type: host, database: all, user: all, address: '::1/128', auth_method: md5}
# начиная с версии 10 добавлена роль репликации
  - {type: local, database: replication, user: all, auth_method: peer}
  - {type: host, database: replication, user: all, address: '127.0.0.1/32', auth_method: md5}
  - {type: host, database: replication, user: all, address: '::1/128', auth_method: md5}
  • postgresql__users - Пользователи, которые будут созданы на сервере postgresql и их учетные данные:
postgresql__users:
  - {name: "foobar",
    password: "supersecure",
    encrypted: yes,
    expires: 'infinity',
    state: 'present',
    conn_limit: none,
    priv: none,
    role_attr_flags: none,
    db: none
  • postgresql__databases - состояние баз данных, которые нужно установить на сервер. Единственный обязательный параметр — имя:
postgresql__databases:
  - {name: test,
    lc_collate: 'en_US.UTF-8',
    lc_ctype: 'en_US.UTF-8',
    encoding: 'UTF-8',
    template: 'template0',
    owner: postgres,
    extension: [], # проверьте, что необходимые расширения установлены заранее
    state: 'present'
   }
  • postgresql__install_pgbackrest - установка программного обеспечения pgbackrest https://pgbackrest.org.
  • postgresql__install_pg_auto_failover - установка программного обеспечения pg_auto_failover https://github.com/citusdata/pg_auto_failover.
  • postgresql__disable_initdb - отключение создания основного кластера по умолчанию. Полезно при создании кластера pg_auto_failover или просто при установке пакета.

Зависимости

  • Нет

Использование

Используйте Ansible galaxy requirements.yml

    - src: enix.postgresql

И добавьте это в роли вашего play:

    - hosts: all
      roles:
        - role enix.postgresql:
            postgresql__var: true

Вы также можете использовать роль как playbook. Вам будет предложено выбрать, какие хостыProvision, и вы можете дополнительно настроить play, используя --extra-vars.

ansible-playbook -i inventory --extra-vars='{...}' main.yml

Что еще нужно сделать

  • Проверить, развертываем ли мы на реплике. В этом случае не выполнять createdb и createuser.
  • Добавить CI тесты с использованием molecule.

История изменений

2.1.0

Добавлено: установка программного обеспечения pgbackrest и pg_auto_failover. Добавлена опция disable_initdb. Это предотвращает установку базы данных по умолчанию.

2.0.0

Добавлена поддержка postgresql 13 и 14. Добавлена поддержка Debian 10 Buster и Debian 11 Bullseye. Добавлена поддержка Ubuntu 20.04 Focal и Ubuntu 22.04 Jammy. Удалена поддержка debian jessie. Переключено на тесты molecule. Используются новые задачи ansible FQDN.

1.2.0

Добавлена поддержка postgresql 12.

1.1.0

Добавлена поддержка списка расширений в определении и конфигурации баз данных.

1.0.0

Первая версия.

Лицензия

GPLv2

Информация об авторе

Лорен КОРБЕС laurent.corbes@enix.fr - http://www.enix.io

О проекте

Ansible role to deploy postgresql software

Установить
ansible-galaxy install enix/ansible-postgresql
Лицензия
Unknown
Загрузки
19079
Владелец
Enix