postgresql_pg_hba – Добавить, удалить или изменить правило в файле pg_hba
Новая версия 2.8.
Описание
- Основная функция модуля — создание или удаление строк в файлах pg_hba.
- Строки в файле должны иметь типичный формат pg_hba, а строки должны быть уникальными по ключу (тип, базы данных, пользователи, источник). Если они не уникальны и SID — это тот, который нужно изменить, то только один для
state=presentили ни один дляstate=absentSID останутся.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- ipaddress
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| address строка | По умолчанию: "samehost" | Адрес источника/сеть, откуда могут поступать подключения. Не будет использоваться для записей типа type= local.Вы также можете использовать ключевые слова all, samehost, и samenet.Псевдонимы: source, src |
| attributes строка добавлен в 2.3 | Атрибуты, которые должен иметь результирующий файл или каталог. Для получения поддерживаемых флагов см. руководство по 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=пользователи. |
| 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 логическое значение добавлен в 2.2 |
| Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это не работает. Примером является файлы, монтированные в Docker, которые не могут обновляться атомарно изнутри контейнера и могут быть записаны только неатомарным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции не выполняются (однако, он не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены проблемам гонок и могут привести к повреждению данных. |
| users - | По умолчанию: "все" | Пользователи, к которым относится эта строка. |
Примечания
Примечание
- По умолчанию аутентификация предполагает, что на хосте вы вошли в систему или использовали sudo для учетной записи с соответствующими правами на чтение и изменение файла.
- Этот модуль также возвращает информацию pg_hba. Вы можете использовать этот модуль для извлечения только этой информации, указав только параметр dest. Информация будет доступна в возвращаемых данных под ключом pg_hba, представляющим собой список, содержащий словарь на каждую запись.
- Этот модуль отсортирует полученные
pg_hbaфайлы, если требуется изменение правил. Это может привести к неожиданным результатам с вручную созданными файлами hba, если они были некорректно отсортированы. Например, если правило было создано для сети сначала, а затем для IP-адресов в этом диапазоне, то правило, специфичное для IP-адреса, никогда не будет срабатывать, так как оно будет вpg_hbaфайле устаревшим. После переписыванияpg_hbaфайла модулем postgresql_pg_hba правило, специфичное для IP-адреса, будет отсортировано выше правила для диапазона. В этом случае оно будет срабатывать, что приведет к неожиданным результатам. - С параметром «order» можно управлять тем, какое поле используется для сортировки сначала, потом и в последнюю очередь.
- Модуль поддерживает режим проверки и режим сравнения.
Примеры
- 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': 'все', 'method': 'md5', 'src': 'samehost', 'type': 'host', 'usr': 'все'}]} |
Статус
- Данный модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом 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.8/modules/postgresql_pg_hba_module.html