Documentation survey

使用引导脚本注册客户端

1. 简介

使用引导脚本注册客户端可让您控制参数,并且便于您在需要时一次性注册大量客户端。

要使用引导脚本注册客户端,建议您先创建一个模板引导脚本,之后可以复制和修改该脚本。注册客户端时,您创建的引导脚本会在客户端上执行,并会确保所有必要的软件包都部署到该客户端。引导脚本中的某些参数确保能够使用激活密钥和 GPG 密钥将客户端系统指派到它的基础通道。

请务必仔细检查储存库信息,以确保其与基础通道储存库匹配。如果储存库信息未完全匹配,引导脚本将无法下载正确的软件包。

其他注意事项:

  • 所有客户端都需要引导储存库。同步产品时,会自动在 SUSE Multi-Linux Manager 服务器上创建并重新生成该引导储存库。引导储存库包含用于在客户端上安装 Salt 的软件包,以及用于注册客户端的软件包。有关如何创建引导储存库的详细信息,请参见 引导储存库

  • openSUSE Leap 15 和 SLE 15 默认使用 Python 3。必须为 openSUSE Leap 15 和 SLE 15 系统创建基于 Python 2 的引导脚本。如果您使用 Python 2 注册 Leap 15 或 SLE 15 系统,引导脚本将会失败。

从旧版 SUSE Multi-Linux Manager 迁移到新版本后,我们强烈建议在初始配置新系统之前重新生成引导脚本,以防出现任何潜在问题。

2. 使用 mgr-bootstrap 创建引导脚本

mgr-bootstrap 命令会生成自定义引导脚本。SUSE Multi-Linux Manager 客户端系统可使用引导脚本简化其初始注册和配置流程。

--activation-keys--script 参数是仅有的必需参数。请在 SUSE Multi-Linux Manager 服务器上的命令行中以 root 身份执行以下命令,并提供必需的参数。请将 <ACTIVATION_KEY<EDITED_NAME> 替换为相应值:

mgr-bootstrap --activation-keys=<ACTIVATION_KEY> --script=bootstrap-<EDITED_NAME>.sh

mgr-bootstrap 命令提供了几个其他选项设置特定主机名、特定 GPG 密钥和注册方法(salt-minion 或 salt-bundle)的功能。

If users wish to create a bootstrap script to register against the Proxy, they can do so using the following command from the Server container:

mgr-boostrap --hostname $proxyfqdn

有关详细信息,请参见 mgr-bootstrap 手册页或运行 mgr-bootstrap --help

3. 从 Web UI 创建引导脚本

您可以使用 SUSE Multi-Linux Manager Web UI 创建可编辑的引导脚本。

过程:创建引导脚本
  1. 在 SUSE Multi-Linux Manager Web UI 中,导航到管理  管理器配置  引导脚本

  2. 必填字段中会预填充从之前的安装步骤获得的值。有关每个设置的细节,请参见 引导脚本

  3. 单击 更新 创建脚本。

  4. 服务器上的 /srv/www/htdocs/pub/bootstrap 目录中即会生成并存储引导脚本。或者,您也可以通过 HTTPS 访问引导脚本。请将 <example.com> 替换为您的 SUSE Multi-Linux Manager 服务器的主机名:

    https://<example.com>/pub/bootstrap/bootstrap.sh

请勿在引导脚本中禁用 SSL。请在 Web UI 中确保 启用 SSL 处于选中状态,或者引导脚本中包含 USING_SSL=1 设置。如果您禁用 SSL,将需要在注册过程中提供自定义 SSL 证书。

有关自定义证书的详细信息,请参见 SSL 证书

4. 编辑引导脚本

您可以复制和修改所创建的模板引导脚本,以对其进行自定义。要将引导脚本用于 SUSE Multi-Linux Manager,对其进行修改时至少需包含激活密钥。大多数软件包都是使用 GPG 签名的,因此系统上还需要有可信的 GPG 密钥才能安装这些软件包。

