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

    • 移除 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
  • 使用安装脚本安装 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]

        其中,./svtminion.sh [-j|--source] 指定要从中安装 Salt 工作节点的位置。默认位置为 repo.saltproject.io

        例如:URL 位置

        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 -hGet-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

  • 获取日志信息
    客户机管理员可以从以下路径获取与 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