dellemc.enterprise_sonic.sonic_ldap 模块 – 在 SONiC 上配置全局 LDAP 服务器设置。

注意

此模块是 dellemc.enterprise_sonic 集合(版本 2.5.1)的一部分。

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

要安装它,请使用: ansible-galaxy collection install dellemc.enterprise_sonic

要在 playbook 中使用它,请指定:dellemc.enterprise_sonic.sonic_ldap

dellemc.enterprise_sonic 2.5.0 中的新增功能

概要

  • 此模块提供在运行 SONiC 的设备上对全局 LDAP 服务器参数进行配置管理。

  • 在配置用于 LDAP 服务器连接的 VRF 之前,请配置 VRF 实例。

参数

参数

注释

config

列表 / 元素=字典

指定 LDAP 服务器相关配置。

base

字符串

配置基本专有名称。

bind_timelimit

整数

配置连接时间限制(0 到 65535)。

binddn

字符串

配置要绑定的专有名称。

bindpw

字典

配置要绑定的凭据

encrypted

布尔值

指示密码是否为加密文本。

选项

  • false

  • true

pwd

字符串 / 必需

用于绑定的身份验证密码。

idle_timelimit

整数

配置 NSS 空闲时间限制(0 到 65535)。

仅适用于全局和 nss。

map

字典

配置用于映射的 LDAP 服务器。

仅适用于全局。

attribute

列表 / 元素=字典

配置属性映射。

fromto 必须一起使用。

from

字符串

配置属性映射键。

to

字符串

配置属性映射值。

default_attribute

列表 / 元素=字典

配置默认属性映射。

fromto 必须一起使用。

from

字符串

配置默认属性映射键。

to

字符串

配置默认属性映射值。

map_remote_groups_to_sonic_roles

列表 / 元素=字典

配置远程组到 sonic 角色的映射。

remote_groupsonic_roles 必须一起使用。

remote_group

字符串

将远程组映射到 SONiC 角色。

sonic_roles

列表 / 元素=字符串

配置 SONiC 角色。

选项

  • "admin"

  • "operator"

  • "netadmin"

  • "secadmin"

objectclass

列表 / 元素=字典

配置 Objectclass 映射。

fromto 必须一起使用。

from

字符串

配置 Objectclass 映射键。

to

字符串

配置 Objectclass 映射值。

override_attribute

列表 / 元素=字典

配置覆盖属性映射。

fromto 必须一起使用。

from

字符串

配置覆盖属性映射键。

to

字符串

配置覆盖属性映射值。

name

字符串 / 必需

指定 LDAP 类型。

选项

  • "global"

  • "nss"

  • "pam"

  • "sudo"

nss_base_group

字符串

配置 NSS 搜索基本组映射。

仅适用于全局和 nss。

nss_base_netgroup

字符串

配置 NSS 搜索基本网络组映射。

仅适用于全局和 nss。

nss_base_passwd

字符串

配置 NSS 搜索基本密码映射。

仅适用于全局、nss 和 pam。

nss_base_shadow

字符串

配置 NSS 搜索基本影子映射。

仅适用于全局和 nss。

nss_base_sudoers

字符串

配置 NSS 搜索基本 sudoers 映射。

仅适用于全局和 nss。

nss_initgroups_ignoreusers

字符串

配置 NSS 初始组忽略用户。

仅适用于全局和 nss。

nss_skipmembers

布尔值

配置 NSS skipmembers

选项

  • false

  • true

pam_filter

字符串

配置 PAM 过滤器。

仅适用于全局和 pam。

pam_group_dn

字符串

配置 PAM 组专有名称。

仅适用于全局和 pam。

pam_login_attribute

字符串

配置 PAM 登录属性。

仅适用于全局和 pam。

pam_member_attribute

字符串

配置 PAM 成员属性。

仅适用于全局和 pam。

port

整数

配置服务器端口(1 到 65535)。

retry

整数

配置重传尝试次数(0 到 10)。

