postgresql_pg_hba – Добавить, удалить или изменить правило в файле pg_hba
Новое в версии 2.8.
Описание
- Основная функция модуля — создание или удаление строк в файлах pg_hba.
- Строки в файле должны быть в типичном формате pg_hba, а строки должны быть уникальными по ключу (тип, базы данных, пользователи, источник). Если они не уникальны, и SID — это тот, который нужно изменить, то только одна строка для
state=presentили ни одной дляstate=absentиз SID останется.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- ipaddress
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| address строка | Значение по умолчанию: "samehost" | Адрес источника/сеть, откуда могут поступать подключения. Не будет использоваться для записей типа type= local.Вы также можете использовать ключевые слова all, samehost, и samenet.псевдонимы: source, src |
| attributes строка | Атрибуты, которые должен иметь результирующий файл или каталог. Чтобы получить поддерживаемые флаги, обратитесь к справке по chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе команды lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - необходимо включить в строку.псевдонимы: attr | |
| backup булево |
| Если установлено, создается резервная копия файла pg_hba перед его изменением. Путь к резервной копии возвращается в переменную (backup) этим модулем. |
| backup_file строка | Записать резервную копию в определённый файл, а не во временный файл. | |
| contype строка |
| Тип правила. Если не задано, то postgresql_pg_hba вернёт только содержимое. |
| create булево |
| Создать файл pg_hba если он не существует.Если установлено в значение false, возникает ошибка, когда файл pg_hba не существует. |
| databases строка | Значение по умолчанию: "все" | Базы данных, к которым относится эта строка. |
| dest путь / обязательно | Путь к файлу pg_hba для изменения. | |
| group строка | Имя группы, которая должна владеть файлом/каталогом, как и при использовании команды chown. | |
| method строка |
| Метод аутентификации, который необходимо использовать. |
| mode строка | Разрешения, которые должен иметь результирующий файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы можете либо добавить ведущую ноль, чтобы интерпретатор YAML Ansible понял, что это восьмеричное число (как 0644 или 01777), или заключить его в кавычки (как '644' или '1777'), чтобы Ansible получил строку и выполнил преобразование из строки в число.Если вы передадите Ansible число без одного из этих правил, это будет десятичное число, что приведёт к непредсказуемым результатам. Начиная с Ansible 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r). | |
| netmask строка | Маска сети адреса источника. | |
| options строка | Дополнительные параметры для метода аутентификации method. | |
| order - |
| Записи будут выведены в определенном порядке. С помощью этого параметра можно контролировать, по какому полю они будут отсортированы в первую, вторую и последнюю очередь. s=источник, d=базы данных, u=пользователи. Этот параметр устарел с версии 2.9 и будет удален в версии 2.11. Теперь сортировка по умолчанию задана как sdu. |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как и при использовании команды chown. | |
| selevel строка | Значение по умолчанию: "s0" | Часть уровня SELinux контекста файла. Это атрибут MLS/MCS, иногда известный как range. Если установлено в _default, будет использована часть политики level, если она доступна. |
| serole строка | Часть роли контекста файла SELinux. Если установлено в _default, будет использована часть политики role, если она доступна. | |
| setype строка | Часть типа контекста файла SELinux. Если установлено в _default, будет использована часть политики type, если она доступна. | |
| seuser строка | Часть пользователя контекста файла SELinux. По умолчанию используется политика system, если применимо.Если установлено в _default, будет использована часть политики user, если она доступна. | |
| state - |
| Строки будут добавлены/изменены, когда state=present, и удалены, когда state=absent. |
| unsafe_writes булево |
| Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним из примеров являются файлы, смонтированные через docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только неатомарно. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции не удаются (хотя он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| users - | Значение по умолчанию: "все" | Пользователи, к которым относится эта строка. |
Примечания
Примечание
- По умолчанию аутентификация предполагает, что на хосте вы вошли в систему как пользователь с соответствующими правами на чтение и изменение файла или используете sudo.
- Этот модуль также возвращает информацию pg_hba. Вы можете использовать этот модуль для получения только этой информации, указав только параметр dest. Информация находится в возвращаемых данных под ключом pg_hba, являющимся списком, содержащим словарь на правило.
- Этот модуль будет сортировать полученные
pg_hbaфайлы, если требуется изменение правила. Это может привести к неожиданным результатам при использовании вручную созданных файлов hba, если они не отсортированы должным образом. Например, правило создано для сети, а затем для IP-адреса в этом диапазоне. В этом случае правило для конкретного IP-адреса никогда не будет применено, оно считается устаревшим в файлеpg_hba. После перезаписи файлаpg_hbaмодулем postgresql_pg_hba правило для конкретного IP-адреса будет отсортировано выше правила для диапазона. И тогда оно будет применено, что приведёт к неожиданным результатам. - С помощью параметра «order» можно управлять тем, какое поле используется для первой, следующей и последней сортировки.
- Модуль поддерживает режим проверки и режим сравнения.
См. также
См. также
- Ссылка на страницу документации файла 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.
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.
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.
postgresql_pg_hba:
dest: /var/lib/postgres/data/pg_hba.conf
contype: local
users: mary
databases: mydb
state: absent
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| backup_file строка | изменено | Файл, в который был сделан резервный копий исходного файла pg_hba Пример: /tmp/pg_hba_jxobj_p |
| msgs список | всегда | Список текстовых сообщений о выполненных действиях Пример: {'msgs': ['Удаление', 'Изменено', 'Запись']} |
| pg_hba список | всегда | Список правил pg_hba, как они настроены в указанном файле hba Пример: {'pg_hba': [{'db': 'all', 'method': 'md5', 'src': 'samehost', 'type': 'host', 'usr': 'all'}]} |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Sebastiaan Mannem (@sebasmannem)
Подсказка
Если вы заметили какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/postgresql_pg_hba_module.html