25.3. ワークフローおよび実行に関するトラブルシューティング
OpenStack Workflow (mistral) サービスは、複数の OpenStack タスクをワークフローにグループ化します。Red Hat OpenStack Platform は、これらのワークフローのセットを使用して、director 全体を通じて共通の機能を実行します。これには、ベアメタルノードの制御、検証、プラン管理、およびオーバークラウドのデプロイメントが含まれます。
たとえば openstack overcloud deploy
コマンドを実行すると、OpenStack Workflow サービスは 2 つのワークフローを実行します。最初のワークフローは、デプロイメントプランをアップロードします。
Removing the current plan files Uploading new plan files Started Mistral Workflow. Execution ID: aef1e8c6-a862-42de-8bce-073744ed5e6b Plan updated
2 つ目のワークフローは、オーバークラウドのデプロイメントを開始します。
Deploying templates in the directory /tmp/tripleoclient-LhRlHX/tripleo-heat-templates Started Mistral Workflow. Execution ID: 97b64abe-d8fc-414a-837a-1380631c764d 2016-11-28 06:29:26Z [overcloud]: CREATE_IN_PROGRESS Stack CREATE started 2016-11-28 06:29:26Z [overcloud.Networks]: CREATE_IN_PROGRESS state changed 2016-11-28 06:29:26Z [overcloud.HeatAuthEncryptionKey]: CREATE_IN_PROGRESS state changed 2016-11-28 06:29:26Z [overcloud.ServiceNetMap]: CREATE_IN_PROGRESS state changed ...
OpenStack Workflow サービスは、以下のオブジェクトを使用してワークフローを追跡します。
- アクション
- 関連タスクが実行される際に OpenStack が実施する特定の指示。これには、シェルスクリプトの実行や HTTP リクエストの実行などが含まれます。OpenStack の一部のコンポーネントには、OpenStack Workflow が使用するアクションが組み込まれています。
- タスク
- 実行するアクションと、アクションの実行後の結果を定義します。これらのタスクには通常、アクションまたはアクションに関連付けられたワークフローが含まれます。タスクが完了すると、ワークフローは、タスクが成功したか否かによって、別のタスクに指示を出します。
- ワークフロー
- グループ化されて特定の順番で実行されるタスクのセット
- 実行
- 実行する特定のアクション、タスク、またはワークフローを定義します。
また、OpenStack Workflow では、実行が確実にログとして記録されるので、特定のコマンドが失敗した場合に問題を特定しやすくなります。たとえば、ワークフローの実行に失敗した場合には、どの部分で失敗したかを特定することができます。
手順
stackrc
ファイルを取得します。$ source ~/stackrc
失敗した状態 (
ERROR
) のワークフローの実行を一覧表示します。(undercloud) $ openstack workflow execution list | grep "ERROR"
失敗したワークフロー実行の UUID を取得して (例:
dffa96b0-f679-4cd2-a490-4769a3825262
)、実行と出力を表示します。(undercloud) $ openstack workflow execution show dffa96b0-f679-4cd2-a490-4769a3825262 (undercloud) $ openstack workflow execution output show dffa96b0-f679-4cd2-a490-4769a3825262
これらのコマンドにより、実行に失敗したタスクに関する情報が返されます。
openstack workflow execution show
コマンドは、実行に使用したワークフローも表示します (例:tripleo.plan_management.v1.publish_ui_logs_to_swift
)。以下のコマンドを使用して完全なワークフロー定義を表示することができます。(undercloud) $ openstack workflow definition show tripleo.plan_management.v1.publish_ui_logs_to_swift
これは、特定のタスクがワークフローのどの部分で発生するかを特定する際に便利です。
同様のコマンド構文を使用して、アクションの実行とその結果を表示します。
(undercloud) $ openstack action execution list (undercloud) $ openstack action execution show 8a68eba3-0fec-4b2a-adc9-5561b007e886 (undercloud) $ openstack action execution output show 8a68eba3-0fec-4b2a-adc9-5561b007e886
これは、問題を引き起こす具体的なアクションを特定する際に便利です。