此使用案例的目標是透過將 Windows 虛擬機器連線到 SaltStack Config 環境,以程式設計方式在部屬節點上安裝 Salt 部屬節點服務。
必要條件
在 Windows 環境中使用 API 部署部屬節點之前,您必須:
- 具有已部署 RaaS 的 SaltStack Config 環境。
- 已安裝 Salt 主節點和 Salt 部屬節點。
- 已部署 Windows 虛擬機器。
程序
- 確認 Salt 主節點上的資料夾 etc/salt/cloud.deploy.d 包含以下檔案。
如果看不到這些檔案,請連絡支援。
備註: 檔案名稱中的 xxxx (例如
salt-xxxx-windows--x86.tar.gz
) 應與 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 命令。