使用引导脚本注册客户端
1. 简介
使用引导脚本注册客户端可让您控制参数,并且便于您在需要时一次性注册大量客户端。
要使用启动脚本注册客户端,我们建议您首先创建一个模板启动脚本,然后可以复制和修改。 您创建的启动脚本在客户端注册时执行,并确保所有必要的软件包都部署到客户端。 启动脚本中的某些参数确保客户端系统可以使用激活密钥和 GPG 密钥分配到其基础通道。
重要的是,您要仔细检查储存库信息,以确保它与基础通道储存库匹配。 如果储存库信息不完全匹配,启动脚本将无法下载正确的软件包。
其他注意事项:
-
所有客户端都需要一个启动储存库。 它在 SUSE Multi-Linux Manager 服务器上自动创建,并在产品同步时重新生成。 启动储存库包括在客户端上安装 Salt 和注册客户端所需的软件包。 有关创建启动储存库的更多信息,请参见 引导储存库。
-
openSUSE Leap 15 和 SLE 15 默认使用 Python 3。 基于 Python 2 的启动脚本必须为 openSUSE Leap 15 和 SLE 15 系统重新创建。 如果您使用 Python 2 注册 openSUSE 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> 替换为您的值:
-
在 SUSE Multi-Linux Manager 容器主机的命令提示符下,以 root 用户身份运行以下命令以进入服务器容器:
mgrctl term
-
执行以下命令(根据需要调整参数值)
mgr-bootstrap --activation-keys=<ACTIVATION_KEY> --script=bootstrap-<EDITED_NAME>.sh
mgr-bootstrap 命令提供了几个其他选项,包括设置特定主机名、特定 GPG 密钥和注册方法(salt-minion 或 salt-bundle)的功能。
|
有关详细信息,请参见 mgr-bootstrap 手册页,或运行 mgr-bootstrap --help。
3. 从 Web UI 中创建启动脚本
您可以使用 SUSE Multi-Linux Manager Web UI 创建可编辑的启动脚本。
在 SUSE Multi-Linux Manager Web UI 中,导航至 。
必填字段中会预填充从之前的安装步骤获得的值。 有关每个设置的详细信息,请参见 Bootstrap Script。
单击 更新 创建脚本。
启动脚本生成后,会存储在服务器的
/srv/www/htdocs/pub/bootstrap目录中。 或者,您可以通过 HTTPS 访问启动脚本。 将<example.com>替换为您的 SUSE Multi-Linux Manager 服务器的主机名:https://<example.com>/pub/bootstrap/bootstrap.sh
|
请勿在启动脚本中禁用 SSL。
确保在 有关自定义证书的详细信息,请参见 SSL 证书。 |
4. 编辑引导脚本
您可以复制并修改您创建的模板启动脚本以进行自定义。 修改启动脚本以与 SUSE Multi-Linux Manager 一起使用的最低要求是包含一个激活密钥。 大多数软件包都使用 GPG 签名,因此您还需要在系统上拥有受信任的 GPG 密钥才能安装它们。
在此过程中,您需要知道激活密钥的确切名称。
导航至 ,然后在 Tasks 框中,单击 Manage Activation Keys。
为频道创建的所有密钥都列在此页面上。
您必须准确输入您希望在启动脚本中使用的密钥的全名,格式与密钥字段中显示的一致。
有关激活密钥的更多信息,请参见 激活密钥。
在 SUSE Multi-Linux Manager 容器主机的命令提示符下,以 root 用户身份运行以下命令以进入服务器容器:
mgrctl term在您的 SUSE Multi-Linux Manager 服务器上,以 root 身份在命令行中切换到启动目录,使用:
cd /srv/www/htdocs/pub/bootstrap/创建并重命名用于每个客户端的两个模板引导脚本副本。
cp bootstrap.sh bootstrap-sles12.sh cp bootstrap.sh bootstrap-sles15.sh打开
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=
用户无需手动编辑脚本,只需在运行时传递以下环境变量即可:
ACTIVATION_KEYS:用于注册的激活密钥
ORG_GPG_KEY:GPG 密钥的路径或标识符
REACTIVATION_KEY:用于之前已注册的系统的重新激活密钥
MGR_SERVER_HOSTNAME:要注册客户端的服务器或代理的主机名使用环境变量可实现运行时的动态输入,并让用户更轻松地在不同系统或环境中重复使用同一引导脚本。
完成后,保存该文件,然后对第二个引导脚本重复此过程。
|
默认情况下,启动脚本将尝试安装 有关更多信息,请参见 Salt Bundle。 |
5. 运行引导脚本来注册客户端
创建好脚本后,您便可以使用它来注册客户端。
在 SUSE Multi-Linux Manager 容器主机的命令提示符下,以 root 用户身份运行以下命令以进入服务器容器:
mgrctl term在 SUSE Multi-Linux Manager 服务器上,切换到启动目录:
cd /srv/www/htdocs/pub/bootstrap/运行以下命令在客户端上执行启动脚本;将
EXAMPLE.COM替换为客户端的主机名:cat bootstrap-sles15.sh | ssh root@EXAMPLE.COM /bin/bash或者,在客户端上运行以下命令:
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如果您不需要覆盖任何值,完全可以省略环境变量:
curl -Sks https://server_hostname/pub/bootstrap/bootstrap.sh | /bin/bash
为避免出现问题,请确保启动脚本是使用
bash执行的。此脚本会下载位于您先前创建的储存库目录下的所需依赖项。
当脚本运行完成后,您可以检查客户端是否正确注册。 打开 SUSE Multi-Linux Manager Web UI,导航到 ,以确保新客户端已列出。 如果客户端未列出,请在 SUSE Multi-Linux Manager Web UI 中导航到 ,检查客户端密钥是否被接受。
|
当使用 SUSE Multi-Linux Manager 在客户端上安装新软件包或更新时,任何最终用户许可协议(EULA)将自动被接受。 要查看软件包EULA,请在 Web UI 中打开软件包详细信息页面。 |