Spec-Zone.ru › Ansible 2.8

postgresql_set – Изменение параметра конфигурации сервера PostgreSQL

Новая версия с 2.8.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Позволяет изменить параметр конфигурации сервера PostgreSQL.
  • Модуль использует команду ALTER SYSTEM https://www.postgresql.org/docs/current/sql-altersystem.html и применяет изменения, перезагружая конфигурацию сервера.
  • ALTER SYSTEM используется для изменения параметров конфигурации сервера по всему кластеру баз данных.
  • Это может быть удобнее и безопаснее, чем традиционный метод ручного редактирования файла postgresql.conf.
  • ALTER SYSTEM записывает заданное значение параметра в файл $PGDATA/postgresql.auto.conf, который считывается дополнительно к postgresql.conf https://www.postgresql.org/docs/current/sql-altersystem.html.
  • Модуль позволяет сбросить параметр до значения по умолчанию (начальное значение кластера) с помощью reset=yes или удалить строку параметра из postgresql.auto.conf и перезагрузить value=default (для настроек с контекстом postmaster требуется перезагрузка).
  • После изменения в выводе Ansible вы можете увидеть предыдущее и новое значения параметра и другую информацию, используя возвращаемые значения и модуль debug.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
ca_cert
строка
Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA).
Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров.

Псевдонимы: ssl_rootcert
db
строка
Имя базы данных для подключения.

Псевдонимы: login_db
login_host
строка
Хост, на котором работает база данных.
login_password
строка
Пароль для аутентификации.
login_unix_socket
строка
Путь к сокету Unix доменной области для локальных подключений.
login_user
строка
По умолчанию:
"postgres"
Имя пользователя для аутентификации.
name
строка / обязательно
Имя параметра сервера PostgreSQL.
port
целое число
По умолчанию:
5432
Порт базы данных для подключения.

Псевдонимы: login_port
reset
логическое
    Варианты:
  • нет ←
  • да
Восстановить параметр до начального состояния (boot_val). Взаимоисключающее с value.
session_role
строка
Переключиться на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user.
Проверка разрешений для SQL-команд выполняется так, как если бы session_role была той, которая первоначально вошла в систему.
ssl_mode
строка
    Варианты:
  • разрешить
  • отключить
  • предпочитать ←
  • требовать
  • проверять-ca
  • проверять-полностью
Определяет, будет ли и с какой приоритетностью устанавливаться защищенное SSL TCP/IP-соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
value
строка / обязательно
Значение параметра для установки.
Чтобы удалить строку параметра из postgresql.auto.conf и перезагрузить конфигурацию сервера, необходимо передать value=default. С value=default playbook всегда возвращает changed is true.

Примечания

Примечание

  • Поддерживаемая версия PostgreSQL — 9.4 и выше.
  • Обратите внимание, изменение настроек с контекстом «postmaster» может возвращать changed is true, когда фактически ничего не меняется, поскольку одно и то же значение может быть представлено в нескольких разных форматах, например, 1024MB, 1GB и т. д. Однако в системном представлении pg_settings оно может быть определено как 131072 количество 8КБ страниц. Окончательная проверка значения параметра не может сравниваться, потому что сервер не был перезапущен, и значение в pg_settings ещё не обновлено.
  • Для некоторых параметров требуется перезагрузка сервера PostgreSQL. См. официальную документацию https://www.postgresql.org/docs/current/view-pg-settings.html.
  • Аутентификация по умолчанию предполагает, что вы либо входите в систему как, либо используете sudo для учетной записи postgres на хосте.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удаленный хост — это сервер PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удаленном хосте. Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удаленном хосте перед использованием этого модуля.
  • Аутентификация по умолчанию предполагает, что вы либо входите в систему как, либо используете sudo для учетной записи postgres на хосте.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удаленный хост — это сервер PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удаленном хосте. Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev, и python-psycopg2 на удаленном хосте перед использованием этого модуля.
  • Параметр ca_cert требует как минимум версию Postgres 8.4 и psycopg2 версию 2.4.3.

Примеры

- name: Restore wal_keep_segments parameter to initial state
  postgresql_set:
    name: wal_keep_segments
    reset: yes

# Set work_mem parameter to 32MB and show what's been changed and restart is required or not
# (output example: "msg": "work_mem 4MB >> 64MB restart_req: False")
- name: Set work mem parameter
  postgresql_set:
    name: work_mem
    value: 32mb
  register: set

- debug:
    msg: "{{ set.name }} {{ set.prev_val_pretty }} >> {{ set.value_pretty }} restart_req: {{ set.restart_required }}"
  when: set.changed
# Ensure that the restart of PostgreSQL serever must be required for some parameters.
# In this situation you see the same parameter in prev_val and value_prettyue, but 'changed=True'
# (If you passed the value that was different from the current server setting).

- name: Set log_min_duration_statement parameter to 1 second
  postgresql_set:
    name: log_min_duration_statement
    value: 1s

- name: Set wal_log_hints parameter to default value (remove parameter from postgresql.auto.conf)
  postgresql_set:
    name: wal_log_hints
    value: default

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
context
строка
всегда
Контекст настройки PostgreSQL.

Пример:
пользователь
name
строка
всегда
Имя параметра сервера PostgreSQL.

Пример:
shared_buffers
prev_val_pretty
строка
всегда
Информация о предыдущем состоянии параметра.

Пример:
4MB
restart_required
логическое
всегда
Информация о текущем состоянии параметра.

Пример:
True
value
словарь
всегда
Словарь, содержащий текущее значение параметра (на момент завершения выполнения playbook).
Обратите внимание, что для реального изменения некоторых параметров требуется перезагрузка сервера PostgreSQL.
Возвращает текущее значение в режиме проверки.

Пример:
{'value': 67108864, 'unit': 'b'}
value_pretty
строка
всегда
Информация о текущем состоянии параметра.

Пример:
64MB


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [preview]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • Андрей Клычков (@Andersson007)

Подсказка

Если вы обнаружите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/postgresql_set_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API