Spec-Zone.ru › Ansible

Модуль 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

строка

Имя базы данных для подключения.

Псевдоним db устарел и будет удалён в версии 5.0.0.

login_host

псевдонимы: host

строка

Узел, на котором запущена база данных.

Если при использовании localhost возникают проблемы с подключением, попробуйте вместо него использовать 127.0.0.1.

По умолчанию: ""

login_password

строка

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

По умолчанию: ""

login_port

псевдонимы: port

целое число

Порт базы данных для подключения.

Псевдоним port устарел и будет удалён в следующем основном выпуске. Вместо него используйте login_port.

По умолчанию: 5432

login_unix_socket

псевдонимы: unix_socket

строка

Путь к доменному сокету Unix для локальных подключений.

По умолчанию: ""

login_user

псевдонимы: login

строка

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

По умолчанию: "postgres"

name

строка / обязательный

Имя параметра сервера PostgreSQL. Обратите внимание, что параметры чувствительны к регистру (см. примеры ниже).

reset

логический

Восстановить исходное значение параметра (boot_val). Несовместим с value.

Варианты:

  • false ← (по умолчанию)
  • true

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.

Значение по умолчанию prefer соответствует значению libpq по умолчанию.

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

trust_input

логический

добавлено в community.postgresql 0.2.0

Если false, проверять, не являются ли значения параметров потенциально опасными.

Использовать false имеет смысл только при возможности SQL-инъекций.

Варианты:

  • false
  • true ← (по умолчанию)

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.

Возвращается: при успехе

Пример: "user"

name

строка

Имя параметра сервера PostgreSQL.

Возвращается: при успехе

Пример: "shared_buffers"

prev_val_pretty

строка

Информация о предыдущем состоянии параметра.

Возвращается: при успехе

Пример: "4MB"

queries

список / элементы=строка

добавлено в community.postgresql 3.7.0

Список выполненных запросов DML.

Возвращается: при успехе

Пример: ["ALTER SYSTEM SET shared_preload_libraries = ''"]

restart_required

логический

Информация о текущем состоянии параметра.

Возвращается: при успехе

Пример: true

value

словарь

Словарь, содержащий текущее значение параметра (на момент завершения плейбука).

Обратите внимание, что для фактического изменения некоторых параметров требуется перезапуск сервера PostgreSQL.

В режиме проверки возвращается текущее значение.

Возвращается: при успехе

Пример: {"unit": "b", "value": 67108864}

value_pretty

строка

Информация о текущем состоянии параметра.

Возвращается: при успехе

Пример: "64MB"

Статус

  • Этот модуль будет удалён в версии 5.0.0. [устарел]
  • Дополнительные сведения см. в разделе УСТАРЕЛ.

Авторы

  • Andrew Klychkov (@Andersson007)
  • Daniele Giudice (@RealGreenDragon)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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

Spec-Zone.ru

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