community.postgresql.postgresql_pg_hba – Добавление, удаление или изменение правила в файле pg_hba
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.0.0).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач, укажите: community.postgresql.postgresql_pg_hba.
Описание
- Основная функция модуля — создание или удаление строк в файлах pg_hba.
- Строки в файле должны иметь типичный формат pg_hba, и строки должны быть уникальными по ключу (тип, базы данных, пользователи, источник). Если они не уникальны, и SID — это то, что нужно изменить, то только одна строка для
state=presentили ни одной дляstate=absentиз SID останется.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- ipaddress
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| address строка | Значение по умолчанию: "samehost" | Адрес источника/сеть, откуда могут поступать подключения. Не будет использоваться для записей типа type= 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 parser знал, что это восьмеричное число (например, 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 и будет удалён в версии community.postgresql 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" | Пользователи, к которым относится эта строка. |
Примечания
Примечание
- По умолчанию аутентификация предполагает, что на хосте вы вошли как или используете sudo для аккаунта с соответствующими правами на чтение и изменение файла.
- Этот модуль также возвращает информацию pg_hba. Вы можете использовать этот модуль только для извлечения его, указав только dest. Информация может быть найдена в возвращаемых данных под ключом pg_hba, являющимся списком, содержащим словарь на правило.
- Этот модуль будет сортировать результирующие
pg_hbaфайлы, если требуется изменение правила. Это может привести к непредсказуемым результатам с вручную созданными файлами hba, если они не были отсортированы должным образом. Например, правило было создано для сети сначала, а затем для IP в этом диапазоне. В таком случае, правило для конкретного IP никогда не будет срабатывать, оно находится в файлеpg_hbaустаревшим. После перезаписи файлаpg_hbaмодулем community.postgresql.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.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
Значения возврата
Общие значения возвращаемых данных описаны здесь, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| 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/postgresql/postgresql_pg_hba_module.html