scope

字符串

配置搜索范围。

仅适用于全局、nss 和 pam。

选项

  • "sub"

  • "one"

  • "base"

servers

列表 / 元素=字典

配置 LDAP 服务器的主机名或 IP 地址。

仅适用于全局。

address

字符串 / 必需

LDAP 服务器的主机名或 IP 地址。

port

整数

配置服务器端口号(1 到 65535)。

priority

整数

配置优先级(1 到 99)。

retry

整数

配置重传尝试次数(0 到 10)。

server_type

字符串

配置服务器类型。

选项

  • "all"

  • "nss"

  • "sudo"

  • "pam"

  • "nss_sudo"

  • "nss_pam"

  • "sudo_pam"

ssl

字符串

配置 TLS 配置。

选项

  • "on"

  • "off"

  • "start_tls"

source_interface

字符串

配置要用作 LDAP 数据包源 IP 的源接口。

仅适用于全局。

第 3 层接口的全名,即 Eth1/1。

ssl

字符串

配置 TLS 配置。

选项

  • "on"

  • "off"

  • "start_tls"

sudoers_base

字符串

配置用于查询的 sudo 基本专有名称。

仅适用于全局和 sudo。

sudoers_search_filter

字符串

配置用于查询的 sudo 搜索过滤器。

仅适用于全局和 sudo。

timelimit

整数

配置搜索时间限制(1 到 65535)。

version

整数

配置 LDAP 版本 2 或 3。

选项

  • 2

  • 3

vrf

字符串

配置用于 LDAP 服务器连接的 VRF。

仅适用于全局。

state

字符串

指定对设备上配置的 LDAP 服务器执行的操作。

在合并的情况下,输入配置将与设备上现有的 LDAP 服务器配置合并。

在删除的情况下,将从设备中删除现有的 LDAP 服务器配置。

在覆盖的情况下,将删除所有现有的 LDAP 服务器配置,并安装指定的输入配置。

在替换的情况下,设备上现有的 LDAP 服务器配置将被 playbook 中配置的每个 LDAP 服务器组的 playbook 中的配置替换。

选项

  • "merged" ←(默认)

  • "deleted"

  • "replaced"

  • "overridden"

备注

注意

  • 支持 check_mode

示例

# Using deleted
#
# Before State:
# -------------
#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss-base-passwd password
#ldap-server nss-initgroups-ignoreusers username1
#ldap-server nss scope sub
#ldap-server nss timelimit 15
#ldap-server nss idle-timelimit 25
#ldap-server nss nss-base-group group1
#ldap-server nss nss-base-sudoers sudo1
#ldap-server pam base admin
#ldap-server pam binddn CN=example.com
#ldap-server pam pam-login-attribute loginattrstring
#ldap-server sudo retry 10
#ldap-server sudo ssl start_tls
#ldap-server sudo bind-timelimit 15
#ldap-server vrf Vrf_1
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host 20.20.20.10 retry 1
#ldap-server host example.com priority 10 ssl off
#ldap-server map default-attribute-value attr1 to attr2
#ldap-server map default-attribute-value attr3 to attr4
#ldap-server map objectclass attr1 to attr3
#sonic#

  - name: Delete the LDAP server configurations
    sonic_ldap:
      config:
        - name: "global"
          servers:
            - address: "example.com"
          vrf: "Vrf_1"
        - name: "nss"
          idle_timelimit: 25
          scope: "sub"
        - name: "sudo"
      state: deleted

# After State:
# ------------
#
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss-base-passwd password
#ldap-server nss-initgroups-ignoreusers username1
#ldap-server nss timelimit 15
#ldap-server nss nss-base-group group1
#ldap-server nss nss-base-sudoers sudo1
#ldap-server pam base admin
#ldap-server pam binddn CN=example.com
#ldap-server pam pam-login-attribute loginattrstring
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host 20.20.20.10 retry 1
#ldap-server map default-attribute-value attr1 to attr2
#ldap-server map default-attribute-value attr3 to attr4
#ldap-server map objectclass attr1 to attr3
#sonic#


