Saltstack-salt-proxy-minions
SaltStack-ソルトプロキシミニオン
ルーター、ネットワーク機器など、カスタムOS、限られたメモリ、高度なセキュリティを考慮したデバイスがたくさんあります。 これらのデバイスでは、標準の salt-minion をインストールできず、その後これらのシステムを管理できませんでした。 ただし、Saltはこの制約を克服するための革新的な技術を提供します。
Saltには、リモートシステムで実行されているRESTサービスを使用してリモートシステムを制御する別のモジュール、ソルトプロキシミニオンがあります。 このRESTサービスは、* Representational State Transfer(REST)*の概念を使用して記述されたHTTPベースのWebサービスであり、実装も消費も簡単です。
すべてのデバイスには、複雑なアプリケーションを作成するための独自のSDKと開発環境があります。 Saltは、Saltインターフェイス仕様に従ってデバイスでRESTサービスが開発されることを期待しています。 また、SaltはREST Webサービスを作成するためのpythonモジュールも提供します。 デバイスがpythonをサポートしている場合、REST Webサービスを簡単に開発できます。
REST Webサービスが開発されてリモートシステムに展開されると、Saltは、Salt Minionの代わりにREST Webサービスを使用してリモートデバイスを制御するように構成できます。
実施例
ライブ作業環境を使用して*ソルトプロキシミニオン*の概念を学習しましょう。 ライブ環境では、マスターミニオンとプロキシミニオンの両方にLinuxシステムを選択しました。 ソルトミニオンの代わりにREST Webサービスを使用してシステムを制御します。
REST Webサービスのインストールと構成
Saltは、contribモジュールでproxyminion_rest_exampleと名付けられたREST Webサービス実装のサンプルを提供します。 サンプルWebサービスをインストールしましょう。
- pipを使用して*「ボトル」をインストールします。 *bottle コマンドは、Webアプリケーションを開発するためのPython Webフレームワークです。
pip install bottle = 0.12.8
- githubから saltstack/salt-contrib プロジェクトをダウンロードします。 それ以外の場合は、次のコマンドを使用してプロジェクトを複製します。
git clone https://github.com/saltstack/salt-contrib
- ターミナルを開き、 salt-contrib ディレクトリに移動します。
- このsalt-contribディレクトリには、 proxyminion_rest_example というフォルダーがあります。 このフォルダーには、REST Webサービスのサンプル実装が含まれています。 proxyminion_rest_exampleフォルダーに移動します。
- 次のコマンドを実行して、REST Webサービスを開始します。
python rest.py --address <your ip address> --port 8000
- ブラウザーを開き、http://«IPアドレス»:8000をロードします。 これにより、以下のスクリーンショットに示すように、サービスとパッケージを含むデフォルトページが表示されます。
これで、REST Webサービスを構成しました。RESTWebサービスを照会してシステムを制御するようにソルトプロキシを構成する方法を確認します。
ソルトプロキシを構成する
Salt-Proxyを設定するには、以下の手順に従う必要があります。
- salt-proxyのマスターノードを指定する必要があります。/etc/salt/proxyにあるプロキシ構成ファイルの場所を編集し、次のコードを入力します。
master: <your ip address>
- 次のコードブロックに示すように、 /srv/pillar/top.sls にベースピラーファイルを変更/作成します。
base:
'p8000':
- p8000
- 以下のコードブロックに示すように、 /srv/pillar に新しいピラーファイル p8000.sls を追加します。
proxy:
proxytype: rest_sample
url: http://<your ip address>:8000
- 次のコマンドを使用して、デバッグモードでsalt-proxyを起動します。
salt-proxy --proxyid = p8000 -l debug
- salt-minionと同様に、以下に示すように salt-proxy key を受け入れます。
salt-key -y -a p8000
The following keys are going to be accepted:
Unaccepted Keys:
p8000
Key for minion p8000 accepted.
ソルトの実行
次に、 salt コマンドを実行し、以下に示すように ping.test 関数を呼び出します。
salt p8000 test.ping
*salt* を使用して、REST Webサービスでサポートされている任意の機能を実行できます。これは *salt-minion* に似ています。
たとえば、次のコマンドを使用してグレイン情報を取得できます。
salt p8000 grains.items