此用例的目标是通过将 Windows 虚拟机连接到 SaltStack Config 环境,以编程方式在工作节点上安装 Salt 工作节点服务。
前提条件
在 Windows 环境中使用 API 部署工作节点之前,您必须:
- 具有已部署 RaaS 的 SaltStack Config 环境。
- 已安装 Salt 主节点和 Salt 工作节点。
- 已部署 Windows 虚拟机。
过程
- 确认 Salt 主节点上的文件夹 etc/salt/cloud.deploy.d 包含以下文件。
如果看不到这些文件,请联系支持部门。
注: 文件名(例如
salt-xxxx-windows--x86.tar.gz
)中的 xxxx 应与 Salt 主节点的版本一致。要验证 Salt 主节点的版本,请在 Salt 主节点上运行
salt-master -V 命令。
- 在 Salt 主节点的终端中,运行
pip3 install pypsexec smbprotocol
和 pip3 install impacket --ignore-installed
命令,安装以下库。
- 要确定 Salt 主节点的 FQDN,请在 Salt 主节点的终端运行
salt saltmaster grains.get fqdn
命令。
- 在 Windows 计算机上,确认 C: \Windows\System32\drivers\etc\hosts 文件中配置了 Salt 主节点的 IP 和 FQDN。
- 在 Windows 计算机上打开 PowerShell 并运行以下命令以打开所需的端口:
端口 |
命令 |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Enable-Psremoting |
- 在 Salt 主节点的终端中,使用以下命令在 Salt 主节点上打开端口 4505 和 4506:
端口 |
命令 |
4505-4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
有关 Salt 通信模型的详细信息,请参见了解 SaltStack 。
- 在 Windows 计算机上运行 ping [FQDN] 命令,确保已为 Salt 主节点配置该 FQDN。
- 使用 SSEAPI 客户端执行以下 API 调用并使用适用于您环境的正确凭据。
注: 如果将
SaltStack Config 与
vRealize Automation 集成,则您使用云模板部署工作节点时,
vRealize Automation 服务将为您执行此 API 调用。
from sseapiclient import APIClient
client = APIClient('https://<master-ip>', '<ssc-username>', '<sscpassword>', ssl_validate_cert=False)
client.api.minions.deploy_minion(
master_id = '<master-id>',
host_name_ip = '<prospective minion’s ip>',
os = ‘<prospective minion’s os>’,
minion_id = '<desired-minion-name-for-prospective-minion>',
username = '<ssh-username-for-prospective-minion>',
password = '<ssh-password-for-prospective-minion>',
)
deploy.minion
函数开始在
SaltStack Config 环境中运行。可通过以下两种方法验证作业是否正在运行:在
SaltStack Config 用户界面的
活动选项卡中进行验证;也可以运行
python3 命令,然后再运行
client.api.minions.get_minion_deployments() 命令进行验证。
结果
工作节点已在 Windows 环境中通过 API 调用成功部署并配置。
下一步做什么
通过以下两种方法验证是否已成功部署工作节点:使用
运行命令窗口对工作节点运行
test.ping 命令;或在 Salt 主节点命令窗口中运行
\* test.ping 和
\* test.versions 命令。