Spec-Zone.ru › Ansible

Модуль community.postgresql.postgresql_pg_hba — Добавление, удаление или изменение правила в файле pg_hba

Примечание

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

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

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

Чтобы использовать его в плейбуке, укажите: community.postgresql.postgresql_pg_hba.

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

Описание

  • Основная функция модуля — создание или удаление строк в файле pg_hba.
  • Строки в файле должны соответствовать обычному формату pg_hba, и строки должны быть уникальными по ключу (тип, базы данных, пользователи, источник). Если они не уникальны и SID — это тот, который нужно изменить, то останется только один для state=present или ни одного для state=absent данного SID.

Требования

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

  • ipaddress
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

адрес

псевдонимы: source, src

строка

Адрес/сеть источника, откуда могут поступать подключения.

Не будет использоваться для записей типа type=local.

Также можно использовать ключевые слова all, samehost, и samenet.

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

атрибуты

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

строка

Атрибуты, которые должен иметь полученный объект файловой системы.

Чтобы узнать поддерживаемые флаги, см. страницу руководства для chattr на целевой системе.

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

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

резервная копия

логический тип

Если установлено, создайте резервную копию файла pg_hba перед его изменением. Путь к резервной копии возвращается в переменной (backup) этим модулем.

Варианты:

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

файл_резервной_копии

строка

Сохранить резервную копию в определенном файле, а не в временном файле.

комментарий

строка

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

Комментарий, который будет помещен в той же строке за правилом. См. также параметр keep_comments_at_rules.

тип_соединения

строка

Тип правила. Если не задан, postgresql_pg_hba вернет только содержимое.

Варианты:

  • "local"
  • "host"
  • "hostnossl"
  • "hostssl"
  • "hostgssenc"
  • "hostnogssenc"

создать

логический тип

Создать файл pg_hba , если он не существует.

Если установлено в значение false, возникает ошибка, если файл pg_hba не существует.

Варианты:

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

базы_данных

строка

Базы данных, к которым относится эта строка.

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

dest

путь / обязательно

Путь к файлу pg_hba для изменения.

группа

строка

Имя группы, которая должна владеть объектом файловой системы, как это передается в chown.

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

сохранить_комментарии_в_правилах

логический тип

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

Если true, комментарии, которые стоят вместе с правилом в одной строке, сохраняются за этой строкой.

Если false, такие комментарии перемещаются в начало файла, как и все остальные комментарии.

Варианты:

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

метод

строка

Метод аутентификации, который следует использовать.

Варианты:

  • "cert"
  • "gss"
  • "ident"
  • "krb5"
  • "ldap"
  • "md5" ← (по умолчанию)
  • "pam"
  • "password"
  • "peer"
  • "radius"
  • "reject"
  • "scram-sha-256"
  • "sspi"
  • "trust"

режим

любой

Права, которые должен иметь полученный объект файловой системы.

Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны предоставить Ansible достаточно информации, чтобы правильно их разобрать. Для согласованных результатов заключайте восьмеричные числа в кавычки (например, '644' или '1777') для того, чтобы Ansible получил строку и смог выполнить собственное преобразование из строки в число. Добавление ведущей нули (например, 0755) иногда работает, но может завершиться неудачей в циклах и некоторых других ситуациях.

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

Начиная с Ansible 1.8, режим может быть указан как символический режим (например, u+rwx или u=rw,g=r,o=r).

Если mode не указан и целевой объект файловой системы не существует, то значение umask на системе будет использоваться при установке режима для вновь созданного объекта файловой системы.

Если mode не указан и целевой объект файловой системы существует, то режим существующего объекта файловой системы будет использован.

Указание mode — лучший способ гарантировать, что объекты файловой системы создаются с правильными разрешениями. См. CVE-2020-1736 для получения дополнительной информации.

маска_сети

строка

Маска сети для исходного адреса.

опции

строка

Дополнительные параметры для метода аутентификации метод.

overwrite

boolean

Удалить все существующие правила перед добавлением новых. (Аналогично state=absent для всех существующих правил.)

Варианты:

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

owner

string

Имя пользователя, который должен владеть файловым объектом, как это передаётся в chown.

Если не указано, используется текущий пользователь, если вы не root, в этом случае сохраняется предыдущее владение.

Указание числового имени пользователя предполагается как идентификатор пользователя, а не имя пользователя. Избегайте числовых имён пользователей, чтобы избежать путаницы.

rules

list / elements=dictionary

Список объектов, определяющих правила для pg_hba.conf. Используйте для управления несколькими правилами одновременно.

Каждый объект может иметь следующие ключи («аргументы, специфичные для правил»), которые обрабатываются так же, как и аргументы этого модуля:

address, comment, contype, databases, method, netmask, options, state, users

См. также rules_behavior.

rules_behavior

string

Настройка того, как аргумент rules работает совместно с аргументами, специфичными для правил, за пределами аргумента rules.

См. rules для полного списка аргументов, специфичных для правил.

При значении conflict, вызовите ошибку, если rules и, например, address установлены.

Если combine, обычные аргументы, специфичные для правил, не определяют правило, а используются в качестве значений по умолчанию для аргументов в аргументе rules.

