此使用案例的目標是透過將 Windows 虛擬機器連線到 Automation Config 環境,以程式設計方式在部屬節點上安裝 Salt 部屬節點服務。

必要條件

在 Windows 環境中使用 API 部署部屬節點之前,您必須:
  • 具有已部署 RaaS 的 Automation Config 環境。
  • 已安裝 Salt 主節點和 Salt 部屬節點。
  • 已部署 Windows 虛擬機器。

程序

  1. 確認 Salt 主節點上的資料夾 etc/salt/cloud.deploy.d 包含以下檔案。
    Salt 主節點上 cloud.deploy.d 目錄中所需檔案的清單

    如果看不到這些檔案,請連絡支援。

    備註: 檔案名稱中的 xxxx (例如 salt-xxxx-windows--x86.tar.gz) 應與 Salt 主節點的版本相符。若要驗證 Salt 主節點的版本,請在 Salt 主節點上執行 salt-master -V 命令。
  2. 如果您的環境是氣隙環境,請完成以下步驟:
    1. 開啟 /etc/raas/raas 下的 RaaS 組態檔。
    2. 將以下行新增到該組態檔:
      minion_deployment:
        airgap_install: true
    3. 使用 service raas restart 命令重新啟動 RaaS 服務。
    備註: 如果您使用的是強化 Linux 虛擬機器,則在某些情況下,無法從虛擬機器上的 /tmp 執行指令碼。
    • 如果您使用的是 Automation Assembler 8.10.2 版或更高版本:將 additionalAuthParams 內容新增至雲端範本中的 Automation Config 資源。如需詳細資訊,請參閱〈將 Automation Config 資源新增到雲端範本〉
      additionalAuthParams:
        profile:
          tmp_dir: /var/cache/salt
    • 如果您使用的是 Automation Assembler 8.10.1 版或更低版本:利用以下內容修改 /etc/salt/cloud.providers.d/ssc_saltify_provider.conf 檔案
      ssc_saltify_provider:
        driver: saltify
        tmp_dir: /var/cache/salt
      如果此組態檔不存在,請建立該檔案並新增上述設定。
  3. 在 Salt 主節點的終端機中,執行 pip3 install pypsexec smbprotocolpip3 install impacket --ignore-installed 命令,安裝以下程式庫。
    備註: 使用 LCM 安裝包含 Salt 主節點的 Automation Config 應用裝置時,不需要執行此步驟。但是,手動安裝 Salt 主節點時,必須執行此步驟。
  4. 若要確定 Salt 主節點的 FQDN,請在 Salt 主節點的終端機中執行 salt saltmaster grains.get fqdn 命令。
  5. 在 Windows 機器上,確認 C: \Windows\System32\drivers\etc\hosts 檔案中設定了 Salt 主節點的 IP 和 FQDN。
  6. 在 Windows 機器上開啟 PowerShell 並執行下列命令以開啟所需的連接埠:
    連接埠 命令
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  7. 在 Salt 主節點的終端機中,使用此命令在 Salt 主節點上開啟連接埠 4505 和 4506:
    連接埠 命令
    4505-4506 netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506

    如需有關 Salt 通訊模型的詳細資訊,請參閱〈瞭解 Automation Config

  8. 在 Windows 機器上執行 ping [FQDN] 命令,確保已為 Salt 主節點設定該 FQDN。
    在 Windows 機器上執行 ping FQDN 命令的結果
  9. 使用 SSEAPI 用戶端執行以下 API 呼叫並使用適用於您環境的正確認證。
    備註: 如果將 Automation ConfigVMware Aria Automation 整合,則您使用雲端範本部署部屬節點時, VMware Aria 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 函數開始在 Automation Config 環境中執行。可透過以下兩種方法驗證工作是否正在執行:在 Automation Config 使用者介面的 活動索引標籤中進行驗證,也可以執行 python3 命令,然後再執行 client.api.minions.get_minion_deployments() 命令進行驗證。

結果

部屬節點已在 Windows 環境中透過 API 呼叫成功部署並設定。

下一步

透過以下兩種方式驗證是否已成功部署部屬節點:使用 執行命令視窗對部屬節點執行 test.ping 命令;或在 Salt 主節點命令視窗中執行 \* test.ping\* test.versions 命令。