Automation Services Catalog と IT Service Management (ITSM) システムの統合
オーダープロセスおよび置換可能な変数で定義したワークフローを使用して、IT Service Management システムツールチェーンに Automation Services Catalog を組み込む
概要
はじめに
Automation Services Catalog のオーダープロセス機能を使用して、ServiceNow などの Information Technology Service Management (ITSM) システムと統合できます。
自動化サービスカタログのサポートは、2.4 以降の Ansible Automation Platform では利用できなくなりました。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
第1章 ITSM と Automation Services Catalog との統合の計画
Ansible Automation Platform および Playbook インベントリーに必要な更新と変更について計画し、ITSM システムと統合します。変更によっては、Ansible Tower と Automation Services Catalog の両方で、特定レベルの管理パーミッションが必要になる場合があります。
本セクションでは、更新の実行に必要な実際のロールと、変更する必要のあるアーティファクトについて詳しく説明します。
必須のパーミッション
インテグレーションワークフローを完了するには、以下のロールが必要です。
- ITSM 統合に使用する Playbook を作成または更新できます。
- Ansible Tower の管理者で、ジョブテンプレートを作成してサーベイを追加できます。
- カタログ管理者は、ポートフォリオの作成、サーベイの編集、およびオーダープロセスの設定が可能です。
Playbook
ITSM と Automation Services Catalog との統合に使用する予定のジョブテンプレートおよびワークフローで使用される Playbook を作成または更新します。
Ansible Tower のジョブおよびワークフローのテンプレートサーベイ
Playbook の前後に実行するジョブテンプレートにアタッチされたサーベイを更新して、置換可能な値をサポートします。
Automation Services Catalog
ITSM 統合ワークフローの製品に設定されたサーベイを更新し、置換を有効にします。
第2章 Automation Services Catalog との統合をサポートするための Playbook set_stats
フィールドの更新
Playbook を更新して、Automation Services Catalog に情報を渡して、オーダープロセスワークフローの製品全体にわたる置換可能な変数をサポートすることができます。
2.1. 値を Automation Services Catalog に戻す Playbook の作成
値を Automation Services Catalog に戻すように設計された Playbook を作成できます。set_stats
パラメーターの前に expose_to_cloud_redhat_com_
を加えると、その値が Automation Services Catalog に戻されます。次に、置換可能な変数を使用して、追加の Playbook でこれらの値を渡すことができます。
以下の Playbook の例を使用して set_stats
の値について確認し、値を Automation Services Catalog に戻し、これをオーダープロセスの後続の Playbook の置換可能な値として使用します。
before order Playbook の例
この before order Playbook は、お気に入りの色を Automation Services Catalog set_stats
値に戻します。
# This playbook prints a simple debug message and set_stats - name: Echo Hello, world! hosts: localhost gather_facts: yes tasks: - debug: msg: "Hello, world!" - set_stats: data: expose_to_cloud_redhat_com_favorite_color: "orange"
product order Playbook の例
この Playbook は、アーティファクトの値として Automation Services Catalog に置換可能な値を渡します。
# This playbook prints a simple debug message with given information - name: Echo Hello, world! hosts: localhost gather_facts: yes tasks: - debug: msg: "Hello, {{favorite_color}} world!" - set_stats: data: expose_to_cloud_redhat_com_after_data: "{{favorite_color}}"
after order Playbook の例
以下の after order Playbook の例には、製品 Playbook によって渡されたアーティファクトの after_data
値が含まれます。
# This playbook prints a simple debug message with given information - name: Echo Hello, world! hosts: localhost gather_facts: yes tasks: - debug: msg: "{{after_data}}" ~
第3章 オーダープロセスを使用した ITSM 統合での順次アクションの定義
オーダープロセスは、ユーザーがオーダーした製品を ITSM システムと統合するための主要な Automation Services Catalog 機能です。オーダープロセスは、ITSM システムでアクションを実行するジョブテンプレートを実行することを目的とする Automation Services Catalog の製品で設定されています。これらのプロセスは、Before order および After order アクションで設定されています。オーダープロセスは、ユーザーがオーダーする製品の前後に実行されるように設計された製品として定義し、これにより、情報がオーダーシーケンス全体に渡されるようにします。
シーケンスの例
- before order - ITSM システムでチケットを作成する製品。
- Product order - Web サーバー。
- after order - ITSM システムでチケットを完了する製品。
製品またはポートフォリオレベルのいずれかに適用するオーダープロセスを作成することにより、シーケンスと実行される製品を定義します。
このワークフローの例では、オーダープロセスを作成し、before order、product order、および after order に割り当てる必要があります。
3.1. オーダープロセスの作成
カタログ管理者は、製品が順序付けされる前後に Ansible Tower Playbook を実行できるオーダープロセスを作成します。
前提条件
- Ansible Tower Playbook でオーダープロセスを作成するには、Ansible Tower クラスターをソースとして追加する必要があります。
手順
- メインナビゲーションから Order Processes を選択します。
- をクリックします。
- オーダープロセス名と説明を指定します。
ドロップダウンメニューから、オーダープロビジョニング前後に発生するアクションを選択します。
注記ドロップダウンメニューには、Ansible Tower ソースからプルした Playbook が表示されます。各オーダープロセスでサポートされるのは、1 つの Before および After アクションのみです。
- 新しい Order Process の詳細を確認してから をクリックします。
3.2. 製品の順序プロセスの設定
単一製品に適用される順序プロセスを設定します。
手順
- メインナビゲーションから Products を選択し、製品を選択します。
- Set order processes を選択します。 をクリックし、
ドロップダウンメニューを展開し、オーダープロセスを選択します。
注記現在、Ansible Automation Platform は製品プロビジョニングごとに 1 つのオーダープロセスのみをサポートします。
- をクリックします。
第4章 オーダープロセスワークフロー全体で置換可能な変数の有効化
オーダープロセスワークフローで使用する製品全体で変数を置き換えることができます。置換可能な変数を実装するには、Ansible Tower でジョブテンプレートのサーベイを作成または編集し、Automation Services Catalog の製品にアタッチされたサーベイで置換を有効にする必要があります。
置換形式および要件
置換可能な値は、{{substitution_express}}
形式で表され、波括弧と式の間にスペースは使用できません。置換に使用できる各変数の詳細は、Substitute variables を参照してください。
4.1. オーダープロセスワークフローへの置換可能な変数の実装
本セクションでは、本書に記載の Playbook の例を使用して、Playbook の Automation Services Catalog に公開するデータを置換可能な変数に合わせる方法を説明します。
4.1.1. before order プロセスを作成して製品オーダーへの値の指定
before order プロセスの Playbook before_order.yml
の例
# This playbook prints a simple debug message and set_stats - name: Echo Hello, world! hosts: localhost gather_facts: yes tasks: - debug: msg: "Hello, world!" - set_stats: data: expose_to_cloud_redhat_com_favorite_color: "orange"
この Playbook は、値が オレンジ
色の Playbook アーティファクト favorite_color
を Automation Services Catalog に戻します。ユーザー入力が必要ないため、Ansible Tower でジョブテンプレートサーベイを作成する必要はありません。代わりに、before オーダープロセス製品に設定された Automation Services Catalog の Survey を編集することにより、favorite_color
を製品 Playbook に渡すことができます。
4.1.2. 置換変数を使用するための 製品オーダー の設定
この製品 Playbook の例では、{{favorite_color}} の置換された変数を受け入れ、アーティファクト after_data を Automation Services Catalog に戻します。
Playbook product_order.yml
の例
# This playbook prints a simple debug message with given information - name: Echo Hello, world! hosts: localhost gather_facts: yes tasks: - debug: msg: "Hello, {{favorite_color}} world!" - set_stats: data: expose_to_cloud_redhat_com_after_data: "{{favorite_color}}"
favorite_color を *Answer Variable Name として設定する product_order.ymlPlaybook のジョブテンプレートを Ansible Tower に作成します。
以下を含む product_order.yml
ジョブテンプレートの Survey を作成します。
- Prompt フィールドに What is your favorite color? と入力します。
- Answer Variable Name フィールドに favorite_color と入力します。
- をクリックします。
Automation Services Catalog の product order Survey を有効にして、before_order.yml
から渡された 'favorite_color' の値を使用します。
product order に割り当てられた Survey で、以下を行います。
以下の値でフィールドを更新します。
- Name: favorite_color
- Initial Value: {{before.before_order.artifacts.favorite_color}}
- Label: What is your favorite color?
- Placeholder: {{before.before_order.artifacts.favorite_color}}
- Disabled スイッチが有効になるように切り替えます。
- Substitution スイッチを有効になるように切り替えます。
これで、置換可能な変数として before_order.yml
Playbook から favorite_color
アーティファクトを使用するように product order を設定できました。
4.1.3. 製品オーダーから after_data
アーティファクトの値を受け入れるために after order 製品の設定
Surbey を使用して、代入変数を使用する after_order.yml
に、product_order.yml アーティファクト after_data
を渡します。
after order 製品の Playbook after_order.yml
の例
# This playbook prints a simple debug message with given information - name: Echo Hello, world! hosts: localhost gather_facts: yes tasks: - debug: msg: "{{after_data}}"
after_data を *Answer Variable Name として設定する after_order.yml Playbook のジョブテンプレートを Ansible Tower に作成します。
after_order.yml
ジョブテンプレートに割り当てられた Surveyで、以下を実行します。
- Prompt フィールドに Enter your after data と入力します。
- Answer Variable Name フィールドに after_data と入力します。
- をクリックします。
Automation Services Catalog の after order Survey を有効にして、after_order.yml
から渡された after_data の値を使用します。
after order に割り当てられた Survey で、以下を行います。
以下の値でフィールドを更新します。
- Name: after_data
- Initial Value: {{product.artifacts.after_data}}
- Label: "Enter your after data"
- Placeholder: {{product.artifacts.after_data}}
- Disabled スイッチが有効になるように切り替えます。
- Substitution スイッチを有効になるように切り替えます。
Playbook は、ジョブテンプレートの実行時に after data に渡される値を表示します。
4.2. 置換変数の参照
置換の形式は {{substitution_express}}
です。波括弧と式の間にスペースを使用しないでください。
置換される値は、Ansible Tower のジョブテンプレートのサーベイに設定されます。置換した変数は、設定に応じて、オーダープロセス内のあるプロダクトから別のプロダクトに渡されます。
ジョブテンプレートの Survey の更新に関する詳細は、Ansible Towerユーザーガイドの Surveys を参照してください。
サーベイに置換可能な変数を含める場合は、以下の表に従ってください。
オブジェクト | 式 | 備考 |
---|---|---|
Order |
| order.created_at` は、オーダーを開始した日時です。
日付形式: 例: {{order.approval.reason}} |
Before order |
| order_process_name にスペースが含まれる場合、引用符は必要ありません。 例: {{before.Sample Order.artifacts.ticket_number}} |
Product |
| 例: {{product.artifacts.after_data}} |
After order |
| order_process_name にスペースが含まれる場合、引用符は必要ありません。 例: {{after.SampleOrder.status}} |