在执行此过程时,您需要知道激活密钥的确切名称。导航到首页  概览,然后在任务框中,单击管理激活密钥。此页面上会列出为通道创建的所有密钥。您在引导脚本中输入的要使用的密钥完整名称必须与密钥字段中显示的名称完全相同。有关激活密钥的详细信息,请参见 激活密钥

过程:修改引导脚本
  1. 在 SUSE Multi-Linux Manager 服务器上的命令行中,以 root 身份运行以下命令切换到引导目录:

    cd /srv/www/htdocs/pub/bootstrap/
  2. 创建并重命名用于每个客户端的两个模板引导脚本副本。

    cp bootstrap.sh bootstrap-sles12.sh
    cp bootstrap.sh bootstrap-sles15.sh
  3. 打开 bootstrap-sles15.sh 进行修改。 向下滚动,直到看到如下所示的文本。如果文件中包含 exit 1,请在该行的开头键入井号 (#) 将其注释掉。这样会激活脚本。在 ACTIVATION_KEYS= 字段中,输入此脚本的密钥的名称:

    echo "Enable this script: comment (with #'s) this block (or, at least just"
    echo "the exit below)"
    echo
    #exit 1
    
    # can be edited, but probably correct (unless created during initial install):
    # NOTE: ACTIVATION_KEYS *must* be used to bootstrap a client machine.
    ACTIVATION_KEYS=1-sles15
    ORG_GPG_KEY=

Instead of editing the script manually, user can pass the following environment variables at runtime:

  • ACTIVATION_KEYS: Activation keys to use for registration

  • ORG_GPG_KEY: Path or identifier of the GPG key

  • REACTIVATION_KEY: Reactivation key for previously registered systems

  • MGR_SERVER_HOSTNAME: Hostname of the Server or Proxy to register the client against

Using environment variables allows dynamic input at runtime and makes it easier to reuse the same bootstrap script across different systems or environments.

  1. 完成后,保存该文件,然后对第二个引导脚本重复此过程。

默认情况下,如果引导储存库中提供了 venv-salt-minion,引导脚本会尝试安装该软件包,如果引导储存库中没有 Salt 捆绑包,则会安装 salt-minion。如果您出于某种原因需要使用 salt-minion,则可以避免安装 Salt 捆绑包,并继续使用该软件包。

有关详细信息,请参见 Salt 捆绑包

5. 运行引导脚本来注册客户端

创建好脚本后,您便可以使用它来注册客户端。

过程:运行引导脚本
  1. 在 SUSE Multi-Linux Manager 服务器上以 root 身份登录。在命令提示符处,切换到引导目录:

    cd /srv/www/htdocs/pub/bootstrap/
  2. 运行以下命令在客户端上执行引导脚本(将 EXAMPLE.COM 替换为客户端的主机名):

    cat bootstrap-sles15.sh | ssh root@EXAMPLE.COM /bin/bash
  3. 或者,在客户端上运行以下命令:

    ACTIVATION_KEYS="17-someactivationkey" \
    MGR_SERVER_HOSTNAME="proxy.example.com" \
    ORG_GPG_KEY="mykey" \
    REACTIVATION_KEY=my-reactivation-key \
    curl -Sks https://server_hostname/pub/bootstrap/bootstrap.sh | /bin/bash

    If you do not need to override any values, you can omit the environment variables entirely:

    curl -Sks https://server_hostname/pub/bootstrap/bootstrap.sh | /bin/bash

    为避免出现问题,请确保引导脚本是使用 bash 执行的。

    此脚本会下载位于您先前创建的储存库目录下的所需依赖项。

  4. 脚本运行完成后,可以检查客户端是否已正确注册。打开 SUSE Multi-Linux Manager Web UI 并导航到 系统  概览,确保列出了新客户端。如果未列出该客户端,请在 SUSE Multi-Linux Manager Web UI 中导航到 Salt  密钥,检查是否接受了客户端密钥。

使用 SUSE Multi-Linux Manager 在客户端上安装新的软件包或更新时,会自动接受所有最终用户许可协议 (EULA)。要查看软件包 EULA,请打开 Web UI 中的软件包细节页面。