community.general.ipa_sudorule 模块 – 管理 FreeIPA sudo 规则

注意

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

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

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

要在 playbook 中使用它,请指定:community.general.ipa_sudorule

概要

  • 使用 IPA API 在 IPA 服务器中添加、修改或删除 sudo 规则。

参数

参数

注释

cmd

列表 / 元素=字符串

分配给规则的命令列表。

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

如果省略该选项,则不会检查或更改命令。

cmdcategory

字符串

该规则适用的命令类别。

选择

  • "全部"

cmdgroup

列表 / 元素=字符串

在 community.general 2.0.0 中添加

分配给规则的命令组列表。

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

如果省略该选项,则不会检查或更改命令组。

cn

别名:name

字符串 / 必需

规范名称。

不能更改,因为它是唯一标识符。

deny_cmd

列表 / 元素=字符串

在 community.general 8.1.0 中添加

分配给规则的已拒绝命令列表。

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

如果省略该选项,则不会检查或更改命令。

deny_cmdgroup

列表 / 元素=字符串

在 community.general 8.1.0 中添加

分配给规则的已拒绝命令组列表。

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

如果省略该选项,则不会检查或更改命令组。

description

字符串

sudo 规则的描述。

host

列表 / 元素=字符串

分配给规则的主机列表。

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

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

必须省略选项 hostcategory 才能分配主机。

hostcategory

字符串

该规则适用的主机类别。

如果传递 all,则必须省略 hosthostgroup

必须省略选项 hosthostgroup 才能分配 all

选择

  • "全部"

hostgroup

列表 / 元素=字符串

分配给规则的主机组列表。

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

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

必须省略选项 hostcategory 才能分配主机组。

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 keytab 进行身份验证。

如果 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"

runasextusers

列表 / 元素=字符串

在 community.general 2.3.0 中添加

外部 RunAs 用户列表

runasgroupcategory

字符串

该规则适用的 RunAs 组类别。

选择

  • "全部"

runasusercategory

字符串

该规则适用的 RunAs 用户类别。

选择

  • "全部"

state

字符串

要确保的状态。

选择

  • "absent"(不存在)

  • "disabled"(已禁用)

  • "enabled"(已启用)

  • "present" ← (默认)

sudoopt

列表 / 元素=字符串

要添加到 sudo 规则的选项列表。

user

列表 / 元素=字符串

分配给该规则的用户列表。

如果传递一个空列表,则所有用户都将从该规则中删除。

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

usercategory

字符串

该规则适用的用户类别。

选择

  • "全部"

usergroup

列表 / 元素=字符串

分配给该规则的用户组列表。

如果传递一个空列表,则所有用户组都将从该规则中删除。

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

validate_certs

布尔值

仅当 ipa_prothttps 时才适用。

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

仅当在个人控制的站点上使用自签名证书时,才应将其设置为 false

选择

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全

可以在 check_mode 中运行,并返回更改的状态预测,而无需修改目标。

diff_mode

支持:

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

示例

- name: Ensure sudo rule is present that's allows all every body to execute any command on any host without being asked for a password.
  community.general.ipa_sudorule:
    name: sudo_all_nopasswd
    cmdcategory: all
    description: Allow to run every command with sudo without password
    hostcategory: all
    sudoopt:
    - '!authenticate'
    usercategory: all
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

- name: Ensure user group developers can run every command on host group db-server as well as on host db01.example.com.
  community.general.ipa_sudorule:
    name: sudo_dev_dbserver
    description: Allow developers to run every command with sudo on all database server
    cmdcategory: all
    host:
    - db01.example.com
    hostgroup:
    - db-server
    sudoopt:
    - '!authenticate'
    usergroup:
    - developers
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

- name: Ensure user group operations can run any commands that is part of operations-cmdgroup on any host as user root.
  community.general.ipa_sudorule:
    name: sudo_operations_all
    description: Allow operators to run any commands that is part of operations-cmdgroup on any host as user root.
    cmdgroup:
    - operations-cmdgroup
    hostcategory: all
    runasextusers:
    - root
    sudoopt:
    - '!authenticate'
    usergroup:
    - operators
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

返回值

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

描述

sudorule

字典

IPA 返回的 Sudorule

已返回: 始终

作者

  • Thomas Krahn (@Nosmoht)