この使用事例の目的は、Windows 仮想マシンを SaltStack Config 環境に接続して、プログラムによって Salt ミニオン サービスをミニオンにインストールすることです。
前提条件
Windows 環境で API を使用してミニオンを展開するには、次の条件が満たされている必要があります。
- RaaS が展開された SaltStack Config 環境がある。
- Salt マスターと Salt ミニオンがインストールされている。
- Windows 仮想マシンが展開されている。
手順
- Salt マスターの etc/salt/cloud.deploy.d フォルダに次のファイルが格納されていることを確認します。
注: ファイル名(salt-xxxx-readhat-8-x86_64-amd64.tar.gz など)の xxxx は、Salt マスターのバージョンと一致する必要があります。Salt マスターのバージョンを確認するには、Salt マスターで
salt-master -V コマンドを実行します。
-
pip3 install pypsexec smbprotocol コマンドと pip3 install impacket --ignore-installed コマンドを実行して、ライブラリをインストールします。
-
salt saltmaster grains.get fqdn コマンドを入力して、Salt マスターの FQDN を特定します。
- Windows マシンの C: \Windows\System32\drivers\etc\hosts ファイルが Salt マスターの IP アドレスとホスト名/FQDN を使用して構成されていることを確認します。
- PowerShell を開き、次のコマンドを実行して必要なポートを開きます。
| ポート |
コマンド |
| 445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Set-Item (dir wsman:\localhost\Listener*\Port - Recurse).pspath 445 -ForceRestart-Service winrm |
| 4505-4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
- ping [FQDN] コマンドを実行して、Salt マスターの FQDN が構成されていることを確認します。
- 環境に適した認証情報を使用して、次の 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>',
)
SSC 環境で deploy.minion 関数の実行が開始されます。これを確認するには、SSC ユーザー インターフェイスの [アクティビティ] タブを使用するか、
python3 コマンドを実行してから
client.api.minions.get_minio_deployments() を実行します。
結果
Windows 環境および API 呼び出しからミニオンが正常に展開されて、構成されました。
次のタスク
[コマンドの実行] ウィンドウを使用してミニオンに対して
test.ping コマンドを実行するか、Salt マスター コマンド ウィンドウで
\* test.ping コマンドと
\* test.versions コマンドを実行して、ミニオンが正常に展開されたことを確認します。