ビジュアル・デザイナを使用したランブックの設計

ビジュアル・デザイナを使用して、フリート・アプリケーション管理でカスタム・ランブックを設計および作成します。デザイナには、ランブックをより簡単に作成および編集できるように、コードを追加するオプションを備えたドラッグ・インタフェースが用意されています。ランブックはYAMLまたはJSONで記述できます。ただし、ビジュアル・デザイナを使用してネイティブJSONまたはYAMLで作成しなくても、ランブックを作成できます。

ビジュアル・デザイナを使用して、次のタスクを実行できます。

  • ランブック・コンポーネントを使用して、ランブックを設計します。
  • ランブックの実行を合理化します。
  • 条件ビルダーを使用して条件文を構成します。
  • 製品コンポーネント、入力変数および出力変数、あるいはその両方に基づいて条件付きタスク実行を構成します。
  • エラー処理を構成します。
  • フリート・アプリケーション管理によって提供されるランブックを示します。
  • ソース・モードまたはデザイナ・モードでコードを追加するカスタム・ランブックの作成に役立つ、図示されたランブックをクローニングします。

ランブックを作成すると、ビジュアル・デザイナが作業内容を検証し、コードを自動的に生成します。生成されたコードを確認するか、ローカル開発用にエクスポートできます。ランブックを作成したら、保存して公開し、コンソールで結果を確認できます。

ビジュアル・デザイナでは、「デザイン」ビューに次のインタフェース・コンポーネントがあります。
  • 右側の「アクション」ペインには、「コンポーネント」および「プロパティ」タブがあります。
  • 中央のキャンバスは、ランブックを設計するプレースホルダです。パラレル・リソース・グループやローリング・リソース・グループなどのアクション・ペインからコンポーネントをドラッグし、タスクをこれらのグループにドラッグできます。キャンバス上のコンポーネントの順序を変更するには、タスクを実行する順序にコンポーネントを配置するか、プロパティを構成したり、エラーを処理するアクションを選択します。

    キャンバスには、ランブック・タスクを表示および変更するための編集アイコンが各タスク・コンポーネントの横にも表示されます。

    ビジュアル・デザイナを使用しているときにランブックの自動生成されたYAMLまたはJSONコードを表示するには、キャンバスで「コード・ビュー」を選択します。YAMLまたはJSONを更新すると、変更はデザイナ・モードで自動的に生成されます。

「Actions」ペイン

「処理」ペインから、キャンバス上の作業領域にドラッグするコンポーネントを選択できます。ペインには、次の項目が含まれています。

「コンポーネント」タブ

「コンポーネント」タブには、キャンバスのランブックの作業領域にドラッグできるコンポーネントのセットが用意されています。これらのコンポーネントは、新しいタスク、パラレル・タスク・グループ、パラレル・リソース・グループおよびローリング・リソース・グループです。
重要

タスクを追加するには、まずパラレルまたはローリング・リソース・グループを追加する必要があります。タスクはグループ内に存在する必要があります。グループ・タイプの使用方法の詳細は、ランブックの作成を参照してください。
  • 新規タスク: このボタンを使用して、ランブックのタスクを作成します。アクション・タイプをスクリプトとして指定することで、スクリプトを実行できるタスクを追加できるようになりました。
  • パラレル・タスク・グループ: パラレル・タスク・グループの一部のタスクは、フリートの一部であるリソース(コンピュートおよびデータベース・リソース)でパラレルに実行されます。

    たとえば、フリートに2つのリソースがあり、パラレル・タスク・グループの一部である2つのタスク(task1およびtask2)がある場合、task1およびtask2はresource1およびresource2でパラレルに実行されます。

  • パラレル・リソース・グループ: パラレル・リソース・グループの一部のタスクは、フリートの一部であるリソース(コンピュートおよびデータベース・リソース)間でパラレルに実行されます。リソース内では、パラレル・リソース・グループの一部であるタスクは順次実行されます。

    たとえば、フリートに2つのリソースがあり、パラレル・リソース・グループの一部である2つのタスク(task1およびtask2)がある場合、task1およびtask2はresource1およびresource2で順次実行され、resource1およびresource2での実行はパラレルに実行されます。

  • リソース・グループのローリング: ローリング・リソース・グループの一部のタスクは、フリートの一部であるリソース(コンピュートおよびデータベース・リソース)間で順次実行されます。リソース内では、ローリング・リソース・グループの一部であるタスクは順次実行されます。

    たとえば、フリートに2つのリソースがあり、ローリング・リソース・グループの一部である2つのタスク(task1およびtask2)がある場合、task1およびtask2はresource1で順次実行されます。resource1タスクが完了すると、task1およびtask2がresource2で順次実行されます。

