postgresql

Ansible Роль: PostgreSQL

CI

Устанавливает и настраивает сервер PostgreSQL на серверах RHEL/CentOS или Debian/Ubuntu.

Требования

Нет специальных требований; обратите внимание, что эта роль требует доступа root, поэтому запустите её в плейбуке с глобальным become: yes, или вызовите роль в вашем плейбуке следующим образом:

- hosts: database
  roles:
    - role: geerlingguy.postgresql
      become: yes

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

Доступные переменные перечислены ниже, вместе с значениями по умолчанию (см. defaults/main.yml):

postgresql_enablerepo: ""

(Только RHEL/CentOS) Вы можете задать репозиторий для установки PostgreSQL, указав его здесь.

postgresql_restarted_state: "restarted"

Установите состояние службы, когда вносятся изменения в конфигурацию. Рекомендуемые значения - restarted или reloaded.

postgresql_python_library: python-psycopg2

Библиотека, используемая Ansible для общения с PostgreSQL. Если вы используете Python 3 (например, установленный через ansible_python_interpreter), измените это на python3-psycopg2.

postgresql_user: postgres
postgresql_group: postgres

Пользователь и группа, от имени которых будет работать PostgreSQL.

postgresql_unix_socket_directories:
  - /var/run/postgresql

Директории (обычно одна, но может быть несколько), в которых будет создан сокет PostgreSQL.

postgresql_service_state: started
postgresql_service_enabled: true

Управление состоянием службы PostgreSQL и тем, должна ли она запускаться при загрузке.

postgresql_global_config_options:
  - option: unix_socket_directories
    value: '{{ postgresql_unix_socket_directories | join(",") }}'
  - option: log_directory
    value: 'log'

Глобальные параметры конфигурации, которые будут установлены в postgresql.conf. Для версий PostgreSQL старше 9.3 вам нужно хотя бы переопределить эту переменную и установить option в unix_socket_directory. Если вы переопределяете значение option: log_directory, указав другой путь, относительный или абсолютный, эта роль создаст его для вас.

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 }

Настройка записей для аутентификации на основе хоста, которые будут установлены в pg_hba.conf. Опции для записей включают:

  • type (обязательно)
  • database (обязательно)
  • user (обязательно)
  • address (одно из этого или следующие два обязательно)
  • ip_address
  • ip_mask
  • auth_method (обязательно)
  • auth_options (необязательно)

Если переопределяете, убедитесь, что вы скопировали все существующие записи из defaults/main.yml, если вам нужно сохранить существующие записи.

postgresql_locales:
  - 'en_US.UTF-8'

(Только Debian/Ubuntu) Используется для генерации локалей, используемых базами данных PostgreSQL.

postgresql_databases:
  - name: exampledb # обязательно; остальные необязательны
    lc_collate: # по умолчанию 'en_US.UTF-8'
    lc_ctype: # по умолчанию 'en_US.UTF-8'
    encoding: # по умолчанию 'UTF-8'
    template: # по умолчанию 'template0'
    login_host: # по умолчанию 'localhost'
    login_password: # по умолчанию не задано
    login_user: # по умолчанию 'postgresql_user'
    login_unix_socket: # по умолчанию 1-й из postgresql_unix_socket_directories
    port: # по умолчанию не задано
    owner: # по умолчанию postgresql_user
    state: # по умолчанию 'present'

Список баз данных, которые необходимо обеспечить существование на сервере. Только name обязателен; все остальные параметры необязательны.

postgresql_users:
  - name: jdoe #обязательно; остальные необязательны
    password: # по умолчанию не задано
    encrypted: # по умолчанию не задано
    priv: # по умолчанию не задано
    role_attr_flags: # по умолчанию не задано
    db: # по умолчанию не задано
    login_host: # по умолчанию 'localhost'
    login_password: # по умолчанию не задано
    login_user: # по умолчанию '{{ postgresql_user }}'
    login_unix_socket: # по умолчанию 1-й из postgresql_unix_socket_directories
    port: # по умолчанию не задано
    state: # по умолчанию 'present'

Список пользователей, которые необходимо обеспечить существование на сервере. Только name обязателен; все остальные параметры необязательны.

postgres_users_no_log: true

Указывает, нужно ли выводить данные пользователей (которые могут содержать конфиденциальную информацию, например пароли) при управлении пользователями.

postgresql_version: [специфично для ОС]
postgresql_data_dir: [специфично для ОС]
postgresql_bin_path: [специфично для ОС]
postgresql_config_path: [специфично для ОС]
postgresql_daemon: [специфично для ОС]
postgresql_packages: [специфично для ОС]

Переменные, специфичные для ОС, которые устанавливаются файлами включения в директории vars этой роли. Их не следует переопределять, если вы не используете версию PostgreSQL, которая не была установлена с помощью системных пакетов.

Зависимости

Нет.

Пример Плейбука

- hosts: database
  become: yes
  vars_files:
    - vars/main.yml
  roles:
    - geerlingguy.postgresql

Внутри vars/main.yml:

postgresql_databases:
  - name: example_db
postgresql_users:
  - name: example_user
    password: supersecure

Лицензия

MIT / BSD

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

Эта роль была создана в 2016 году Джеффом Гирлингом, автором Ansible for DevOps.

О проекте

PostgreSQL server for Linux.

Установить
ansible-galaxy install geerlingguy/ansible-role-postgresql
Лицензия
mit
Загрузки
3051971
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns