用户管理#

DGX SuperPOD 的用户和组以单一系统范例呈现给管理员。也就是说,如果管理员使用集群管理器管理它们,则更改将自动在整个集群(单一系统)中共享。集群管理器运行自己的 LDAP 服务来管理用户,而不是使用 unix 用户和组文件。换句话说,用户和组由在头节点上运行的集中式 LDAP 数据库服务器管理,而不是通过 /etc/passwd 或 /etc/group 文件中的条目管理。

使用基本视图管理用户和组#

在基本视图中

  • 用户可以通过点击路径“身份管理”>“用户”进行管理。

  • 组可以使用点击路径“身份管理”>“组”进行管理。

对于用户(图 5),将显示常规用户的 LDAP 条目。这些条目是可编辑的,然后可以进一步详细管理每个用户。

图 5. 基本视图用户管理

_images/user-management-01.png

在新安装的集群管理器上有一个用户:cmsupport。默认情况下,此用户未设置密码,这意味着默认情况下不允许登录此帐户。集群管理器使用 cmsupport 运行各种诊断实用程序,因此不应删除它,并且也不应删除其主目录的默认内容。“+ 添加”按钮允许使用“用户参数”窗口添加用户((图 6))。可以使用“用户参数”窗口中的“保存”按钮提交参数值的更改。

图 6. 基本视图用户管理:添加

_images/user-management-02.png

保存添加或修改时

  • 用户和组 ID 号从 UID 和 GID 1000 开始自动分配。

  • 将创建主目录,并设置登录 shell。未设置密码的用户无法登录。基本视图中的组管理使用点击路径“身份管理”>“组”进行。

然后,将显示常规组的可点击 LDAP 对象条目,就像已经介绍的用户条目一样。这些条目的管理使用与用户管理相同的功能完成。

使用 cmsh 管理用户和组#

基本视图执行的用户管理任务也可以使用 cmsh 完成。此处运行 cmsh 会话以涵盖与基本视图的用户管理功能对应的功能。

注意

对于本文档的其余部分,在 # 提示符下执行的命令将在 linux shell 上运行,而在 % 提示符下执行的命令将在 cmsh 内部运行。

这些功能从 cmsh 的用户模式内部运行。

1[root©headnode ~]# cmsh
2[headnode]% user
3[headnode->user%

添加用户#

这对应于基本视图中“+ 添加”按钮操作的功能。在用户模式下,使用 add 命令启动将用户 userone 添加到 LDAP 目录的过程。

1[headnode->user% add userone
2[headnode->user*[userone*]]%

cmsh 进入刚刚添加的用户对象,提示符显示用户名以反映这一点。否则,进入用户对象将通过在用户模式级别输入 user userone 手动完成。

提示符中的星号是修改状态的提醒,每个星号表示在该星号的级别上存在未保存的修改属性。

modified 命令显示尚未提交的已修改对象列表。

1[headnode->user*[userone*]]% modified
2State  Type                    Name
3------ ----------------------- ---------------
4+      User                    userone
5+

这对应于基本视图标准显示右上角的“未保存实体”图标显示的内容。

此时运行 show 会显示用户名条目,但 userone 的其他属性字段为空。因此,准备中的帐户虽然已修改,但尚未准备好使用。

1[headnode->user*[userone*]]% show
2Parameter                         Value
3------------------------------    --------------------------
4Accounts
5Managees
6Name                                    userone
7Primary group
8Revision
9Secondary

保存修改状态#

这对应于“保存”按钮操作的功能。

在 4.2.1 中添加的用户 userone 现在作为建议的修改存在,但尚未提交到 LDAP 数据库。

现在在 userone 提示符下运行 commit 命令会将修改状态存储在用户 userone 对象级别

 1[bright92->user*[userone*]]% commit
 2[bright92->user[userone]]% show
 3Parameter                                            Value
 4------------------------------ ---------------------------
 5Accounts
 6Managees
 7Name                                                                 userone
 8Primary group                                        userone
 9Revision
10Secondary groups
11ID                                                           1001
12Common name                                          userone
13Surname                                                      userone
14Group ID                                             1001
15Login shell                                          /bin/bash
16Home directory                               /home/userone
17Password                                             *********
18Email
19Profile
20Create cmjob certificate     no
21Write ssh proxy config       no
22Shadow min                                           0
23Shadow max                                           999999
24Shadow warning                                       7
25Inactive                                                     0
26Last change                                          2023/1/12
27Expiration date                              2038/1/1
28Project manager                              <submode>
29Notes                                                        <0B>

但是,如果在用户模式级别而不是进入 userone 对象级别运行 commit,则将提交所有已修改的用户,而不是仅提交该已修改的用户。

完成提交后,用户的全部空字段将自动填充为默认值。此外,作为安全预防措施,如果提交了空字段(即“未设置”)密码条目,则不允许登录该帐户。因此,在示例中,用户 userone 的帐户在此阶段存在,但仍无法登录,直到设置密码为止。编辑密码和其他属性将在 4.2.3 中介绍。

用户主目录下的文件和目录的默认权限由 /etc/login.defs 中的 umask 设置定义,如果管理员要使用标准 useradd 命令,则应该如此。为用户设置 homedirectory 参数的路径会设置默认主目录路径。默认情况下,用户 <username> 的路径为 /home/<username>。如果 homedirectory 未设置,则默认值由 HomeRoot 指令确定。

编辑用户和组的属性#

这对应于 4.1 中“编辑”操作的功能。

保存修改状态中,创建了用户帐户 userone,其属性之一是未设置密码。拒绝登录具有未设置密码的帐户。因此,如果要使帐户发挥作用,则必须设置密码。

使用 set 和 clear 编辑用户#

用于设置用户和组属性的工具是 set 命令。键入 set,然后使用 tab 键查看可能的完成项,或按 enter 键,将提示可以设置的几个参数,其中之一是 password。

 1[headnode->user[userone]]% set
 2Name:
 3set - Set specific user property
 4Usage:
 5set [user] <parameter> <value> [<value> ...] (type 1)
 6set [user] <parameter] [file]       (type 2)
 7Arguments:
 8User
 9    name of the user, omit if current is set
10Parameters: (type 1)
11commonname ........... Full name (e.g. Donald Duck)
12createcmjobcertificate Create a certificate with the cloudjob profile for cmjob
13email................  email
14expirationdate ......  Date on which the user login will be disabled
15groupid .............  Base group of this user
16homedirectory .......  Home directory
17id ..................  User ID number
18inactive ............  Number of days of inactivity allowed for the user
19loginshell ..........  Login shell
20name ................  User login (e.g. donald)
21password ............. Password
22profile .............. Profile for Authorization
23projectmanager ....... Project manager
24revision ............. Entity revision
25shadowmax ............ Maximum number of days for which the user password remains valid.
26shadowmin ............ Minimum number of days required between password changes
27shadowwarning ........ Number of days of advance warning given to the user before the user password expires surname .............
28Surname (e.g. Duck) writesshproxyconfig . Write ssh proxy config
29Parameters: (type 2)
30notes ................. Administrator notes
31[headnode->user[userone]]%

从 4.2.2 末尾继续会话,可以在用户上下文提示符下像这样设置密码

1[headnode->user[Userone]]% set password seteca5tr0n0my
2[headnode->user*[userone*]]% commit
3[headnode->user[Userone]]%

帐户 userone 现在可以使用了。set 命令的反义词是 clear 命令,它清除属性。

1[headnode->user[Userone]]% clear password; commit

也可以通过设置从 cmsh 内的密码生成的 LDAP 哈希(加密存储格式)在 cmsh 中设置密码。在 cmsh 中设置密码时,以 {MD5}、{CRYPT} 或 {SSHA} 开头的字符串是密码的哈希。

 1[root©headnode ~]# #first create the LDAP salted SHA-1 hash of the password:
 2[root©headnode ~]# /cm/local/apps/openldap/sbin/slappasswd -h {SSHA} -s seteca5tr0n0my [root©headnode ~]# {SSHA}sViD+lfSTtlIy0MuGwPGfGd5XKHgEm5d
 3[root©headnode ~]# cmsh [headnode]% user use userone
 4[headnode->user[userone]]% set password
 5enter new password: #here and in the next line {SSHA}sViD+lfSTtlIy0MuGwPGfGd5XKHgEm5d is typed in
 6retype new password:
 7[headnode->user[userone]]%  commit
 8[headnode->user[userone]]%  !ssh  userone©dgx001    #now will test the password that generated the hash
 9userone©dgx001 s password:  #here seteca5tr0n0my is typed in
10Creating ECDSA key for ssh
11[userone©node001  ~]$       #successfully logged in with the password associated with the hash

不应通过直接 LDAP 哈希条目在 cmsh 中管理密码。

使用 append 和 removefrom 编辑组#

虽然前面的命令 set 和 clear 也适用于组,但还有两个其他命令可用于适应组的特殊性质。这些补充命令是 append 和 removefrom。它们用于向组添加额外的用户和从组中删除额外的用户。

例如,拥有一个打印机组可能很有用,以便多个用户可以共享对打印机的访问权限。为了本示例的目的(从前面会话结束的位置继续),现在将 usertwo 和 userthree 与组 printer 一起添加到 LDAP 目录

1[headnode->user[userone]]% add usertwo; add userthree
2[headnode->user*[userthree*]]% exit; group; add printer
3[headnode->group*[printer*]]% commit
4[headnode->group[printer]]% exit; exit; user
5[headnode->user*]%

在前面的示例中,分号用于将命令链接在同一行上。

应注意前面会话中发生的上下文切换。用户 userone 的上下文最终被组 printer 的上下文替换。因此,组 printer 已提交,但用户 usertwo 和 userthree 尚未提交,这由用户模式级别的星号表示。

要将用户添加到组,请使用 append 命令。可以将用户 userone、usertwo 和 userthree 的列表添加到组 printer,如下所示

 1[headnode->user*]% commit
 2Successfully committed 2 Users
 3[headnode->user]% group use printer
 4[headnode->group[printer]]% append members userone usertwo userthree; commit [headnode->group[printer]]% show
 5Parameter                                     Value
 6------------------------ --------------------------
 7ID                                                            1002
 8Revision
 9Name                                                          printer
10Members                                               userone,usertwo,userthree

要从组中删除用户,请使用 removefrom 命令。可以从组中删除特定用户的列表,例如 usertwo 和 userthree,如下所示

1[headnode->group[printer]]% removefrom members usertwo userthree; commit
2[headnode->group[printer]]% show
3Parameter                                           Value
4------------------------    --------------------------
5ID                                                                  1002
6Revision
7Name                                                                printer
8Members                                                     userone

clear 命令也可用于清除成员 - 但它也会清除组中的所有额外内容

1[headnode->group[printer]]% clear members [headnode->group*[printer*]]% show
2Parameter                                           Value
3------------------------    --------------------------
4ID                                                                  1002
5Revision
6Name                                                                printer
7Members

commit 命令在此会话中的此点有意省略,以说明如何在下一节中使用还原。

还原到未修改状态#

这大致对应于 4.1 中“还原”操作的功能。

本节从 4.2.3 末尾的会话状态继续。在那里,组 printers 的状态被清除,以便删除额外添加的成员。但是,此状态(未显示组成员的状态)尚未提交。

refresh 命令将未提交的对象还原到上次提交的状态。

这发生在它正在使用的对象的级别。例如,此处正在处理的对象是组对象 printer 的属性。在更高级别的提示符(例如,在组模式级别)运行 revert 将还原该级别及以下的所有内容。因此,要仅影响组对象 printer 的属性,请在组对象 printer 级别提示符下使用 refresh 命令。然后,它将组对象 printer 的属性还原到其上次提交的状态,并且不影响其他对象

1[headnode->group*[printer*]]% refresh [headnode->group[printer]]% show
2Parameter                                           Value
3------------------------    --------------------------
4ID                                                                  1002
5Revision
6Name                                                                printer
7Members                                                     userone

在这里,用户 userone 重新出现,因为它们存储在上次保存中。此外,由于仅提交了组对象 printer,因此星号表示存在其他未提交的已修改对象。

删除用户#

使用 cmsh 删除用户大致对应于 4.1 中“删除”操作的功能。

remove 命令删除用户或组。添加到用户名末尾的 -d|–data 标志也会删除用户的主目录。例如,在用户模式下,命令 remove user userone -d; commit 删除用户 userone 及其主目录。

从 4.2.4 末尾会话继续,如下所示,显示了此结果

1[headnode->group[printer]]% user use userone
2[headnode->user[userone]]% remove -d; commit
3Successfully removed 1 Users
4Successfully committed 0 Users
5[headnode->user]% !ls -d /home/*| grep userone      #no userone left behind
6[headnode->user]%

LDAP#

LDAP 服务在 DGX SuperPOD 内部,由头节点提供。如果集群管理器设置为高可用性配置,并且 LDAP 在头节点上内部运行,则 LDAP 服务由活动节点和被动节点提供。高可用性设置确保当头节点从被动状态更改为活动状态或反之亦然时,CMDaemon 会处理 slapd.conf 文件中所需的任何更改,并确保活动头节点使用 slapd.conf 中的 syncprov/syncrepl 配置将其 LDAP 数据库更改传播到被动节点。

令牌和配置文件#

对基本视图和 cmsh 的访问基于用户证书。

令牌可以由管理员分配给用户,以便用户可以执行管理员使用基本视图或 cmsh 执行的某些操作。每个集群管理操作都要求每个用户(包括管理员)在其配置文件中具有操作的相关令牌。DGX SuperPOD 配置默认情况下将头节点的 root 用户分配给 admin 配置文件。

用户的令牌分组到配置文件中,此类配置文件通常由管理员根据分配的功能命名。例如,如果配置文件仅允许用户读取监控数据,则可以称为 readmonitoringonly,如果仅允许用户执行电源操作,则可以称为 powerhandler。因此,每个配置文件都包含一组令牌,通常与配置文件的名称相关,并且通常分配给多个用户。配置文件作为身份验证证书的一部分存储,该证书是为证书所有者运行集群管理器身份验证操作而生成的。配置文件使用 cmsh 的配置文件模式或从“配置文件”窗口处理,该窗口可以使用点击路径“身份管理”>“配置文件”访问。

表 9显示了 cmsh 中可用的预配置配置文件。

表 9. cmsh 中的预配置配置文件

配置文件名称

默认允许的任务

非用户?

admin

所有任务

cloudjob

云作业提交

cmhealth

与运行前健康相关的任务

cmpam

集群管理器 PAM 任务

litenode

CMDaemon Lite 任务

monitoringpush

通过 JSON POST 将原始监控数据推送到 CMDaemon(《Bright 集群管理器开发人员手册》第 404 页)

node

与节点相关的任务,例如由节点安装程序执行的任务

portal

用户门户查看

power

设备电源

readonly

仅查看

上表中的最后一列指示预配置配置文件是否为非用户配置文件。使用 cmsh,可以使用如下命令查看配置文件

1[root©headnode ~]# cmsh -c "profile; foreach * (get name; get nonuser)" | paste - -
  • 大多数预配置配置文件是非用户配置文件。此类配置文件供集群管理器客户端使用,不应由集群管理员修改。

  • 不是非用户配置文件的预配置配置文件是 admin、readonly 和 portal。这些可以由集群管理员修改并用于人类用户。

可以使用 profile 模式下的 list 命令在 cmsh 中查看使用可用预配置配置文件的集群管理器服务。可以在配置文件模式下查看特定配置文件的令牌和其他属性,如下所示

1[headnode->profile]% show readonly
2Parameter    Value
3-----------  ----------------------------------------------------------------------
4Name                        readonly
5Non user            no
6Revision
7Services            CMDevice CMNet CMPart CMMon CMJob CMAuth CMServ CMUser CMSession CMMain CMGui CMP+
8Tokens              GET_DEVICE_TOKEN GET_CATEGORY_TOKEN GET_NODEGROUP_TOKEN POWER_STATUS_TOKEN GET_DE+

对于宽度不足以查看参数值的屏幕,也可以列出这些值。

1[headnode->profile]% get readonly tokens
2GET_DEVICE_TOKEN
3GET_CATEGORY_TOKEN
4GET_NODEGROUP_TOKEN
5

可以使用 cmsh 在用户模式下为用户设置配置文件,如下所示

1[root©headnode ~]# cmsh
2[headnode]% user use conner
3[headnode->user[conner]]% get profile
4[headnode->user[conner]]% set profile readonly; commit

只有预定义配置文件的子集可供用户使用。可供用户使用的配置文件是 readonly、admin 和 portal。

修改配置文件#

可以通过向配置文件添加或删除适当的令牌来修改配置文件。例如,readonly 组默认有权访问刻录状态和刻录日志结果。删除适当的令牌会阻止该组中的用户查看这些结果。在 cmsh 中,可以从配置文件模式内完成删除,如下所示

1[root©headnode ~]# cmsh
2[headnode]% profile use readonly
3[...[readonly]]% removefrom tokens burn_status_token get_burn_log_token
4[headnode]%->profile*[readonly*]]% commit

在键入 removefrom tokens 后按 Tab 键完成有助于填写可以删除的令牌。在基本视图 (图 7) 中,可以使用点击路径“身份管理”>“配置文件”>“readonly”>“编辑”>“令牌”执行相同的删除操作。

图 7. 基本视图配置文件令牌管理

_images/user-management-03.png

最大化结果显示中的窗口。运行搜索 burn 以显示相关令牌 BURN_STATUS_TOKEN 和 GET_BURN_LOG_TOKEN,以及它们所在的设备子组。可以从 BURN_STATUS_TOKEN 和 GET_BURN_LOG_TOKEN 复选框中删除勾选,然后可以保存更改的设置。

使用配置文件创建自定义证书#

可以创建自定义配置文件,以在 cmsh 和基本视图中包含自定义的功能集合。也可以从 cmsh 克隆配置文件。

可以基于配置文件创建具有关联到期日期的证书文件。对基本视图和 cmsh 的访问基于用户证书。证书的到期时间在创建后无法延长。之前的证书到期后,需要全新的证书。

集群生成的所有证书都由 CMDaemon 记录。

自定义证书的创建从 4.4.2.4 开始描述。创建此类证书后,可以使用 openssl 实用程序检查其结构和属性。以下示例中的关键值是到期日期(自生成时起 30 天)、通用名称 (democert)、密钥大小 (2048)、配置文件属性 (readonly) 和系统登录名 (userfour),对于此类证书

 1[root©headnode]# openssl x509 -in userfourfile.pem -text -noout
 2Data:
 3    ...
 4        Not After : Sep 21 13:18:27 2014 GMT
 5Subject: ... CN=democert
 6        Public-Key: (2048 bit)
 7...
 8X509v3 extensions:
 9        1.3.6.1.4.4324.1:
10            ..readonly
11        1.3.6.1.4.4324.2:
12            ..userfour
13[root©headnode]#

但是,使用 openssl 实用程序管理证书很不方便。集群管理器提供了更方便的方法来执行此操作,如下所述。

使用 cmsh 列出证书#

在 cmsh 的 cert 模式下,listcertificates 命令列出所有集群证书及其属性

 1[root©headnode ~]# cmsh
 2[headnode]% cert
 3[headnode-> cert]% listcertificates
 4Serial      Revoked  Time left       Profile           System log in    Name
 5------      -------- ------------ ---------------- ---------------- --------------------
 61                   No                       5214w 1d        admin             root              Administrator
 72                   No                       5214w 1d        cmhealth                            CMHealth
 83                   No                       5214w 1d        cmhealth                            CMHealth
 94                   No                       5214w 1d        power                               Slurm
105                   No                       5214w 1d        bootstrap                           CertificateRequest
116                   No                       5214w 1d        cmpam                               CMPam
127                   No                       5214w 1d        portal                              WebPortal
13...

使用基本视图列出证书#

列出证书的基本视图等效项是通过点击路径“身份管理”>“证书”(图 8)。

图 8. 基本视图证书列表窗口

_images/user-management-04.png

节点证书#

在证书列表中,列出了 node-installer 为每个节点生成的供 CMDaemon 使用的节点证书。这些是看起来像这样的条目

 1[headnode-> cert]% listcertificates
 2Serial Revoked  Time left   Profile           System log in    Name
 3------ -------- ------------  ---------------- ---------------- ------------------------------
 4...
 510           No              5214w 1d       node                                fa-16-3e-74-24-dc
 611           No              5214w 1d       node                                fa-16-3e-57-2c-8e
 712           No              5214w 1d       node                                fa-16-3e-b6-c7-4a
 813           No              5214w 1d       node                                fa-16-3e-bd-cd-05
 914           No              5214w 1d       node                                fa-16-3e-0d-ab-ea
10...

创建自定义证书#

自定义证书也列在证书列表中。

与通常由系统生成的节点证书不同,自定义证书通常由配置文件中具有适当令牌的用户生成,例如具有 admin 配置文件的 root。此类用户可以使用以下方法创建包含指定配置文件的证书,如下节所述

  • cmsh:使用 cert 模式下的 createcertificate 操作。

  • 基本视图:使用点击路径“身份管理”>“用户”>“编辑”>“配置文件”来设置配置文件。

为 cmsh 用户创建新证书#

在 cmsh 中创建新证书是从 cert 模式使用 createcertificate 命令完成的,该命令具有以下帮助文本

1[headnode->cert]% help createcertificate Name:
2createcertificate - Create a new certificate
3Usage:
4    createcertificate <key-length> <common-name> <organization> <organizational-unit> <locality> <state> <country> <profile> <sys-login> <days> <key-file> <cert-file>
5Arguments:
6    key-file
7        Path to key file that will be generated
8    cert-file
9        Path to pem file that will be generated

因此,例如,可以使用以下命令创建一个配置文件为 readonly,到期时间为 30 天,并以用户 userfour 的权限运行的证书文件

1[headnode->cert]% createcertificate 2048 democert a b c d ef readonly userfour 30 /home/userfour /userfourfile.key  /home/userfour/userfourfile.pem
2Thu Jan  5 15:13:01 2023 [notice] headnode: New certificate request with ID: 16
3[headnode->cert]% createcertificate 2048 democert a b c d ef readonly pe er 30 /home/userfour /userfourfile.key  /home/userfour/userfourfile.pem
4Certificate key written to file: /home/userfour/userfourfile.key
5Certificate pem written to file: /home/userfour/userfourfile.pem

证书列表会将其显示为类似

1[headnode-> cert]% listcertificates
2Serial Revoked  Time left   Profile          System log in     Name
3------ -------- ------------ ---------------- ---------------- ------------------------------
4...
523           No              4w 1d          readonly         userfour          democert

设置新自定义证书的所有权:证书归生成它们的所有者所有,因此如果 root 正在运行 cmsh,则它们归 root 所有。这意味着用户 userfour 在所有权更改为该用户之前无法使用它们。

1[root©headnode ~]# cd /home/userfour [root©headnode surefour]# ls -l userfourfile.*
2-rw------- 1 root root 1704 Aug 22 06:18 userfourfile.key
3-rw------- 1 root root 1107 Aug 22 06:18 userfourfile.pem [root©headnode userfour]# chown userfour:userfour userfourfile.*

其他用户必须将其证书所有权更改为他们自己的用户名。

将用户与新自定义证书的路径关联#

然后,与此类证书关联的用户可以执行具有 readonly 配置文件的 cmdaemon 任务,并且 CMDaemon 将此类用户视为用户 userfour。与证书关联的两种方式是

  1. pem 和密钥文件的路径可以使用 cmsh 的 -i 和 -k 选项分别设置。例如,在用户 userfour 的主目录中,对于在前面会话中生成的文件,可以使用以下密钥启动 cmsh

1[surefour©head node ~] cmsh -i userfourfile.pem -k userfourfile.key
2[headnode]% quit
  1. 如果未使用 -i 和 -k 选项,则 cmsh 将搜索默认密钥。cmsh 的默认密钥位于 $HOME 下的以下路径中,按优先级顺序排列

  1. .cm/admin.{pem,key}

  2. .cm/cert.{pem,key}

为基本视图用户创建自定义证书#

与 cmsh 的情况一样,具有足够权限的令牌配置文件(例如 admin 配置文件)的基本视图用户可以为自己或其他用户创建证书和密钥文件。这是通过从用户的“添加”或“编辑”对话框中关联“配置文件”的值来完成的(图 5)。

然后,证书文件 cert.pem 和 cert.key 将自动放置在用户 $HOME 下的以下路径和名称中

  • .cm/admin.{pem,key}

  • .cm/cert.{pem,key}

在使用其用户名和密码进行身份验证以运行基本视图时,使用此证书的基本视图用户将被限制为由其关联配置文件允许的任务集。

记录 CMDaemon 用户的操作#

以下指令允许控制 CMDaemon 用户操作的日志记录

  • CMDaemonAudit:启用日志记录。

  • CMDaemonAuditorFile:设置日志位置。

  • DisableAuditorForProfiles:禁用配置文件的日志记录。

有关这些指令的详细信息,请参见《Bright 集群管理器管理员手册》的附录 C

使用 cm component-certificate 为节点创建证书#

cm-component-certificate 实用程序可用于为服务组件生成或更新 SSL 证书。集群管理员不应使用此实用程序,因为集群管理器管理证书,而不会在正常操作期间打扰管理员。如果要使用该实用程序,则应谨慎使用,以避免使用这些证书的组件出现故障。

此实用程序适用的 SSL 客户端组件之一是 LDAP。

选项包括设置新的 CA 并为节点创建新的证书或密钥。

计算节点 LDAP PEM 和密钥创建#

如果已配置的计算节点丢失或损坏了 LDAP 密钥或证书,则可以使用以下命令进行替换

1[root©headnode ~]# cm-component-certificate -n dgx001
2Sending request to recreate certificates for 1 node to cmd on headnode
3[(38654705666, 1)] 1 0 0
41 certificates were successfully recreated Done.

ldap.{pem,key} 文件会自动放置在 dgx001 上,默认位置由 CMDaemon LDAPCertificate 和 LDAPPrivateKey 指令指定的位置。

应删除头节点上的文件 /cm/node-installer/certificates/<dgx001-mac>/ldap.{pem,key}

应在 dgx001 上重新启动 nslcd、sssd 和 ldap 守护程序,或者如果 dgx001 未在使用中,则更简单地重新启动 dgx001。重新启动会将头节点上的 ldap.{pem,key} 文件替换为新生成的文件。