6.1.1 Ops I提供部品
Workflow定義では、アクティビティで何を実行するかをTask model内のactionにて定義します。その際に使用可能なOps I提供部品について、以下に詳細を示します。
(1)oi.fetch_access_token
Ops Iアクセストークンを取得します。このOps Iアクセストークンは、ワークフロー内からOps IのREST APIを実行する際に利用します。
oi.fetch_access_tokenを使用する場合は、以下のパラメータを設定する必要があります。
(表)oi.fetch_access_tokenのパラメータ
パラメータ | 必須 | 型 | 説明 |
---|---|---|---|
opsi_user_secret_mount_point | Yes | 文字列 | Ops Iアクセストークンを取得するユーザーのシークレット情報が格納されているSecrets Enginesのパス。 |
opsi_user_secret_path | Yes | 文字列 | Ops Iアクセストークンを取得するユーザーのシークレット情報が格納されているパス。 |
opsi_user_secret_kv_version | Yes | 数値 | シークレットのSecrets Enginesのバージョン。 1:レガシーなSecrets Engines 2:新しいSecrets Engines |
opsi_user_secret_version | Yes | 文字列 | 格納されているシークレット情報のバージョン。 |
パラメータで指定した場所には以下のシークレット情報が格納されている必要があります。
シークレット情報については「Secretの作成」を参照してください。
- username: Ops Iアクセストークンを取得するユーザー名
- password: Ops Iアクセストークンを取得するユーザーのパスワード
- domain: Ops IのFQDN(例: “<テナント名>.ops-integration.com")
oi.fetch_access_tokenの戻り値は以下の通りです。
パラメータ | 説明 |
---|---|
output.access_token | Ops Iアクセストークン。 |
output.origin | Ops IのURL。 |
(2)oi.insert_into_custom_table
カスタムテーブルに指定したレコードを挿入します。
oi.insert_into_custom_tableを使用する場合は、以下のパラメータを設定する必要があります。
(表)oi.insert_into_custom_tableのパラメータ
パラメータ | 必須 | 型 | 説明 |
---|---|---|---|
parent_execution_id | Yes | 文字列 | ワークフローのexecution_id※。ワークフローのアクションとして実行した別のワークフローの中で使用する場合でも、元のワークフローのexecution_idを指定する必要がある。 |
graphql_user_object_type | Yes | 文字列 | レコードを挿入するカスタムテーブルの名前。Datamodelのmanifest.yamlで定義したテーブル名に「u_」を連結したもの。 例)”u_my_custom_table” |
graphql_user_object_data | Yes | オブジェクト | 挿入するレコードをdataフィールドに格納したオブジェクト。 |
opsi_user_secret_mount_point | Yes | 文字列 | Ops Iアクセストークンを取得するユーザーのシークレット情報が格納されているSecrets Enginesのパス。 |
opsi_user_secret_path | Yes | 文字列 | Ops Iアクセストークンを取得するユーザーのシークレット情報が格納されているパス。 |
opsi_user_secret_kv_version | Yes | 数値 | シークレットのSecrets Enginesのバージョン。 1:レガシーなSecrets Engines 2:新しいSecrets Engines |
opsi_user_secret_version | Yes | 文字列 | 格納されているシークレット情報のバージョン。 |
パラメータで指定した場所には以下のシークレット情報が格納されている必要があります。
シークレット情報については「Secretの作成」を参照してください。
- username: Ops Iアクセストークンを取得するユーザー名
- password: Ops Iアクセストークンを取得するユーザーのパスワード
- domain: Ops IのFQDN(例: “<テナント名>.ops-integration.com")
oi.insert_into_custom_tableの戻り値はありません。
※<% ctx().st2.action_execution_id %>で取得します。詳細についてはStackStorm公式ページを参照してください。
https://docs.stackstorm.com/3.7/orquesta/stackstorm.html#stackstorm-context
(3)awx.run_job_template
自動化のジョブテンプレートを実行します。
awx.run_job_templateを使用する場合は、以下のパラメータを設定する必要があります。
パラメータ | 必須 | 型 | 説明 |
---|---|---|---|
name | Yes※1 | 文字列 | 実行するジョブテンプレートの名前。 |
organization | Yes※1 | 文字列 | 対象のジョブテンプレートが属する組織の名前。 |
project | Yes※1 | 文字列 | 対象のジョブテンプレートが属するプロジェクトの名前。 |
object_id | Yes※1 | 数値 | 対象のジョブテンプレートのID。 |
auth_type | No | 文字列 | 自動化へのログインに用いる認証タイプ。以下の値のうちどれか。デフォルトは”basic”。 -”basic” -”basic_with_vault_kv2” -”saml” -”saml_with_vault_kv2” |
vault_role_id | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、シークレットにアクセスするAppRoleのロールIDを設定する。 |
vault_secret_id | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、シークレットにアクセスするAppRoleのシークレットIDを設定する。 |
vault_backend_name | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のクレデンシャル情報が保存されているシークレットバックエンドの名前を設定する。 |
vault_secret_path | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のクレデンシャル情報が保存されているシークレットのパスを設定する。 |
vault_user_key | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のユーザー名のキーを設定する。デフォルトは”user_name”。 |
vault_pw_key | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のパスワードのキーを設定する。デフォルトは”password ”。 |
user_name | No | 文字列 | auth_typeで”basic”または”saml”を指定した場合、自動化のユーザー名を設定する。 |
password | No | 文字列 | auth_typeで”basic”または”saml”を指定した場合、自動化のユーザーパスワードを設定する。 |
payload | Yes | 文字列 | 自動化APIへのリクエストボディを設定する。 リクエストボティの形式については、内部で実行されている自動化のAPI(POST /api/v2/job_templates/{id}/launch/)のリファレンス参照。 https://docs.ansible.com/automation-controller/4.4/html/controllerapi/api_ref.html#/Job_Templates |
※1 実行するジョブテンプレートの指定方法は、name、organization、projectを用いる方法と、object_idを用いる方法があります。両方の方法を用いた場合はobject_idが優先されます。
awx.run_job_templateの戻り値は以下の通りです。
パラメータ | 説明 |
---|---|
result | 実行したジョブのID。awx.get_job_resultで使用する。 |
(4)awx.get_job_result
自動化のジョブの結果を取得します。
awx.get_job_resultを使用する場合は、以下のパラメータを設定する必要があります。
パラメータ | 必須 | 型 | 説明 |
---|---|---|---|
id | Yes | 数値 | ジョブのID。awx.run_job_templateアクションの戻り値を使う。 |
format | No | 文字列 | 結果のフォーマット。以下の値のうちどれか。デフォルトは”txt”。 -”txt” -”api” -”html” -”ansi” -”json” -”txt_download” -”ansi_download” 詳細は、内部で実行している自動化のAPI(/api/v2/jobs/{id}/stdout/?format={format})のリファレンス参照。 https://docs.ansible.com/automation-controller/4.4/html/controllerapi/api_ref.html#/Jobs/Jobs_jobs_stdout_read |
auth_type | No | 文字列 | 自動化へのログインに用いる認証タイプ。以下の値のうちどれか。デフォルトは”basic ”。 -”basic” -”basic_with_vault_kv2” -”saml” -”saml_with_vault_kv2” |
vault_role_id | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、シークレットにアクセスするAppRoleのロールIDを設定する。 |
vault_secret_id | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、シークレットにアクセスするAppRoleのシークレットIDを設定する。 |
vault_backend_name | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のクレデンシャル情報が保存されているシークレットバックエンドの名前を設定する。 |
vault_secret_path | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のクレデンシャル情報が保存されているシークレットのパスを設定する。 |
vault_user_key | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のユーザー名のキーを設定する。デフォルトは”user_name”。 |
vault_pw_key | No | 文字列 | auth_typeで”basic_with_vault_kv2”または”saml_with_vault_kv2”を指定した場合、自動化のパスワードのキーを設定する。デフォルトは”password”。 |
user_name | No | 文字列 | auth_typeで”basic”または”saml”を指定した場合、自動化のユーザー名を設定する。 |
password | No | 文字列 | auth_typeで”basic”または”saml”を指定した場合、自動化のユーザーパスワードを設定する。 |
awx.get_job_resultの戻り値は以下の通りです。
パラメータ | 説明 |
---|---|
result.id | ジョブのID。 |
result.name | ジョブの名前。 |
result.status | ジョブのステータス。戻り値として取りうる値。 new:新規 pending:保留中 waiting:待機中 running:実行中 successful:成功 failed:失敗 error:エラー 本パラメータは、内部で実行されている自動化のAPI(GET /api/v2/jobs/{id})のレスポンスのstatusパラメータを返します。最新の情報は、以下を参照してください。 https://docs.ansible.com/automation-controller/4.4/html/controllerapi/api_ref.html#/Jobs |
result.log | ジョブ実行結果。formatで指定した形式になっている。 |