Используется только при указании rules, в противном случае игнорируется.

Варианты:

  • "conflict" ← (по умолчанию)
  • "combine"

selevel

string

Часть уровня контекста файлового объекта SELinux.

Это атрибут MLS/MCS, иногда известный как range.

При значении _default, используется часть политики level при её наличии.

serole

string

Часть роли контекста файлового объекта SELinux.

При значении _default, используется часть политики role при её наличии.

setype

string

Часть типа контекста файлового объекта SELinux.

При значении _default, используется часть политики type при её наличии.

seuser

string

Часть пользователя контекста файлового объекта SELinux.

По умолчанию используется политика system, где применимо.

При значении _default, используется часть политики user при её наличии.

state

string

Строки будут добавлены/изменены при значении state=present и удалены при значении state=absent.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

unsafe_writes

boolean

Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файлового объекта.

По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файловых объектов, но иногда системы настроены или просто не работают таким образом, что это не возможно. Один пример - смонтированные файловые объекты docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным образом.

Этот параметр позволяет Ansible переходить к небезопасным методам обновления файловых объектов, когда атомарные операции завершаются неудачей (хотя он не принуждает Ansible выполнять небезопасные записи).

ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных.

Варианты:

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

users

string

Пользователи, к которым относится эта строка.

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

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

Возвращает подробности изменений (или, возможно, необходимых изменений в режиме check_mode) при использовании diff-режима

Примечания

Примечание

  • По умолчанию аутентификация предполагает, что на хосте вы входите как или используете sudo для учётной записи с соответствующими правами чтения и изменения файла.
  • Этот модуль также возвращает информацию pg_hba. Вы можете использовать этот модуль только для получения этой информации, указав только dest. Информация находится в возвращаемых данных под ключом pg_hba, представляющим собой список, содержащий словарь на правило.
  • Этот модуль отсортирует полученные pg_hba файлы, если требуются изменения правил. Это может привести к непредсказуемым результатам при работе с вручную созданными файлами hba, если они неправильно отсортированы. Например, правило было создано для сети сначала, а затем для IP-адреса в этом диапазоне. В этой ситуации правило для IP-адреса никогда не будет срабатывать, оно устареет в файле pg_hba. После того, как файл pg_hba будет перезаписан модулем community.postgresql.postgresql_pg_hba, правило для IP-адреса будет отсортировано выше правила для диапазона. И тогда оно сработает, что даст непредсказуемые результаты.

См. также

См. также

Ссылка на файл PostGres pg_hba.conf

Полное руководство по документации файла PostgreSQL pg_hba.conf.

Примеры

- name: Grant users joe and simon access to databases sales and logistics from ipv6 localhost ::1/128 using peer authentication
  community.postgresql.postgresql_pg_hba:
    dest: /var/lib/postgres/data/pg_hba.conf
    contype: host
    users: joe,simon
    source: ::1
    databases: sales,logistics
    method: peer
    create: true

- name: Grant user replication from network 192.168.0.100/24 access for replication with client cert authentication
  community.postgresql.postgresql_pg_hba:
    dest: /var/lib/postgres/data/pg_hba.conf
    contype: host
    users: replication
    source: 192.168.0.100/24
    databases: replication
    method: cert

- name: Revoke access from local user mary on database mydb
  community.postgresql.postgresql_pg_hba:
    dest: /var/lib/postgres/data/pg_hba.conf
    contype: local
    users: mary
    databases: mydb
    state: absent

- name: Grant some_user access to some_db, comment that and keep other rule-specific comments attached to their rules
  community.postgresql.postgresql_pg_hba:
    dest: /var/lib/postgres/data/pg_hba.conf
    contype: host
    users: some_user
    databases: some_db
    method: md5
    source: ::/0
    keep_comments_at_rules: true
    comment: "this rule is an example"

- name: Replace everything with a new set of rules
  community.postgresql.postgresql_pg_hba:
    dest: /var/lib/postgres/data/pg_hba.conf
    overwrite: true # remove preexisting rules

    # custom defaults
    rules_behavior: combine
    contype: hostssl
    address: 2001:db8::/64
    comment: added in bulk

    rules:
    - users: user1
      databases: db1
      # contype, address and comment come from custom default
    - users: user2
      databases: db2
      comment: added with love # overwrite custom default for this rule
      # contype and address come from custom default
    - users: user3
      databases: db3
      # contype, address and comment come from custom default

Значения возвращаемых данных

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

Ключ

Описание

backup_file

строка

Файл, в который был создан резервный копий файла pg_hba.

Возвращается: changed

Пример: "/tmp/pg_hba_jxobj_p"

msgs

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

Список текстовых сообщений о проделанной работе.

Возвращается: success

Пример: {"msgs": ["Removing", "Changed", "Writing"]}

pg_hba

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

Список правил pg_hba, как они настроены в указанном файле hba.

Возвращается: success

Пример: {"pg_hba": [{"db": "all", "method": "md5", "src": "samehost", "type": "host", "usr": "all"}]}

Авторы

  • Sebastiaan Mannem (@sebasmannem)
  • Felix Hamme (@betanummeric)

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

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

© 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_pg_hba_module.html

Spec-Zone.ru

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