Code StreamvRealize Orchestrator (vRO) と統合すると、vRO ワークフローを実行してその機能を拡張できます。vRealize Orchestrator には、サードパーティ製ツールと統合できる事前定義済みのワークフローが多数含まれています。これらのワークフローは、DevOps プロセスの自動化と管理、一括操作の自動化などに役立ちます。

たとえば、パイプラインで vROタスクのワークフローを使用すると、ユーザーを有効にし、ユーザーを削除し、仮想マシンを移動できます。さらに、テスト フレームワークと統合してパイプラインの実行時にコードをテストするなど、さまざまなことができます。code.vmware.com では、vRealize Orchestrator ワークフローのコード例を参照できます。

パイプラインで vRealize Orchestrator ワークフローを使用すると、アプリケーションをビルド、テスト、および展開するときにアクションを実行できます。定義済みのワークフローをパイプラインに含めることも、カスタム ワークフローを作成して使用することもできます。ワークフローごとに入力、タスク、出力があります。

パイプラインで vRO ワークフローを実行するには、パイプラインに含めた vRO タスクで使用できるワークフローのリストに、そのワークフローが表示されている必要があります。

そのワークフローがパイプラインの vRO タスクに表示されるようにするには、管理者が vRealize Orchestrator で次の手順を実行する必要があります。

  1. CODESTREAM タグを vRO ワークフローに適用します。
  2. vRO ワークフローをグローバルとしてマークします。

前提条件

  • vRealize Orchestrator のオンプレミス インスタンスに管理者としてアクセスできることを確認します。詳細については、管理者に問い合わせるか、vRealize Orchestrator ドキュメントを参照してください。
  • Code Stream で、プロジェクトのメンバーであることを確認します。メンバーでない場合は、プロジェクトにメンバーとして追加するように Code Stream 管理者に依頼します。Code Streamでプロジェクトを追加する方法を参照してください。
  • Code Stream で、パイプラインを作成し、ステージを追加します。

