Salt Project 是基于 Python 的开源软件,用于事件驱动型 IT 自动化、远程任务执行和配置管理。
有关 Salt 的详细信息,请参见《Salt 用户指南》。
Salt 要求在客户机中部署 Salt 工作节点。Salt 特定的客户机变量在每个虚拟机的主机端进行设置,随后由客户机中的 VMware Tools 读取。然后,VMware Tools 会下载 Salt 包,并在客户机内启动 Salt 工作节点实例。
前提条件
- 仅支持 64 位操作系统。
- 对于 Windows,支持 Windows 8 和更高版本。
注: 不支持 Windows 2008R2。
- 安装 VMware Tools 时必须安装 Salt 工作节点功能。默认情况下,此功能处于启用状态。
- 对 Linux 中已安装的软件包(如 curl 和 wget)存在依赖关系
过程
- 使用客户机变量的每个虚拟机的主机端配置
主机管理员使用 VIM API 或 vSphere/VC UI 管理特定虚拟机的主机端上的所有客户机变量设置。
-
- Windows:
默认情况下,会安装 VMware Tools Salt 工作节点功能,并且可以在自定义安装中修改该功能。
要使 VMware Tools 在特定虚拟机上创建 Salt 工作节点实例并将 Salt 工作节点与 Salt 主节点相连接,主机管理员必须为该虚拟机配置并设置客户机变量。
在 vSphere 主机 UI 中,选择特定虚拟机,右键单击并编辑设置。在“虚拟机选项”选项卡中,选择高级 > 编辑配置 > 添加/删除参数,然后将
- guestinfo./vmware.components.salt_minion.desiredstate 设置为 present
- guestinfo./vmware.components.salt_minion.args 设置为 <custom arguments to VMware Tools salt-minion setup script>
例如:
guestinfo./vmware.components.salt_minion.desiredstate → present
guestinfo./vmware.components.salt_minion.args → master=1.2.3.4
- Linux:
主机管理员必须安装 open-vm-tools 和 open-vm-tools-salt-minion,然后按如下方式设置特定虚拟机的客户机变量:
- guestinfo./vmware.components.salt_minion.desiredstate 设置为 present
- guestinfo./vmware.components.salt_minion.args 设置为 <custom arguments to VMware Tools salt-minion setup script>
例如:
guestinfo./vmware.components.salt_minion.desiredstate → present
guestinfo./vmware.components.salt_minion.args → master=1.2.3.4 id=12345
- Windows:
- 移除 Salt 工作节点
在 Windows 或 Linux 中,如果主机管理员将客户机变量 guestinfo./vmware.components.salt_minion.desiredstate 设置为 absent,则 VMware Tools 会移除客户机虚拟机中的 Salt 工作节点实例。
例如:
guestinfo./vmware.components.salt_minion.desiredstate → absent
- 检查客户机内 Salt 工作节点的最新状态
要在 vSphere UI 中检查客户机内 Salt 工作节点的最新状态,请使用以下客户机变量:
guestinfo.vmware.components.salt_minion.laststatus
-
- 使用 tools.conf 的客户机端配置
tools.conf 文件包含 .ini 格式的 VMware Tools 配置。此工具将查找 salt_minion 部分,并使用该部分下定义的配置。此文件存储在以下位置:
Windows - C:\ProgramData\VMware\VMware Tools\tools.conf
Linux - /etc/vmware-tools/tools.conf
以下是 tools.conf 中定义的 salt_minion 部分的示例:
[salt_minion] master=1.2.3.4 conf_file=/etc/salt/minion id=dev_minion
注: tools.conf 中仅提供工作节点配置选项。无法从 tools.conf 中获取所需的脚本操作。- 在客户机变量中配置监控状态更改的时间间隔:
VMware Tools 会定期轮询客户机变量以了解状态更改。默认轮询间隔为 180 秒,可以在 tools.conf 设置中进行配置。
[componentmgr]
poll-interval=180(默认值:180 秒)
- 启用和禁用组件 (salt_minion):
- 客户机管理员可以通过配置 tools.conf 设置来启用 salt_minion。
[componentmgr]
included=salt_minion
- 客户机管理员可以通过配置 tools.conf 设置来启用所有组件。
[componentmgr]
included=all(默认配置)
- 客户机管理员可以通过配置 tools.conf 设置来禁用所有组件。
[componentmgr]
included=none
- 客户机管理员可以通过配置 tools.conf 设置来启用 salt_minion。
- 在客户机变量中配置监控状态更改的时间间隔:
- 使用安装脚本安装 Salt 工作节点
-
- Linux 环境
在 Linux 系统上,安装脚本 svtminion.sh 是一个 bash 脚本,并具有以下必备条件:
- - systemctl
- - curl
- - sha512sum
- - vmtoolsd
- - grep
- - awk
- - sed
- - cut
- - wget
svtminion.sh --help
显示命令行选项。用法:./svtminion.sh [-c|--clear] [-d|--depend] [-h|--help] [-i|--install] [-j|--source] [-l|--loglevel] [-m|--minionversion] [-r|--remove] [-s|--status] [-v|--version]
其中,
例如:URL 位置./svtminion.sh [-j|--source]
指定要从中安装 Salt 工作节点的位置。默认位置为 repo.saltproject.io。http://my_web_server.com/my_salt_onedir
https://my_web_server.com/my_salt_onedir
file:////my_path/my_salt_onedir
//my_path/my_salt_onedir
注: 如果指定了 Salt 工作节点的特定版本 ([-m|--minionversion]),则会将其附加到源。默认使用最新版本。以下是安装 tools.conf 中定义的 salt_minion 的示例:
[salt_minion] master=1.2.3.4 conf_file=/etc/salt/minion id=dev_minion source=https://my_web_server.com/my_salt_onedir
注: 如果从 Salt 的标准存储库位置的专用副本进行安装,请使用source=https://repo.saltproject.io/salt/vmware-tools-onedir/
- Windows 环境
在 Windows 系统上,安装脚本 svtminion.ps1 是一个 powershell 脚本。Windows 的唯一必备条件是“vmtoolsd.exe”二进制文件,用于查询客户机变量数据。
要获取此脚本的帮助,请运行
svtminion.ps1 -h
或Get-Help svtminion.ps1
命令。用于在 Windows 客户机上管理 Salt 工作节点的 VMware Tools 脚本为:.\svtminion.ps1 [-Install] [-MinionVersion <String>] [-Source <String>] [[-ConfigOptions] <String[]>] [-LogLevel <String>] [-Help] [-Version] [<CommonParameters>]
其中,
-Source <String>
是包含安装程序的存储库的 URL 或路径。这将包含类似于在默认位置 https://repo.saltproject.io/salt/vmware-tools-onedir/ 中找到的目录结构。可以处理最常见的协议,如 http、https、ftp、unc、local
例如:
PS>svtminion.ps1 -Install PS>svtminion.ps1 -Install -MinionVersion 3004-1 master=192.168.10.10 id=dev_box PS>svtminion.ps1 -Install -Source https://my.domain.com/vmtools/salt
注:要查看示例,请键入
get-help .\svtminion.ps1 -examples
有关详细信息,请键入
get-help .\svtminion.ps1 -detailed
有关技术信息,请键入
get-help .\svtminion.ps1 -full
- Linux 环境
-
- 获取日志信息
客户机管理员可以从以下路径获取与 Salt 工作节点相关的日志信息:Windows
日志文件 位置 用于检查 Salt 工作节点状态的日志文件 C:\Windows\Temp\vmware-svtminion-status-{Timestamp}.log 在客户机内安装 Salt 工作节点实例的日志文件 C:\Windows\Temp\vmware-svtminion-install-{TimeStamp}.log 在客户机内移除 Salt 工作节点实例的日志文件 C:\Windows\Temp\vmware-svtminion-remove-{TimeStamp}.log 用于在客户机内安装或移除 Salt 工作节点实例后检查运行时信息的日志文件 C:\salt\var\log\minion log files Linux日志文件 位置 用于检查 Salt 工作节点状态的日志文件 /var/log/vmware-svtminion.sh-status-{Timestamp}.log 在客户机内安装 Salt 工作节点实例的日志文件 /var/log/vmware-svtminion.sh-install-{TimeStamp}.log 在客户机内移除 Salt 工作节点实例的日志文件 /var/log/vmware-svtminion.sh-remove-{TimeStamp}.log 用于在客户机内安装或移除 Salt 工作节点实例后检查运行时信息的日志文件 /var/log/salt/minion