Salt 捆绑包
1. 什么是 Salt 捆绑包?
Salt 软件包是单个二进制软件包,包含 Salt 受控端、Python 3、必需的 Python 模块和库。
Salt 软件包随 Python 3 及 Salt 运行所需的所有依赖项一起提供。因此,Salt 软件包不会将客户端上安装的 Python 版本作为系统软件使用。 Salt 软件包可以安装在不满足特定 Salt 版本要求的客户端上。
此外,还可以在运行 Salt 受控端连接到 Salt 主控端以外的 SUSE Multi-Linux Manager Salt 主控端的系统上使用 Salt 软件包。
2. 使用 Salt 捆绑包将客户端注册为受控端
使用 Salt 软件包的注册方法是推荐的注册方法。 本节解释了当前实现的优点和局限性。
Salt 软件包以 venv-salt-minion 软件包的形式提供,该软件包包含 Salt、Python 3 和 Salt 所依赖的 Python 模块。
使用 Web UI 启动也使用 Salt 软件包,因此使用 Web UI 启动不依赖于 Python。 使用 Salt 软件包后,客户端不再需要提供任何 Python 解释器或模块。
如果您启动新的客户端,使用 Salt 软件包的注册方法是默认方法。
您可以将现有客户端切换到 Salt 软件包方法。
如果您切换,salt-minion 软件包及其依赖项将保持安装。
2.1. 使用 Salt 软件包与 Salt 受控端。
Salt 软件包可以与由 Salt 主控端管理的 Salt 受控端同时使用,而该主控端不是 SUSE Multi-Linux Manager 服务器。
如果 Salt 软件包安装在客户端上,SUSE Multi-Linux Manager 服务器将管理 Salt 软件包的配置文件,在这种情况下,salt-minion 的配置文件将不会被管理。
有关更多信息,请参见 Salt 软件包配置。
|
2.2. 从 Salt 受控端切换到 Salt 软件包
Salt 状态 util.mgr_switch_to_venv_minion 可用于从 salt-minion 切换到 venv-salt-minion。
建议分两步切换到 venv-salt-minion,以避免在切换过程中出现问题:
util.mgr_switch_to_venv_minion 状态切换到 venv-salt-minion-
首先应用
util.mgr_switch_to_venv_minion且不指定 pillar。 这将导致切换到venv-salt-minion,并复制配置文件等。 它不会清理原有的salt-minion配置文件及其软件包。salt <minion_id> state.apply util.mgr_switch_to_venv_minion
-
应用
util.mgr_switch_to_venv_minion并将mgr_purge_non_venv_salt设为True以移除salt-minion,并将mgr_purge_non_venv_salt_files设为True以移除所有与salt-minion相关的文件。 第二步确保第一步已处理,然后去除旧配置文件和现已过时的salt-minion软件包。salt <minion_id> state.apply util.mgr_switch_to_venv_minion pillar='{"mgr_purge_non_venv_salt_files": True, "mgr_purge_non_venv_salt": True}'
2.3. 其他注意事项
-
如果仅运行第二步而跳过第一步,状态应用过程可能会失败,因为此过程需要停止用于在客户端执行命令的
salt-minion。 -
也可以避免安装 Salt 软件包,而继续使用
salt-minion。 在这种情况下,请指定以下选项之一:-
执行带有
--no-bundle选项的mgr-bootstrap。 -
在生成的启动脚本中将
AVOID_VENV_SALT_MINION设为1。 -
对于启动状态,在
/srv/pillar/salt_bundle_config.sls中将mgr_avoid_venv_salt_minionpillar 设为True。
-
3. 使用 Salt 捆绑包执行 SSH 推送
在对客户端执行 SSH 推送操作时,也可使用 Salt 捆绑包。
一个 shell 脚本在执行任何 venv-salt-minion 命令之前,将 Salt 软件包部署到目标系统,而不安装 Salt。因为 Salt 软件包包含整个 Salt 代码库,所以没有部署 salt-thin。
SSH 推送(包括使用 Web UI 进行引导)在 Salt 软件包内使用 Python 3 解释器.
目标系统不需要安装其他任何 Python 解释器。
随 Salt 软件包部署的 Python 3 用于处理客户端上的 SSH 推送会话,因此 SSH 推送(包括使用 Web UI 进行引导)不依赖于在系统上安装的 Python.
可以将 salt-thin 用作后备方法,但这需要在客户端上安装 Python 3。
此方法不推荐使用,也不受支持,仅用于开发目的。
在 配置文件中将 web.ssh_use_salt_thin 设置为 true /etc/rhn/rhn.conf。
|
4. 使用 pip 通过 Python 软件包扩展 Salt 捆绑包
Salt 捆绑包提供了 pip,使得可以通过额外的 Python 软件包扩展捆绑的 Salt 受控端的功能。
默认情况下,salt <minion_id> pip.install <package-name> 会将 <package_name> 指定的 Python 软件包安装到 /var/lib/venv-salt-minion/local 中。
|
如果需要,可以通过为 [Service] Environment=VENV_PIP_TARGET=/new/path/local/venv-salt-minion/pip |
|
通过 |