API (RaaS) は、SaltStack Config クライアントの接続先となるアプリケーション サーバを参照します。これらのクライアントには、アプリケーション、SaltStack Config のユーザー インターフェイス コンポーネント、適切に構成されたマスター、および RaaS の他のユーザーが含まれます。アプリケーション サーバは、eAPI サーバとも呼ばれます。

注:

SaltStack Config の詳細な API ドキュメントが VMware の API ドキュメント サイト (https://code.vmware.com/apis/1179/saltstack-config-raas) で PDF 形式で提供されています。

RaaS は、モジュール(「リソース」)と関数(「メソッド」)に分けることができます。API 呼び出し test.echo(‘hello, world’) を例に考えると、リソースは test、メソッドは echo() となります。引数は、位置またはキーワードによってメソッドに渡されます。

RaaS にアクセスする方法には、RPC クライアント経由と HTTP(または HTTPS)ブリッジ経由の 2 つがあります。

RaaS に接続するには、client = APIClient() で次のオプションを設定します。

  • server
  • username
  • パスワード
  • config_name=’internal’ LDAP を使用している場合は認証バックエンド名に変更
  • timeout=60 # どの操作を実行する場合でも最大で 60 秒かかる
  • ssl_key=None
  • ssl_cert=None
  • ssl_context=None
  • ssl_validate_cert=True 自己署名証明書を使用する場合は False に設定

例:

from sseapiclient import APIClient
client = APIClient('https://localhost', 'root', 'PASSWORD', ssl_validate_cert=False)
注:

6.2 よりも前のバージョンでは API 接続の確立に SyncClient.connect() が使用されますが、これはバージョン 6.2 以降でも互換性があります。SyncClient.connect() を使用している場合、変更は必要ありません。

API 構文

client.api.<interface>.<method>(parameter=parameter_value)

例:

from sseapiclient import APIClient
client = APIClient('https://localhost', 'root', 'PASSWORD')
client.api.sec.download_content(auto_ingest=True)

Curl での API (RaaS) の使用

HTTP および JSON で RaaS を直接使用することもできます。curl で API を使用する例を次に示します。xsrf が有効になっている場合は、最初に xsrf Cookie およびトークンを取得する必要があります。xsrf トークンおよび Cookie を取得して使用する方法については、HTTP Bridgeを参照してください。Python API クライアントを使用している場合、これはデフォルトで自動的に実行されます。

例:

curl --user 'root:PASSWORD' --url 'https://localhost/rpc' \
  --data '{
    "resource": "sec",
    "method": "download_content",
    "kwarg": {"auto_ingest": true}
  }'

ライセンス

ライセンスの有効期限が近付くと、警告のための通知が SaltStack Config ユーザー インターフェイスに表示されます。RaaS ユーザーは、[ライセンス] ワークスペースを使用してライセンスのステータスを追跡し、有効な状態を維持する必要があります。ライセンスの有効期限が切れると、RaaS サービスは停止します。

RPC クライアント

sseapiclient モジュールのプログラム RPC クライアントは、Python バージョン 2.7 および Python バージョン 3.5 以降で動作します。クライアントは、HTTP または HTTPS を介して SSE に接続し、認証を行います。RPC クライアントを使用すると、HTTP ブリッジよりも多少使いやすいという利点があります。

HTTP ブリッジ

HTTP(または HTTPS)ブリッジは、SSE によって公開されているエンドポイントに POST された JSON ペイロードを受け入れ、RPC 呼び出しに変換してから結果を JSON として返します。エンドポイントは Cookie ベースの認証をサポートするため、認証情報を渡す必要があるのは 1 つのセッションで 1 回のみです。ブリッジを使用すると、1 つのペイロードで複数の呼び出しを送信することもできます。

/etc/raas/raas.conf tornado_xsrf_cookies_enabled: True によって xsrf が有効になっている場合(install 状態のデフォルト)、REST 呼び出しのヘッダーに X-Xsrftoken: を指定する必要があります。最善の方法は、get 呼び出しで Cookie を保存し、その Cookie を使用してヘッダー トークンを提供する方法です。この Cookie は、$HOME(ユーザーのホーム)ディレクトリに保存されます。ペイロードはディクショナリです。

xsrf ヘッダーを含む curl 呼び出しの例:

curl -k -c $HOME/eAPICookie.txt -u root:PASSWORD 'https://localhost/account/login' >/dev/null
curl -k -u root:PASSWORD -b $HOME/eAPICookie.txt \
  -H 'X-Xsrftoken: '$(grep -w '_xsrf' $HOME/eAPICookie.txt | cut -f7)'' \
  -X POST https://localhost/rpc \
  -d '{
    "resource": "sec",
    "method": "download_content",
    "kwarg": {"auto_ingest": true}
  }'

この例では、以下を前提にしています。

  • client=APIClient(<addr>,<user>, <pwd>)
  • eAPI のデフォルト状態ベースのインストール
  • SSL 有効
  • sseapiclient のインポート例:
    from sseapiclient import APIClient