Spec-Zone.ru › Ansible

community.postgresql.postgresql_set модуль – Изменение параметра конфигурации сервера PostgreSQL

Примечание

Этот модуль входит в коллекцию community.postgresql (версия 3.6.1).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля потребуются дополнительные требования. Подробнее см. Требования.

Для использования в плейбуке укажите: community.postgresql.postgresql_set.

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

Описание

  • Позволяет изменить параметр конфигурации сервера 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

строка

Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA).

Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров.

connect_params

словарь

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

Дополнительные параметры, которые необходимо передать libpg.

Эти параметры имеют приоритет.

По умолчанию: {}

db

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

строка

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

login_host

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

строка

Хост, на котором работает база данных.

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

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

login_password

строка

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

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

login_unix_socket

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

строка

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

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

login_user

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

строка

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

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

name

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

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

port

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

целое число

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

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

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 в книге сценариев всегда возвращается, что изменения произошли.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз изменения состояния без изменения целевого объекта.

Примечания

Примечание

  • Поддерживаемая версия PostgreSQL — 9.4 и выше.
  • Обратите внимание, что изменение настроек с контекстом «postmaster» может вернуть changed=true, даже если фактически ничего не изменилось, так как одно и то же значение может быть представлено в различных форматах, например, 1024MB, 1GB и т. д. Однако в представлении pg_settings оно может быть определено как число 131072 страниц по 8 КБ. Окончательная проверка значения параметра невозможна, так как сервер не был перезапущен, а значение в pg_settings еще не обновлено.
  • Для некоторых параметров требуется перезапуск сервера PostgreSQL. См. официальную документацию https://www.postgresql.org/docs/current/view-pg-settings.html.
  • По умолчанию используется аутентификация, предполагающая вход под учетной записью postgres на хосте или использование sudo.
  • Для предотвращения ошибки «Ошибка аутентификации Peer для пользователя postgres» используйте пользователя postgres в качестве become_user.
  • Этот модуль использует psycopg, адаптер базы данных PostgreSQL для Python. Необходимо убедиться, что psycopg2 >= 2.5.1 или psycopg3 >= 3.1.8 установлены на хосте перед использованием данного модуля.
  • Если удаленный хост — сервер PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удаленном хосте.
  • Для систем на основе Ubuntu необходимо установить пакеты postgresql, libpq-dev и python3-psycopg2 на удаленном хосте перед использованием данного модуля.

См. также

См. также

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.

Возвращаемое значение: success

Пример: "user"

name

строка

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

Возвращаемое значение: success

Пример: "shared_buffers"

prev_val_pretty

строка

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

Возвращаемое значение: success

Пример: "4MB"

restart_required

логическое

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

Возвращаемое значение: success

Пример: true

value

словарь

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

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

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

Возвращаемое значение: success

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

value_pretty

строка

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

Возвращаемое значение: success

Пример: "64MB"

Авторы

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

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

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

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_set_module.html

Spec-Zone.ru

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