community.postgresql.postgresql_pg_hba 模块 – 在 pg_hba 文件中添加、删除或修改规则
注意
此模块是 community.postgresql 集合 (版本 3.9.0) 的一部分。
如果您正在使用 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.postgresql
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:community.postgresql.postgresql_pg_hba
。
概要
该模块的基本功能是在 pg_hba 文件中创建或删除行。
文件中的行应采用典型的 pg_hba 格式,并且每行键(类型、数据库、用户、来源)都应唯一。如果它们不唯一,并且 SID 是“要更改的 SID”,则对于 *state=present* 只会保留一个 SID,而对于 *state=absent* 则不会保留任何 SID。
要求
执行此模块的主机需要以下要求。
ipaddress
参数
参数 |
注释 |
---|---|
连接可以从中发出的源地址/网络。 不会用于 *type*= 您还可以使用关键字 默认值: |
|
生成的档案对象应具有的属性。 要获取支持的标志,请查看目标系统上 *chattr* 的手册页。 此字符串应按 *lsattr* 显示的顺序包含属性。 默认情况下假定使用 |
|
如果设置,则在修改 选项
|
|
将备份写入特定的备份文件,而不是临时文件。 |
|
将放置在规则后面的同一行中的注释。另请参见 *keep_comments_at_rules* 参数。 |
|
规则的类型。如果未设置, 选项
|
|
如果不存在,则创建 如果设置为 false,则当 选项
|
|
此行适用的数据库。 默认值: |
|
要修改的 |
|
应拥有文件系统的组的名称,如同提供给 *chown* 一样。 如果未指定,则使用当前用户的当前组,除非您是 root 用户,在这种情况下,它可以保留之前的拥有者。 |
|
如果为 如果为 选项
|
|
要使用的身份验证方法。 选项
|
|
生成的档案对象应具有的权限。 对于习惯使用/usr/bin/chmod的用户来说,请记住模式实际上是八进制数。您必须向 Ansible 提供足够的信息才能正确解析它们。为了获得一致的结果,请用引号括起八进制数(例如, 如果不遵循以上任何规则,直接向 Ansible 提供数字,则最终会得到一个十进制数,这将导致意想不到的结果。 从 Ansible 1.8 开始,模式可以指定为符号模式(例如, 如果未指定 如果未指定 指定 |
|
源地址的网络掩码。 |
|
身份验证方法的其他选项。 |
|
在添加规则之前删除所有现有规则。(类似于所有预先存在的规则的state=absent。) 选项
|
|
应拥有文件系统对象的用户名,如同提供给chown一样。 如果未指定,则使用当前用户,除非您是 root 用户,在这种情况下,它可以保留之前的拥有者。 指定数字用户名将被认为是用户 ID 而不是用户名。避免使用数字用户名以避免此混淆。 |
|
对象列表,指定 pg_hba.conf 的规则。使用它可以一次管理多个规则。 每个对象都可以具有以下键(“特定于规则的参数”),这些键的处理方式与该模块的参数相同
另请参阅 |
|
配置rules参数如何与rules参数之外的特定于规则的参数一起工作。 有关特定于规则的参数的完整列表,请参阅rules。 设置为 如果为 仅当指定了rules时才使用,否则忽略。 选项
|
|
SELinux 文件系统对象上下文的级别部分。 这是 MLS/MCS 属性,有时称为 设置为 |
|
SELinux 文件系统对象上下文的角色部分。 设置为 |
|
SELinux 文件系统对象上下文的类型部分。 设置为 |
|
SELinux 文件系统对象上下文的用户部分。 默认情况下,它使用 设置为 |
|
当 选项
|
|
影响何时使用原子操作来防止目标文件系统对象的数据损坏或不一致读取。 默认情况下,此模块使用原子操作来防止目标文件系统对象的数据损坏或不一致读取,但有时系统的配置方式或本身存在问题,会阻止此操作。一个例子是 docker 挂载的文件系统对象,无法从容器内部以原子方式更新,只能以不安全的方式写入。 此选项允许 Ansible 在原子操作失败时回退到不安全的文件系统对象更新方法(但是,它不会强制 Ansible 执行不安全写入)。 重要!不安全写入容易出现竞争条件,并可能导致数据损坏。 选项
|
|
此行适用的用户。 默认值: |
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。 |
|
支持:完全支持 |
在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。 |
备注
注意
默认身份验证假设在主机上,您正在以具有读取和修改文件的适当权限的帐户登录或使用 sudo 命令登录。
此模块还返回 pg_hba 信息。您只需指定dest即可使用此模块仅检索它。信息可以在返回的数据中 key 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
返回值
常用返回值已记录在此处,以下是此模块独有的字段
键 |
描述 |
---|---|
原始 pg_hba 文件备份到的文件。 已返回:changed 示例: |
|
已执行操作的文本消息列表。 已返回:success 示例: |
|
pg_hba 规则的列表,它们已在指定 hba 文件中配置。 已返回:success 示例: |