Модуль community.postgresql.postgresql_set — изменение параметра конфигурации сервера PostgreSQL
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.postgresql.postgresql_set.
- УСТАРЕЛ
- Краткое описание
- Требования
- Параметры
- Атрибуты
- Примечания
- См. также
- Примеры
- Возвращаемые значения
- Статус
УСТАРЕЛ
- Удалён в:
-
версии 5.0.0
- Причина:
-
Заменён модулем с более удачным дизайном.
- Альтернатива:
-
Вместо него используйте community.postgresql.postgresql_alter_system.
Краткое описание
- ВАЖНО! Если версия сервера PostgreSQL — 14 или более поздняя, используйте модуль community.postgresql.postgresql_alter_system, поскольку в будущем он заменит этот модуль.
- Позволяет изменить параметр конфигурации сервера PostgreSQL.
- Модуль использует команду ALTER SYSTEM и применяет изменения, перезагружая конфигурацию сервера.
- Команда ALTER SYSTEM используется для изменения параметров конфигурации сервера во всём кластере баз данных.
- Это может быть удобнее и безопаснее традиционного способа — вручную редактировать файл postgresql.conf.
- Команда ALTER SYSTEM записывает указанное значение параметра в файл $PGDATA/postgresql.auto.conf, который считывается в дополнение к postgresql.conf.
- Модуль позволяет сбросить параметр до boot_val (начального значения кластера), указав reset=true, или удалить строку параметра из postgresql.auto.conf и перезагрузить конфигурацию, указав value=default (для параметров с контекстом postmaster требуется перезапуск).
- После изменения в выводе Ansible можно посмотреть предыдущее и новое значения параметра и другую информацию с помощью возвращаемых значений и модуля ansible.builtin.debug.
Требования
На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert строка | Указывает имя файла, содержащего сертификат центра сертификации (CA) SSL. Если файл существует, сертификат сервера будет проверен на наличие подписи одного из этих центров. |
connect_params словарь добавлено в community.postgresql 2.3.0 | Любые дополнительные параметры, передаваемые в libpg. Эти параметры имеют приоритет. По умолчанию: |
login_db псевдонимы: db строка | Имя базы данных для подключения. Псевдоним |
login_host псевдонимы: host строка | Узел, на котором запущена база данных. Если при использовании По умолчанию: |
login_password строка | Пароль, который модуль должен использовать для установления сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port целое число | Порт базы данных для подключения. Псевдоним По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к доменному сокету Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое модуль должен использовать для установления сеанса PostgreSQL. По умолчанию: |
name строка / обязательный | Имя параметра сервера PostgreSQL. Обратите внимание, что параметры чувствительны к регистру (см. примеры ниже). |
reset логический | Восстановить исходное значение параметра (boot_val). Несовместим с value. Варианты:
|
session_role строка | Переключиться на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для команд SQL выполняется так, как если бы изначально вошедшим в систему пользователем была session_role. |
ssl_cert путь добавлено в community.postgresql 2.4.0 | Указывает имя файла клиентского сертификата SSL. |
ssl_key путь добавлено в community.postgresql 2.4.0 | Указывает расположение закрытого ключа, используемого для клиентского сертификата. |
ssl_mode строка | Определяет, будет ли установлено безопасное соединение SSL TCP/IP с сервером и с каким приоритетом. Дополнительную информацию о режимах см. на странице https://www.postgresql.org/docs/current/static/libpq-ssl.html. Значение по умолчанию Варианты:
|
trust_input логический добавлено в community.postgresql 0.2.0 | Если Использовать Варианты:
|
value строка | Задаваемое значение параметра. Чтобы удалить строку параметра из postgresql.auto.conf и перезагрузить конфигурацию сервера, необходимо передать value=default. При значении value=default плейбук всегда возвращает changed is true. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может выполняться в режиме check_mode и возвращать прогноз изменения статуса без изменения целевого узла. |
Примечания
Примечание
- Поддерживаются версии PostgreSQL 9.4 и более поздние. Для PostgreSQL версии 14 и более поздних рекомендуется использовать модуль community.postgresql.postgresql_alter_system.
- Обратите внимание: при изменении параметра с контекстом ‘postmaster’ модуль может вернуть changed is true, хотя фактически ничего не изменилось, поскольку одно и то же значение может быть представлено в разных формах, например 1024MB, 1GB и т. д. Однако в системном представлении pg_settings оно может быть задано как число 131072, соответствующее страницам по 8kB. Итоговую проверку значения параметра нельзя выполнить сравнением, поскольку сервер не перезапускался и значение в pg_settings ещё не обновлено.
- Для некоторых параметров требуется перезапуск сервера PostgreSQL. См. официальную документацию: https://www.postgresql.org/docs/current/view-pg-settings.html.
- Предполагается, что для аутентификации вы входите в систему под учётной записью
postgresна узле или переключаетесь на неё с помощью sudo. - Чтобы избежать ошибки «Peer authentication failed for user postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует
psycopg— адаптер Python для баз данных PostgreSQL. Перед использованием модуля необходимо убедиться, что на узле установленоpsycopg2 >= 2.5.1илиpsycopg3 >= 3.1.8. - Если удалённый узел является сервером PostgreSQL (что используется по умолчанию), PostgreSQL также должен быть установлен на удалённом узле.
- В системах на базе Ubuntu перед использованием этого модуля установите на удалённом узле пакеты
postgresql,libpq-devиpython3-psycopg2.
См. также
См. также
- community.postgresql.postgresql_alter_system
-
Изменение параметра конфигурации сервера PostgreSQL.
- community.postgresql.postgresql_info
-
Сбор информации о серверах PostgreSQL.
- Конфигурация сервера PostgreSQL
-
Общие сведения о конфигурации сервера PostgreSQL.
- Справочник по представлению pg_settings в PostgreSQL
-
Полный справочник по документации представления pg_settings.
- Справочник по команде ALTER SYSTEM в PostgreSQL
-
Полный справочник по документации команды ALTER SYSTEM.
Примеры
- name: Restore wal_keep_segments parameter to initial state
community.postgresql.postgresql_set:
name: wal_keep_segments
reset: true
# 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
community.postgresql.postgresql_set:
name: work_mem
value: 32mb
register: set
- name: Print the result if the setting changed
ansible.builtin.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 server must be required for some parameters.
# In this situation you see the same parameter in prev_val_pretty and value_pretty, 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
community.postgresql.postgresql_set:
name: log_min_duration_statement
value: 1s
- name: Set wal_log_hints parameter to default value (remove parameter from postgresql.auto.conf)
community.postgresql.postgresql_set:
name: wal_log_hints
value: default
- name: Set TimeZone parameter (careful, case sensitive)
community.postgresql.postgresql_set:
name: TimeZone
value: 'Europe/Paris'
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
context строка | Контекст настройки PostgreSQL. Возвращается: при успехе Пример: |
name строка | Имя параметра сервера PostgreSQL. Возвращается: при успехе Пример: |
prev_val_pretty строка | Информация о предыдущем состоянии параметра. Возвращается: при успехе Пример: |
queries список / элементы=строка добавлено в community.postgresql 3.7.0 | Список выполненных запросов DML. Возвращается: при успехе Пример: |
restart_required логический | Информация о текущем состоянии параметра. Возвращается: при успехе Пример: |
value словарь | Словарь, содержащий текущее значение параметра (на момент завершения плейбука). Обратите внимание, что для фактического изменения некоторых параметров требуется перезапуск сервера PostgreSQL. В режиме проверки возвращается текущее значение. Возвращается: при успехе Пример: |
value_pretty строка | Информация о текущем состоянии параметра. Возвращается: при успехе Пример: |
Статус
- Этот модуль будет удалён в версии 5.0.0. [устарел]
- Дополнительные сведения см. в разделе УСТАРЕЛ.
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/postgresql/postgresql_set_module.html