プロパティ・タブ

「プロパティ」タブには、条件文を制御し、キャンバスに追加するコンポーネントのエラー処理を構成するための設定が表示されます。「タスク」または「ロールバック・タスク」の下のキャンバスの作業領域にコンポーネントを追加した後、ユース・ケースにあわせて構成します。コンポーネントのプロパティ・アイコン(設定アイコン)を選択して、そのプロパティおよびオプションを構成します。「コード」ビューを選択して、YAMLまたはJSONコードを表示することもできます。プロパティは、ランブック、グループおよびタスクで使用できます。

ランブック・プロパティ

ランブックの2つのプロパティは次のとおりです。

  • タスクの失敗時: このプロパティに対して選択するオプションは、ランブック内のすべてのグループおよびタスクのデフォルト値です。
  • 実行日: 選択したオプションは、タスクの実行場所と実行方法を示します。これには、スケジュールされたインスタンス、自己ホスト環境、または以前のタスクの結果に基づいて選択されたインスタンスが含まれる場合があります。「実行日」のサブプロパティは次のとおりです。
    • スケジュールで指定されたインスタンス: このプロパティは、条件がtrueと評価される場合に、ターゲットでのランブックの条件付き実行に使用されます。これは、ランブック内の製品スタック・ワークフローの管理に最適です。
    • 自己ホスト・インスタンス: このプロパティは、プロビジョニング後のタスクの自己ホスト・インスタンスを検索して選択するのに役立ちます。
    • 前のタスクで指定されたインスタンス: このプロパティは、タスクの実行が前のタスクの完了に依存することを示します。

グループ・プロパティ

グループの5つのプロパティは次のとおりです。

  • 失敗時: このプロパティに選択したオプションは、グループのタスクのいずれかが失敗した場合に次のアクション・セットを決定します。「続行」を選択すると、ターゲットでの製品ランブックの実行が停止し、「中断」を選択すると、アクション・グループでの製品スタック・ランブックの実行が停止し、「ロールバック」を選択すると、ランブックの実行がロールバック・ステップに移動します。ロールバック・スコープに基づいて、ロールバック・アクションはターゲット・レベルまたはアクション・グループ・レベルに設定できます。
  • 事前条件: 現在のタスクの入力変数および以前のすべてのタスクの出力変数を使用して条件を指定します。条件がtrueと評価された場合にのみ、ターゲットでタスクが実行されます。
  • 実行対象: ターゲット製品名(製品スタック・ランブックの場合)、製品プロパティおよびコンポーネント名、およびターゲットのコンポーネント・プロパティを使用して条件を指定します。タスクは、条件がtrueと評価された場合にのみターゲットで実行されます。

    たとえば、Oracle WebLogic ServerおよびJavaパッチ適用製品スタックのランブックで、java_versionプロパティ値が1.8.0_391で、ADMIN_SERVERコンポーネントが使用可能な場合、Oracle WebLogic Serverターゲットでのみタスクを実行するには、次の条件を入力します。

    target.product.name == "Oracle Weblogic Server" AND target.product.properties.java_home == "1.8.0_391" AND target.product.components.ADMIN_SERVER.properties.Server == "AdminServer"
    
  • 実行の一時停止: 介入するか所要時間が経過するまで、ランブックの実行を停止するオプション。一時停止は、タスクが実行される前に発生します。
  • 通知: タスク・ステータスについてOCI通知サービスを使用して通知します。

タスク・プロパティ

タスクには、グループと比較して追加のプロパティが含まれます。プロパティーの説明を次に示します。

