community.general.postgresql_pg_hba – Добавить, удалить или изменить правило в файле pg_hba
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.postgresql_pg_hba.
Обзор
- Основной функцией модуля является создание или удаление строк в файлах pg_hba.
- Строки в файле должны быть в типичном формате pg_hba, а строки должны быть уникальными по ключу (тип, базы данных, пользователи, источник). Если они не уникальны, и SID — это тот, который нужно изменить, то только одна строка для
state=presentили ни одной дляstate=absentиз SID останется.
Требования
Нижеперечисленные требования необходимы на хосте, который выполняет этот модуль.
- ipaddress
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| address строка | Значение по умолчанию: "samehost" | Адрес источника/сеть, откуда могут поступать подключения. Не будет использоваться для записей типа= local. Также можно использовать ключевые слова all, samehost, и samenet. псевдонимы: source, src |
| attributes строка добавлен в 2.3 ansible.builtin | Атрибуты, которые должен иметь результирующий файл или директория. Для просмотра поддерживаемых флагов смотрите руководство по chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.псевдонимы: attr | |
| backup булево |
| Если установлено, создаёт резервную копию файла pg_hba перед его модификацией. Местоположение резервной копии возвращается в переменную (backup) этим модулем. |
| backup_file строка | Записывает резервную копию в указанный файл, а не в временный. | |
| contype строка |
| Тип правила. Если не указан, postgresql_pg_hba вернёт только содержимое. |
| create булево |
| Создать файл pg_hba, если он не существует.Если установлено в значение false, при отсутствии файла pg_hba возникает ошибка. |
| databases строка | Значение по умолчанию: "all" | Базы данных, к которым относится это правило. |
| dest путь / обязательно | Путь к файлу pg_hba для модификации. | |
| group строка | Имя группы, которая должна владеть файлом/директорией, как передаётся в chown. | |
| method строка |
| Метод аутентификации, который необходимо использовать. |
| mode сырой | Права, которые должна иметь результирующая папка или файл. Для тех, кто привык к /usr/bin/chmod, помните, что режимы — это фактически восьмеричные числа. Вам нужно либо добавить ведущую ноль, чтобы Ansible's YAML-парсер знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') так, чтобы Ansible получил строку и выполнил собственное преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведёт к десятичному числу, что приведёт к неожиданным результатам. Начиная с Ansible 1.8, режим может быть указан в символическом виде (например, u+rwx или u=rw,g=r,o=r). | |
| netmask строка | Маска сети для адреса источника. | |
| options строка | Дополнительные параметры для метода аутентификации. | |
| order строка |
| Строки будут выводиться в определённом порядке. С помощью этого параметра можно контролировать, по какому полю они будут сортироваться в первую, вторую и последнюю очередь. s=источник, d=базы данных, u=пользователи. Этот параметр устарел с версии 2.9 и будет удалён в community.general 3.0.0. Сортировка по умолчанию теперь жёстко задана как sdu. |
| owner строка | Имя пользователя, который должен владеть файлом/директорией, как передаётся в chown. | |
| selevel строка | Часть уровня 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 булево добавлен в 2.2 ansible.builtin |
| Влияет на то, когда использовать атомную операцию, чтобы предотвратить повреждение данных или несогласованные чтения из целевого файла. По умолчанию этот модуль использует атомные операции, чтобы предотвратить повреждение данных или несогласованные чтения из целевых файлов, но иногда системы настроены или просто сломаны так, что это невозможно. Одним примером являются файлы, смонтированные в Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только в небезопасном режиме. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомные операции завершаются неудачно (однако, он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| users строка | Значение по умолчанию: "all" | Пользователи, к которым относится это правило. |
Примечания
Примечание
- По умолчанию аутентификация предполагает, что на хосте вы вошли или запустили программу с правами на чтение и изменение файла.
- Этот модуль также возвращает информацию pg_hba. Можно использовать этот модуль только для извлечения информации, указав только параметр dest. Информация находится в возвращаемых данных под ключом pg_hba, являющимся списком, содержащим словарь на правило.
- Этот модуль отсортирует результирующие файлы
pg_hba, если требуется изменение правила. Это может привести к неожиданным результатам с вручную созданными файлами hba, если они были неправильно отсортированы. Например, правило было создано для сети сначала, а затем для IP-адреса в этом диапазоне. В этом случае правило для конкретного IP никогда не будет выполнено, так как в файлеpg_hbaоно устарело. После перезаписи файлаpg_hbaмодулем community.general.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.
community.general.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.general.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.general.postgresql_pg_hba:
dest: /var/lib/postgres/data/pg_hba.conf
contype: local
users: mary
databases: mydb
state: absent
Значения возврата
Общие значения возвращаемых данных описаны здесь, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| backup_file string | изменённое | Файл, в который был создан резервный копий исходного файла pg_hba Пример: /tmp/pg_hba_jxobj_p |
| msgs list / elements=string | всегда | Список текстовых сообщений о выполнении действий Пример: {'msgs': ['Удаление', 'Изменение', 'Запись']} |
| pg_hba list / elements=string | всегда | Список правил pg_hba, как они настроены в указанном файле hba Пример: {'pg_hba': [{'db': 'all', 'method': 'md5', 'src': 'samehost', 'type': 'host', 'usr': 'all'}]} |
Авторы
- 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.10/collections/community/general/postgresql_pg_hba_module.html