この使用事例の目的は、Windows 仮想マシンを Automation Config 環境に接続して、プログラムによって Salt ミニオン サービスをミニオンにインストールすることです。

前提条件

Windows 環境で API を使用してミニオンを展開するには、次の条件が満たされている必要があります。
  • RaaS が展開された Automation Config 環境がある。
  • Salt マスターと Salt ミニオンがインストールされている。
  • Windows 仮想マシンが展開されている。

手順

  1. Salt マスターの etc/salt/cloud.deploy.d フォルダに次のファイルが格納されていることを確認します。
    Salt マスターの cloud.deploy.d ディレクトリ内にある必要なファイルのリスト

    ファイルが表示されない場合は、サポートにお問い合わせください。

    注: ファイル名( salt-xxxx-windows--x86.tar.gz など)の xxxx は、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 以降を使用している場合:クラウド テンプレートの Automation Config リソースに additionalAuthParams プロパティを追加します。詳細については、クラウド テンプレートへの 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 smbprotocol および pip3 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>',
    
    )
    Automation Config 環境で deploy.minion 関数の実行が開始されます。ジョブが実行されていることを確認するには、 Automation Config ユーザー インターフェイスの [アクティビティ] タブを使用するか、 python3 コマンドを実行してから client.api.minions.get_minion_deployments() を実行します。

結果

Windows 環境および API 呼び出しからミニオンが正常に展開されて、構成されました。

次のタスク

[コマンドの実行] ウィンドウを使用してミニオンに対して test.ping コマンドを実行するか、Salt マスター コマンド ウィンドウで \* test.ping コマンドと \* test.versions コマンドを実行して、ミニオンが正常に展開されたことを確認します。