# Using merged
#
# Before State:
# -------------
#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#!
#sonic# show running-configuration | grep ldap
#sonic#

  - name: Add the LDAP server configurations
    sonic_ldap:
      config:
        - name: "global"
          servers:
            - address: "example.com"
              priority: 10
              ssl: on
            - address: "10.10.10.1"
              priority: 5
              port: 1550
          port: 389
          version: 2
          nss_base_passwd: password
        - name: "pam"
          base: "admin"
          binddn: "CN=example.com"
          pam_login_attribute: "loginattrstring"
        - name: "sudo"
          bind_timelimit: 20
          retry: 10
      state: merged

# After State:
# ------------
#
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss-base-passwd password
#ldap-server pam base admin
#ldap-server pam binddn CN=example.com
#ldap-server pam pam-login-attribute loginattrstring
#ldap-server sudo retry 10
#ldap-server sudo bind-timelimit 20
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host example.com priority 10 ssl on
#sonic#


# Using merged
#
# Before State:
# -------------
#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#!
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss-base-passwd password
#ldap-server pam base admin
#ldap-server pam binddn CN=example.com
#ldap-server pam pam-login-attribute loginattrstring
#ldap-server sudo retry 10
#ldap-server sudo bind-timelimit 20
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host example.com priority 10 ssl on
#sonic#

  - name: Add the LDAP server configurations
    sonic_ldap:
      config:
        - name: "global"
          servers:
            - address: "example.com"
              ssl: off
            - address: "20.20.20.10"
              retry: 1
          nss_base_passwd: password
          pam_login_attribute: "globallogin"
          nss_initgroups_ignoreusers: "username1"
          vrf: "Vrf_1"
          map:
            default_attribute:
              - from: "attr1"
                to: "attr2"
              - from: "attr3"
                to: "attr4"
            objectclass:
              - from: "attr1"
                to: "attr3"
            map_remote_groups_to_sonic_roles:
              - remote_group: "group1"
                sonic_roles:
                  - admin
                  - operator
        - name: "nss"
          nss_base_netgroup: "group1"
          idle_timelimit: 25
          timelimit: 15
          scope: "sub"
          nss_base_sudoers: "sudo1"
        - name: "sudo"
          bind_timelimit: 15
          ssl: "start_tls"
      state: merged

# After State:
# ------------
#
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss-base-passwd password
#ldap-server pam-login-attribute globallogin
#ldap-server nss-initgroups-ignoreusers username1
#ldap-server nss scope sub
#ldap-server nss timelimit 15
#ldap-server nss idle-timelimit 25
#ldap-server nss nss-base-group group1
#ldap-server nss nss-base-sudoers sudo1
#ldap-server pam base admin
#ldap-server pam binddn CN=example.com
#ldap-server pam pam-login-attribute loginattrstring
#ldap-server sudo retry 10
#ldap-server sudo ssl start_tls
#ldap-server sudo bind-timelimit 15
#ldap-server vrf Vrf_1
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host 20.20.20.10 retry 1
#ldap-server host example.com priority 10 ssl off
#ldap-server map default-attribute-value attr1 to attr2
#ldap-server map default-attribute-value attr3 to attr4
#ldap-server map objectclass attr1 to attr3
#ldap-server map remote-groups-override-to-sonic-roles group1 to admin,operator
#sonic#


