この使用事例の目的は、Linux 仮想マシンを Automation Config 環境に接続して、プログラムによって Salt ミニオン サービスをミニオンにインストールすることです。
前提条件
Linux 環境で API を使用してミニオンを展開するには、次の条件が満たされている必要があります。
- RaaS が展開された Automation Config 環境がある。
- Salt マスターと Salt ミニオンがインストールされている。
- Linux 仮想マシンが展開されている。
- ポート 22 がファイアウォールが設定されていないことと、ミニオンに使用できることを確認します。
手順
- フォルダ etc/salt/cloud.deploy.d にこれらのファイルのコレクションが含まれていることを確認します。これらのファイルは、OS ディストリビューション リリースと、システムで必要な Salt リリースに一致する必要があります。
ファイルが表示されない場合は、サポートにお問い合わせください。
注: ファイル名(salt-xxxx-redhat-8-x86_64-amd64.tar.gz など)の xxxx は、Salt マスターのバージョンと一致する必要があります。Salt マスターのバージョンを確認するには、Salt マスターで
salt-master -V コマンドを実行します。
- 環境がエアギャップ環境の場合は、次の手順を実行します。
-
/etc/raas/raas
で RaaS 構成ファイルを開きます。
- 構成ファイルに次の行を追加します。
minion_deployment:
airgap_install: true
-
service raas restart
コマンドを使用して、RaaS サービスを再起動します。
注: 強化された Linux 仮想マシンを使用しているときに、仮想マシンの
/tmp
からスクリプトを実行できない場合があります。
- Salt マスターの FQDN を特定するには、Salt マスターのターミナルで
salt saltmaster grains.get fqdn
コマンドを実行します。
- ping [FQDN] コマンドを実行して、Salt マスターの FQDN が構成されていることを確認します。
- Python を開くには、
python3
を実行します。
- 環境に適した認証情報を使用して、SSEAPI クライアントを使用して次の 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 ユーザー インターフェイスの [アクティビティ] タブで、ジョブが実行されていることを確認できます。
注: Automation Assembler からミニオンを展開している場合、この API 呼び出しは Automation Assembler によって実行されます。
結果
Linux 環境および API 呼び出しからミニオンが正常に展開されて、構成されました。
次のタスク
[コマンドの実行] ウィンドウを使用してミニオンに対して
test.ping コマンドを実行するか、Salt マスター コマンド ウィンドウで
\* test.ping コマンドと
\* test.versions コマンドを実行して、ミニオンが正常に展開されたことを確認します。