出力変数マッピング: 「スクリプトの実行」タスク・タイプの場合、スクリプト・ログの出力が解析され、$$VARIABLE=VALUE$$のパターン一致で入力変数の値が評価されます。

たとえば、タスクが前のタスクの出力に依存する場合は、入力変数をマッピングするために次のステップを実行します。
  1. 「出力変数」チェック・ボックスを選択し、出力変数を追加します。フリート・アプリケーション管理スクリプトの実行により、出力変数が確実に移入されます。
  2. 次のタスクで、入力変数のチェック・ボックスを選択し、入力変数を追加します。
  3. 出力変数マッピングを使用して、入力変数名を前のタスク出力変数名にマップします。

    フリート・アプリケーション管理スクリプトは、出力ログを解析して、$$VARIABLE=VALUE$$などのパターンを識別します。

ライブラリ・タブ

タスクの「ライブラリ」タブには、フリート・アプリケーション管理に存在する、または作成した、すぐに使用できる再利用可能なタスクのリストが表示されます。タスクの右隅にあるドラッグ・ハンドル・アイコン(ドラッグハンドル)を使用して、キャンバス上のランブックの作業領域にドラッグできます。ライブラリには、製品または製品のスタックおよびOSタイプに基づいて、ランブックの関連タスクのみが表示されます。

ロールバック・タスク

定義済タスクが失敗した場合にロールバックするには、グループを追加し、キャンバスの作業領域の「ロールバック・タスク」プレースホルダ内でロールバックするタスクを追加します。ロールバックするには、特定のタスクの「タスク」「ロールバック」として「失敗時」タスク・プロパティを選択します。

ノート

ロールバックは、ターゲット・レベルまたはアクション・グループ・レベルにスコープ指定できます。この範囲指定は、フリート・アプリケーション管理が、特定のターゲットまたはすべてのターゲット・グループに対してロールバック・タスクを実行することを意味します。ロールバック・タスクはターゲットで実行され、ターゲットのスコープを設定すると失敗します。一方、ロールバック・タスクは、アクション・グループのスコープを設定するとターゲットのすべてのグループで実行されます。

キャンバス

ビジュアル・デザイナに追加するアクションを決定したら、キャンバス内の作業領域にコンポーネントをドラッグします。コンポーネントの順序を変更するには、コンポーネントの右隅にあるドラッグ・ハンドル・アイコン(ドラッグハンドル)を使用して、ランブックの作業領域上の別の場所にドラッグします。この新しい処理が作業領域に追加され、そのコードが自動的に生成されます。

ナビゲーションのキーボード・ショートカット

ビジュアル・デザイナでは、ランブックの設計時に次のキーボード・ショートカットがサポートされています。
キーボード・ショートカット アクション
「」タブ フォーカスを次のランブック要素に移動します。
Shift+Tab 前のランブック要素にフォーカスを移動します。
矢印キー コンポーネントをキャンバス上で移動します。たとえば:
  • 左矢印キーを押して、キャンバス上のグループ内で新しいタスク・コンポーネントを移動します。
  • 要素のドラッグ・ハンドル・アイコン(ドラッグハンドル)にフォーカスがある場合に、選択後にキャンバスでタスクまたはグループを再配置します。
スペースバーまたは入力/戻る 「コンポーネント」タブまたは「プロパティ」タブ、またはランブック要素からコンポーネントを選択します。
Esc キャンバスへのコンポーネントの移動、またはトリガーされる前のアクションを取り消します。
[Space]バーまたは[Enter] コンポーネント、プロパティまたはランブック要素のいずれかにフォーカスがある場合に、適切なアクティビティをトリガーします。たとえば:
  • コンポーネントを選択後、現在の位置に配置します。
  • ロールバック・タスク構成のトグルをオンにします。
  • パラレル・リソースまたはパラレル・タスク・グループ・コンポーネントの矢印キーを使用して、選択したグループをキャンバスに移動した後に配置します。
  • それぞれの矢印キーを使用して移動した後、キャンバス上のグループ内に新しいタスク・コンポーネントを配置します。このアクションの後、キーボード・ショートカット(スペースバーまたはEnter)を押して、タスクの「タスクの作成」ダイアログ・ボックスを開きます。