手順

  1. 管理者として、パイプラインで実行する vRealize Orchestrator ワークフローを準備します。
    1. vRealize Orchestrator で、ユーザーを有効にするためのワークフローなど、パイプラインで使用する必要があるワークフローを検索します。
      必要なワークフローがどこにもない場合には作成できます。
    2. 検索バーに「タグ ワークフロー」と入力し、タグ ワークフロー という名前のワークフローを検索します。
    3. タグ ワークフロー という名前のカード上で [実行] をクリックすると、設定領域が表示されます。
    4. タグ付けされたワークフロー テキスト領域で、 Code Stream パイプラインで使用するワークフローの名前を入力し、そのワークフローをリストから選択します。
    5. タグ および のテキスト領域に CODESTREAM を大文字で入力します。
    6. [グローバル タグ] という名前のチェック ボックスをクリックします。
    7. [実行] をクリックします。これにより、 Code Stream パイプラインで選択する必要があるワークフローに CODESTREAM という名前のタグが付けられます。
    8. ナビゲーション ペインで [ワークフロー] をクリックし、パイプラインで実行されるワークフロー カードに CODESTREAM という名前のタグが表示されることを確認します。
      Code Stream にログインして、パイプラインに vRO タスクを追加すると、タグ付けされたワークフローがワークフロー リストに表示されます。
  2. Code Stream で、vRealize Orchestrator インスタンスのエンドポイントを作成します。
    1. [エンドポイント] > [新規エンドポイント] の順にクリックします。
    2. プロジェクトを選択します。
    3. 適切な名前を入力します。
    4. vRealize Orchestrator エンドポイントの URL を入力します。
      次の形式を使用します。 https://vro-appliance.yourdomain.local:8281
      次の形式は使用しないでください。https://vro-appliance.yourdomain.local:8281/vco/api
      vRealize Automation アプライアンスに組み込まれている vRealize Orchestrator インスタンスの URL は、アプライアンスの FQDN であり、ポートを含みません。例: https://vra-appliance.yourdomain.local/vco
      vRealize Automation 8.x 以降の外部 vRealize Orchestrator アプライアンスの場合、アプライアンスの FQDN は次のとおりです: https://vro-appliance.yourdomain.local
      vRealize Automation 7.x の外部 vRealize Orchestrator アプライアンスの場合、アプライアンスの FQDN は次のとおりです。 https://vro-appliance.yourdomain.local:8281/vco
      エンドポイントの追加時に問題が発生した場合は、必要に応じて、SHA-256 証明書フィンガープリントからコロンを削除して YAML 構成をインポートします。たとえば、 B0:01:A2:72...B001A272... になります。サンプル YAML コードは次のようになります。
      ```
      ---
      project: Demo
      kind: ENDPOINT
      name: external-vro
      description: ''
      type: vro
      properties:
        url: https://yourVROhost.yourdomain.local
        username: yourusername
        password: yourpassword
        fingerprint: <your_fingerprint>
      ```
    5. 入力した URL に証明書が必要な場合は、[証明書を承諾] をクリックします。
    6. vRealize Orchestrator エンドポイントがバージョン 8.0 ~ 8.7 の場合は、認証タイプに [基本認証] を選択し、vRealize Orchestrator サーバのユーザー名とパスワードを入力します。

      認証に非ローカル ユーザーを使用している場合は、ユーザー名のドメイン部分を省略する必要があります。たとえば、[email protected] を認証するには、[ユーザー名] テキスト領域に svc_vro と入力する必要があります。

      注: vRealize Orchestrator エンドポイントがバージョン 8.8 以降の場合、基本認証はサポートされず、エンドポイントの作成は失敗します。
  3. パイプラインが vRO タスクを実行する準備をします。
    1. vRO タスクをパイプライン ステージに追加します。
    2. 適切な名前を入力します。
    3. [ワークフロー プロパティ] 領域で、vRealize Orchestrator エンドポイントを選択します。
    4. vRealize OrchestratorCODESTREAM としてタグ付けしたワークフローを選択します。
      作成したカスタム ワークフローを選択した場合は、入力パラメータ値の入力が必要になることがあります。
    5. [タスクの実行][条件に基づく] をクリックします。
      vRealize Orchestrator タスクに条件を適用する必要がある場合は、条件 領域で入力します。
    6. パイプラインの実行時に適用する条件を入力します。
      パイプラインを実行するタイミング 条件の選択
      条件に基づく

      定義した条件が true に評価される場合にのみ、パイプライン タスクを実行します。条件が false の場合、タスクはスキップされます。

      vRO タスクには、ブール式を含めることができます。次のオペランドと演算子を使用できます。

      • ${pipeline.variableName} などのパイプライン変数。変数を入力するときは、中括弧のみを使用します。
      • ${Stage1.task1.machines[0].value.hostIp[0]} などのタスク出力変数。
      • ${releasePipelineName} などのデフォルトのパイプライン バインド変数。
      • truefalse'true''false' などの大文字と小文字を区別しないブール値。
      • 引用符を含めない整数値または 10 進数値。
      • "test"'test' など一重引用符または二重引用符で囲んだ文字列値。
      • == Equals!= Not Equals など文字列タイプおよび数値タイプの値。
      • >>=<<= などの関係演算子。
      • &&|| などのブール論理。
      • +-*/ などの算術演算子。
      • 丸括弧でネストされた式。
      • リテラル値 ABCD を含む文字列は false に評価され、タスクはスキップされます。
      • 単項演算子はサポートされていません。

      たとえば、${Stage1.task1.output} == “Passed” || ${pipeline.variableName} == 39 のような条件があります。

      常時 [常時] を選択した場合、パイプラインは条件なしでタスクを実行します。
    7. あいさつのメッセージを入力します。
    8. [タスクの検証] をクリックし、発生したエラーを修正します。
  4. パイプラインを保存し、有効にして実行します。
  5. パイプラインの実行後、結果を確認します。
    1. [実行] をクリックします。
    2. パイプラインをクリックします。
    3. タスクをクリックします。
    4. 結果、入力値、およびプロパティを確認します。
      ワークフロー実行 ID、誰がいつタスクに応答したか、また、応答にコメントを含めたかを把握できます。

結果

完了です。 Code Stream で使用する vRealize Orchestrator ワークフローにタグを付け、 Code Stream パイプラインに vRO タスクを追加しました。DevOps 環境でのアクションを自動化するワークフローがパイプラインで実行されるようになります。

例: vRO タスクの出力形式

vRO タスクの出力形式は、この例のようになります。

[{
                "name": "result",
                "type": "STRING",
                "description": "Result of workflow run.",
                "value": ""
},
{
                "name": "message",
                "type": "STRING",
                "description": "Message",
                "value": ""
}]

次のタスク

引き続きパイプラインに vRO ワークフロー タスクを含めて、開発環境、テスト環境、および本番環境でタスクを自動化できるようにします。