community.general.ipa_hbacrule 模块 – 管理 FreeIPA HBAC 规则

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.general

要在剧本中使用它,请指定: community.general.ipa_hbacrule

概要

  • 使用 IPA API 添加、修改或删除 IPA HBAC 规则。

参数

参数

注释

cn

别名:name

字符串 / 必需

规范名称。

由于它是唯一标识符,因此无法更改。

description

字符串

描述

host

列表 / 元素=字符串

要分配的主机名列表。

如果传递空列表,则将从规则中删除所有主机。

如果省略此选项,则不会检查或更改主机。

hostcategory

字符串

主机类别

选项

  • "all"

hostgroup

列表 / 元素=字符串

要分配的主机组名列表。

如果传递空列表,则将从规则中删除所有主机组。

如果省略此选项,则不会检查或更改主机组。

ipa_host

字符串

IPA 服务器的 IP 或主机名。

如果任务中未指定此值,则将使用环境变量 IPA_HOST 的值。

如果任务中既未指定环境变量 IPA_HOST,也未指定此值,则将使用 DNS 来尝试发现 FreeIPA 服务器。

FreeIPA 中需要的相关条目是 ipa-ca 条目。

如果任务中 DNS 条目、环境变量 IPA_HOST 和此值均不可用,则将使用默认值。

默认值: "ipa.example.com"

ipa_pass

字符串

管理员用户的密码。

如果任务中未指定此值,则将使用环境变量 IPA_PASS 的值。

请注意,如果 urllib_gssapi 库可用,则可以使用 GSSAPI 进行 FreeIPA 身份验证。

如果环境变量 KRB5CCNAME 可用,则模块将使用此 Kerberos 凭据缓存来对 FreeIPA 服务器进行身份验证。

如果环境变量 KRB5_CLIENT_KTNAME 可用,而 KRB5CCNAME 不可用;则模块将使用此 Kerberos 密钥表进行身份验证。

如果 GSSAPI 不可用,则需要使用 ipa_pass

ipa_port

整数

FreeIPA/IPA 服务器的端口。

如果任务中未指定此值,则将使用环境变量 IPA_PORT 的值。

如果任务中既未指定环境变量 IPA_PORT,也未指定此值,则将设置默认值。

默认值: 443

ipa_prot

字符串

IPA 服务器使用的协议。

如果任务中未指定此值,则将使用环境变量 IPA_PROT 的值。

如果任务中既未指定环境变量 IPA_PROT,也未指定此值,则将设置默认值。

选项

  • "http"

  • "https" ← (默认)

ipa_timeout

整数

指定连接的空闲超时时间(以秒为单位)。

对于批量操作,您可能需要增加此值以避免 IPA 服务器超时。

如果任务中未指定此值,则将使用环境变量 IPA_TIMEOUT 的值。

如果任务中既未指定环境变量 IPA_TIMEOUT,也未指定此值,则将设置默认值。

默认值: 10

ipa_user

字符串

在 IPA 服务器上使用的管理员帐户。

如果任务中未指定此值,则将使用环境变量 IPA_USER 的值。

如果任务中既未指定环境变量 IPA_USER,也未指定此值,则将设置默认值。

默认值: "admin"

service

列表 / 元素=字符串

要分配的服务名列表。

如果传递空列表,则将从规则中删除所有服务。

如果省略此选项,则不会检查或更改服务。

servicecategory

字符串

服务类别

选项

  • "all"

servicegroup

列表 / 元素=字符串

要分配的服务组名列表。

如果传递空列表,则将从规则中删除所有已分配的服务组。

如果省略此选项,则不会检查或更改服务组。

sourcehost

列表 / 元素=字符串

要分配的源主机名列表。

如果传递空列表,则将从规则中删除所有已分配的源主机。

如果省略此选项,则不会检查或更改源主机。

sourcehostcategory

字符串

源主机类别

选项

  • "all"

sourcehostgroup

列表 / 元素=字符串

要分配的源主机组名称列表。

如果传递空列表,则规则中所有已分配的源主机组都将被移除。

如果省略此选项,则不会检查或更改源主机组。

state

字符串

要确保的状态

选项

  • “不存在”

  • “已禁用”

  • “已启用”

  • "present" ← (默认)

user

列表 / 元素=字符串

要分配的用户名称列表。

如果传递空列表,则规则中所有已分配的用户都将被移除。

如果省略此选项,则不会检查或更改用户。

usercategory

字符串

用户类别

选项

  • "all"

usergroup

列表 / 元素=字符串

要分配的用户组名称列表。

如果传递空列表,则规则中所有已分配的用户组都将被移除。

如果省略此选项,则不会检查或更改用户组。

validate_certs

布尔值

这仅在ipa_prothttps 时适用。

如果设置为 false,则不会验证 SSL 证书。

仅应在使用自签名证书的个人控制站点上将此设置为 false

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全支持

可以在check_mode下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在check_mode中更改的内容)的详细信息。

示例

- name: Ensure rule to allow all users to access any host from any host
  community.general.ipa_hbacrule:
    name: allow_all
    description: Allow all users to access any host from any host
    hostcategory: all
    servicecategory: all
    usercategory: all
    state: present
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

- name: Ensure rule with certain limitations
  community.general.ipa_hbacrule:
    name: allow_all_developers_access_to_db
    description: Allow all developers to access any database from any host
    hostgroup:
    - db-server
    usergroup:
    - developers
    state: present
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

- name: Ensure rule is absent
  community.general.ipa_hbacrule:
    name: rule_to_be_deleted
    state: absent
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

返回值

常用返回值已在此处记录,以下是此模块独有的字段

描述

hbacrule

字典

IPA API 返回的 HBAC 规则。

返回值:始终返回

作者

  • Thomas Krahn (@Nosmoht)