community.postgresql.postgresql_pg_hba — добавление, удаление или изменение правила в файле pg_hba
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_pg_hba.
Краткое описание
- Основная функция модуля — создавать или удалять строки в файлах pg_hba.
- Строки в файле должны иметь стандартный формат pg_hba и быть уникальными для каждого набора ключей (type, databases, users, source). Если они не уникальны и SID — «тот, который нужно изменить», для SID останется только одна запись при state=present или не останется ни одной при state=absent.
Требования
Следующие требования должны быть выполнены на хосте, где запускается этот модуль.
- ipaddress
Параметры
Параметр | Комментарии |
|---|---|
address псевдонимы: source, src строка | Исходный адрес/сеть, откуда могут поступать подключения. Не используется для записей с type= Также можно использовать ключевые слова По умолчанию: |
attributes псевдоним: attr строка | Атрибуты, которыми должен обладать результирующий объект файловой системы. Список поддерживаемых флагов см. на целевой системе в справочной странице для Эта строка должна содержать атрибуты в том же порядке, в каком они отображаются командой По умолчанию предполагается оператор |
backup логическое значение | Если параметр включён, перед изменением файла Варианты:
|
backup_file строка | Сохранить резервную копию в указанный файл, а не во временный. |
comment строка добавлено в community.postgresql 1.5.0 | Комментарий, который будет размещён в той же строке после правила. См. также параметр keep_comments_at_rules. |
contype строка | Тип правила. Если не задан, Варианты:
|
create логическое значение | Создать файл Если значение — false, при отсутствии файла Варианты:
|
databases строка | Базы данных, к которым применяется эта строка. По умолчанию: |
dest путь / обязательный | Путь к файлу |
group строка | Имя группы — владельца объекта файловой системы; значение передаётся команде Если параметр не задан, используется текущая группа текущего пользователя, за исключением случая, когда пользователь — root: тогда может быть сохранён прежний владелец. |
keep_comments_at_rules логическое значение добавлено в community.postgresql 1.5.0 | Этот параметр объявлен устаревшим и ничего не делает. Модуль работает так, как если бы было задано Варианты:
|
method строка | Используемый метод аутентификации. Варианты:
|
mode любой | Права доступа, которыми должен обладать результирующий объект файловой системы. Если вы привыкли к Если передать Ansible число, не соблюдая ни одно из этих правил, оно будет интерпретировано как десятичное, что может привести к неожиданным результатам. Начиная с Ansible 1.8 режим можно задавать в символьном формате (например, Если Если Указание |
netmask строка | Маска подсети исходного адреса. |
options строка | Дополнительные параметры метода аутентификации method. |
overwrite логическое значение | Удалить все существующие правила перед добавлением новых. (Аналогично state=absent для всех существовавших ранее правил.) Игнорирует все ошибки в существующем файле. Варианты:
|
owner строка | Имя пользователя — владельца объекта файловой системы; значение передаётся команде Если параметр не задан, используется текущий пользователь, за исключением случая, когда пользователь — root: тогда может быть сохранён прежний владелец. Числовое имя пользователя будет считаться идентификатором пользователя, а не именем. Во избежание неоднозначности не используйте числовые имена пользователей. |
rules список / элементы=словарь | Список объектов с правилами для pg_hba.conf. Используйте его для управления несколькими правилами одновременно. Каждый объект может содержать следующие ключи («аргументы для конкретного правила»), которые обрабатываются так же, как если бы они были аргументами этого модуля:
См. также |
rules_behavior строка | Настройка взаимодействия аргумента rules с аргументами для конкретного правила, указанными вне аргумента rules. Полный список аргументов для конкретного правила см. в описании параметра rules. Если задано значение При значении Используется только при задании rules; в противном случае игнорируется. Варианты:
|
selevel строка | Часть уровня контекста SELinux объекта файловой системы. Это атрибут MLS/MCS, также иногда называемый Если задано значение |
serole строка | Часть роли контекста SELinux объекта файловой системы. Если задано значение |
setype строка | Часть типа контекста SELinux объекта файловой системы. Если задано значение |
seuser строка | Часть пользователя контекста SELinux объекта файловой системы. По умолчанию, если применимо, используется политика Если задано значение |
sort_rules логическое значение добавлено в community.postgresql 3.11.0 | Сортирует правила в файле только при необходимости внести изменения. Правила сортируются так, чтобы более конкретные располагались выше. Например, правило для одного хоста будет стоять выше правила для диапазона IP-адресов. Порядок правил важен, поскольку они проверяются сверху вниз и используется первое совпавшее правило. Это значит, что изменение порядка правил в файле может повлиять на поведение вашего экземпляра. Комментарии будут перемещены в начало, директивы include — в конец, а пустые строки удалены. Рекомендую отключить этот параметр при управлении файлом, который вручную редактируется, а также если порядок указанных вами правил имеет значение. Варианты:
|
state строка | Строки добавляются/изменяются при значении Варианты:
|
unsafe_writes логическое значение | Определяет, когда использовать атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевого объекта файловой системы. По умолчанию этот модуль использует атомарные операции, чтобы предотвратить повреждение данных и несогласованное чтение из целевых объектов файловой системы, однако иногда настройки систем или их неисправность делают это невозможным. Например, смонтированные в Docker объекты файловой системы нельзя атомарно обновить из контейнера — их можно записать только небезопасным способом. Этот параметр позволяет Ansible при сбое атомарных операций перейти к небезопасным способам обновления объектов файловой системы (однако он не заставляет Ansible выполнять небезопасную запись). ВАЖНО! Небезопасная запись подвержена состояниям гонки и может привести к повреждению данных. Варианты:
|
users строка | Пользователи, к которым применяется эта строка. По умолчанию: |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме check_mode и возвращать прогноз изменения статуса, не изменяя целевой объект |
diff_mode | Поддержка: полная | В режиме diff возвращает сведения об изменениях (или о предполагаемых изменениях в режиме check_mode) |
Примечания
Примечание
- По умолчанию предполагается, что на хосте вы вошли в систему или переключились с помощью sudo на учётную запись с необходимыми правами для чтения и изменения файла.
- Этот модуль также возвращает сведения pg_hba. Чтобы получить их, укажите только dest. Данные находятся в возвращаемом списке под ключом pg_hba; для каждого правила содержится отдельный словарь.
- Если требуется изменить правило, этот модуль сортирует результирующие файлы
pg_hba. При неправильно отсортированных файлах hba, созданных вручную, результат может оказаться неожиданным. Например, сначала создано правило для сети, а затем — для IP-адреса в диапазоне этой сети. В таком случае «правило для конкретного IP-адреса» никогда не сработает, поскольку в файлеpg_hbaоно устарело. После того как модуль community.postgresql.postgresql_pg_hba перезапишет файлpg_hba, правило для конкретного IP-адреса будет перемещено выше правила для диапазона. После этого оно сработает, что может привести к неожиданным результатам.
См. также
См. также
- Справочник по файлу PostgreSQL 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. Возвращается: при изменении Пример: |
msgs список / элементы=строка | Список текстовых сообщений о выполненных действиях. Возвращается: при успешном выполнении Пример: |
pg_hba список / элементы=строка | Список правил pg_hba в том виде, в котором они настроены в указанном файле hba. Возвращается: при успешном выполнении Пример: |
pg_hba_string строка | Содержимое файла pg_hba после завершения работы модуля. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 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_pg_hba_module.html