# Using replaced
#
# Before State:
# -------------
#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss-base-passwd password
#ldap-server nss-initgroups-ignoreusers username1
#ldap-server nss idle-timelimit 25
#ldap-server nss nss-base-group group1
#ldap-server nss nss-base-sudoers sudo1
#ldap-server pam base admin
#ldap-server pam binddn CN=example.com
#ldap-server pam pam-login-attribute loginattrstring
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host 20.20.20.10 retry 1
#ldap-server map default-attribute-value attr1 to attr2
#ldap-server map default-attribute-value attr3 to attr4
#ldap-server map objectclass attr1 to attr3
#sonic#

  - name: Replace the LDAP server configurations
    sonic_ldap:
      config:
        - name: "nss"
          scope: "one"
          bindpw:
            pwd: "password"
        - name: "pam"
          version: 3
          port: 2000
          timelimit: 20
          pam_group_dn: "DNAME"
        - name: "sudo"
          sudoers_search_filter: "filter1"
          base: "base_name"
          version: 3
      state: replaced

# After State:
# ------------
#
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss scope one
#ldap-server nss bindpw U2FsdGVkX1+t8PR9IIi+qjZpYoNwjmd78D1WDBdkLxs= encrypted
#ldap-server pam version 3
#ldap-server pam port 2000
#ldap-server pam timelimit 20
#ldap-server pam pam-group-dn DNAME
#ldap-server sudo version 3
#ldap-server sudo base base_name
#ldap-server sudo sudoers-search-filter filter1
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host 20.20.20.10 retry 1
#ldap-server map default-attribute-value attr1 to attr2
#ldap-server map default-attribute-value attr3 to attr4
#ldap-server map objectclass attr1 to attr3
#sonic#


# Using overridden
#
# Before State:
# -------------
#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration | grep ldap
#ldap-server port 389
#ldap-server version 2
#ldap-server nss scope one
#ldap-server nss bindpw U2FsdGVkX1+t8PR9IIi+qjZpYoNwjmd78D1WDBdkLxs= encrypted
#ldap-server pam version 3
#ldap-server pam port 2000
#ldap-server pam timelimit 20
#ldap-server pam pam-group-dn DNAME
#ldap-server sudo version 3
#ldap-server sudo base base_name
#ldap-server sudo sudoers-search-filter filter1
#ldap-server host 10.10.10.1 port 1550 priority 5
#ldap-server host 20.20.20.10 retry 1
#ldap-server map default-attribute-value attr1 to attr2
#ldap-server map default-attribute-value attr3 to attr4
#ldap-server map objectclass attr1 to attr3
#sonic#

  - name: Override the LDAP server configurations
    sonic_ldap:
      config:
        - name: "global"
          source_interface: "Eth1/1"
          vrf: "Vrf_1"
          servers:
            - address: "client.com"
            - address: "host.com"
              server_type: "sudo_pam"
          map:
            override_attribute:
              - from: "attr1"
                to: "attr2"
            map_remote_groups_to_sonic_roles:
              - remote_group: "group1"
                sonic_roles:
                  - admin
                  - operator
          idle_timelimit: 20
        - name: "pam"
          ssl: "off"
          scope: "base"
      state: overridden

# After State:
# ------------
#
#sonic# show running-configuration | grep ldap
#ldap-server idle-timelimit 20
#ldap-server pam ssl off
#ldap-server pam scope base
#ldap-server source-interface Eth1/1
#ldap-server vrf Vrf_1
#ldap-server host client.com
#ldap-server host host.com use-type sudo_pam
#ldap-server map override-attribute-value attr1 to attr2
#ldap-server map remote-groups-override-to-sonic-roles group1 to admin,operator
#sonic#

返回值

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

描述

after

列表 / 元素=字符串

生成的配置模块调用。

已返回:当更改时

示例:["返回的配置将始终与上面的参数格式相同。\n"]

after(generated)

列表 / 元素=字符串

生成的配置模块调用。

返回:check_mode

示例:["返回的配置将始终与上面的参数格式相同。\n"]

之前

列表 / 元素=字符串

模块调用之前的配置。

返回: 总是

示例:["返回的配置将始终与上面的参数格式相同。\n"]

命令

列表 / 元素=字符串

推送到远程设备的命令集。

返回: 总是

示例: ["命令 1", "命令 2", "命令 3"]

作者

  • Santhosh Kumar T(@santhosh-kt)