ansible_postgresql_role
Ansible роль для PostgreSQL
Ansible роль, которая устанавливает и настраивает кластеры PostgreSQL, базы данных и пользователей.
Смотрите страницу роли на Ansible Galaxy.
Установка
Эта роль была протестирована на Ansible 2.5.0 и выше.
Чтобы установить:
ansible-galaxy install trainline-eu.ansible_postgresql_role
Зависимости
Нет зависимостей
Рекомендуемые зависимости:
Декларация совместимости
В этой таблице указаны протестированные версии пар ОС/PostgreSQL.
Дистрибутив / PostgreSQL | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|
Debian 9.x | :no_entry: :white_check_mark: | :no_entry: :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Debian 10.x | :no_entry: :white_check_mark: | :no_entry: :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- :white_check_mark: - протестировано, работает хорошо
- :grey_question: - будет работать в будущем (помогите, если можете)
- :interrobang: - может работать, не проверено
- :no_entry: - PostgreSQL достиг конца поддержки
Переменные
# Основные настройки
postgres_listen_addresses: [ '127.0.0.1' ] # Необязательно
postgres_log_dir: '/home/postgres-logs' # Необязательно
postgres_data_dir: '/home/postgres' # Необязательно
postgres_clusters: # Обязательно
- version: 11 # Обязательно
name: 'main' # Обязательно
port: 5432 # Обязательно
checksums: True # Необязательно
fsync_enabled: False # Необязательно
archive_enabled: False # Необязательно
wal_level: 'logical' # Необязательно
max_replication_slots: 10 # Необязательно
barman_directory: None # Необязательно
# Определите кластер как резервный сервер
primary: # Необязательно
host: '127.0.1.1' # Обязательно
port: 5433 # Обязательно
replication_user: 'replicator' # Обязательно
replication_password: 'SuperSecret' # Обязательно
restore_command: None # Необязательно
restore_barman_directory: None # Необязательно
# Список пользователей для создания (необязательно)
users:
- username: 'replicator' # Обязательно
password: 'SuperSecret' # Обязательно
permissions: 'REPLICATION' # Обязательно
# Список баз данных для создания (необязательно)
databases:
- dbname: my_database # Обязательно
owner: john # Обязательно
extensions: # Необязательно
- names: [ 'postgis', 'postgis_topology' ]
apt_deps: [ 'postgresql-11-postgis' ]
extra_config: # Необязательно
max_connections: 100 # Необязательно
shared_preload_libraries: '' # Необязательно
max_worker_processes: 8 # Необязательно
track_commit_timestamp: off # Необязательно
max_standby_archive_delay: 30s # Необязательно
max_standby_streaming_delay: 600s # Необязательно
# Конфигурация PostgreSQL (необязательно)
postgres_log_line_prefix: '%m [%p] база данных: %d хост: %h пользователь: %u '
postgres_datestyle: 'iso, dmy'
postgres_locale_formats: fr_FR.UTF-8
postgres_text_search_config: pg_catalog.french
# Конфигурация pg_hba PostgreSQL (необязательно)
postgres_allowed_hosts:
- user: all
range: 10.0.0.0/24
postgres_replication_hosts:
- user: replicator
range: 10.0.0.0/24
# Конфигурация, связанная с Ansible
postgres_become_method: su # Необязательно
# Подключение к Barman
postgres_barman_server: barman.example.com # Обязательно, если хотя бы один сервер имеет включенный archive_enabled
postgres_barman_rsync_enabled: False # Необязательно
postgres_barman_rsync_options: '' # Необязательно
postgres_barman_remote_user: barman # Необязательно
postgres_barman_path_prefix: '~' # Необязательно, обязательно, если используется rsync
Тестирование
Этот проект включает в себя плейбук test/main.yml
для тестирования. Он использует Docker
для создания контейнеров локально и настраивает 3-нода кластер PostgreSQL с сервером Barman.
Покрытие этого плейбука, вероятно, не полное, но оно есть.
Если вы хотите внести свой вклад, сначала протестируйте свои изменения в новом плейбуке в директории test/
в контейнерах Docker (с использованием целевого дистрибутива), а если возможно, убедитесь, что ваше изменение покрыто тестами.
Лицензия
Лицензируется по лицензии MIT. Смотрите файл LICENSE для подробностей.
Благодарности
Создатели:
Сопроводители:
Обратная связь, отчеты об ошибках, запросы и т.д.
Вы можете обращаться с вопросами!
Install, configure and manage PostgreSQL clusters
ansible-galaxy install trainline-eu/ansible-postgresql-role