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
Лицензия
mit
Загрузки
3825
Владелец