vRealize Orchestrator ワークフローを使用してクラウド テンプレートを作成する際に使用できるカスタム リソースを作成できます。この使用事例では、SSH ホストを追加するカスタム リソースを追加します。後で、クラウド テンプレートにリソースを含めることができます。さらに、更新ワークフローを追加して、ユーザーが、Day 2 アクションを個別に実行するのではなく、展開後に SSH 構成に変更を加えることができるようにします。

カスタム リソースは vRealize Orchestrator または拡張性アクション オブジェクトであり、そのカスタム リソースで定義されたライフサイクル アクションを使用して、vRealize Automation を通じて管理します。クラウド テンプレート サービスは、特定のライフサイクル アクションに関連付けられた操作がトリガされると、適切な vRealize Orchestrator ワークフローまたは拡張性アクションを自動的に呼び出します。リソース タイプの機能は、Day 2 操作として使用可能な vRealize Orchestrator ワークフローまたは拡張性アクションを選択することでも拡張できます。

この使用事例では、vRealize Orchestrator ライブラリで提供されている組み込みのワークフローを使用します。この使用事例には、プロセスの実行方法を示すための規範的な値または文字列が含まれています。これらは環境に合わせて変更できます。

参考として、この使用事例では [DevOpsTesting] という名前のプロジェクトを使用します。プロジェクトは、既存のプロジェクトに置き換えることができます。

前提条件

  • vRealize Orchestrator 統合が構成されていることを確認します。Cloud Assembly での vRealize Orchestrator の統合の構成を参照してください。
  • 作成、更新、破棄、およびインストール後アクションに使用しているワークフローが vRealize Orchestrator に存在し、そこから正常に実行されていることを確認します。
  • vRealize Orchestrator で、ワークフローによって使用されるリソース タイプを特定します。このカスタム リソースに含まれているワークフローは、すべてが同じリソース タイプを使用する必要があります。この使用事例では、リソース タイプは SSH:Host です。リソース タイプの検証については、Cloud Assembly クラウド テンプレートのカスタム リソース タイプを参照してください。
  • マシン クラウド テンプレートを構成および展開する方法について理解していることを確認します。

手順

  1. SSH をクラウド テンプレートに追加するための SSH ホストのカスタム リソースを作成します。
    この手順では、カスタム リソースをリソース タイプとしてクラウド テンプレート デザイン キャンバスに追加します。
    1. Cloud Assembly で、[デザイン] > [カスタム リソース] の順に選択し、[新しいカスタム リソース] をクリックします。
    2. 次の値を指定します。

      ワークフロー名を除き、これらはサンプル値です。

      表 1.
      設定 サンプルの値
      名前 SSH Host - DevOpsTesting Project

      これは、クラウド テンプレートのリソース タイプ パレットに表示される名前です。

      リソース タイプ Custom.SSHHost

      リソース タイプは Custom. で始まる必要があり、各リソース タイプは一意にする必要があります。

      テキスト ボックスに Custom. が含まれているかどうかは検証されませんが、この文字列は削除しても自動的に追加されます。

      このリソース タイプは、デザイン キャンバスに追加されるため、クラウド テンプレート内で使用できます。

    3. クラウド テンプレートのリソース タイプ リストでこのリソース タイプを有効にするには、[有効化] オプションのトグル ボタンがオンになっていることを確認します。
    4. リソース タイプを [DevOpsTesting] プロジェクトで使用できるようにする [範囲] 設定を選択します。
    5. [基準] で、[vRO インベントリ] がライフサイクル アクション プロバイダとして選択されていることを確認します。
    6. リソースを定義するワークフローを選択します。
      設定 設定
      ライフサイクル アクション - 作成 [SSH ホストの追加] ワークフローを選択します。

      複数の vRealize Orchestrator 統合がある場合は、これらのカスタム リソースの実行に使用する統合インスタンスのワークフローを選択します。

      ワークフローを選択すると、外部タイプ ドロップダウンメニューが使用可能になり、自動的に SSH:Host に設定されます。外部ソース タイプは、共有している場合に 1 回のみ使用することも、プロジェクトごとに 1 回ずつ使用することもできます。この使用事例では、[DevOpsTesting] プロジェクトに対してのみカスタム リソースを提供しています。SSH:Host タイプを必要とする他のワークフローがある場合は、プロジェクトごとに個別のカスタム リソースを作成する必要があります。

      ライフサイクル アクション - 更新 [SSH ホストの更新] ワークフローを選択します。
      ライフサイクル アクション - 破棄 [SSH ホストの削除] ワークフローを選択します。
    7. [プロパティ] タブでスキーマ キーとタイプの値を確認して、ワークフローの入力を理解し、クラウド テンプレートで構成できるようにします。
      スキーマには、ワークフローで定義されている必須およびオプションの入力値が一覧表示されます。必須の入力値は、クラウド テンプレート YAML に含まれています。

      [SSH ホストの追加] ワークフローでは、hostnameportusername が必須の入力値です。他のスキーマ プロパティは必須ではありません。スキーマを使用して、他のフィールド値、ワークフロー、またはアクションへのバインドを作成する場所を決定することもできます。この使用事例には、バインドは含まれていません。

    8. カスタムリソースの作成を完了するには、[作成] をクリックします。
  2. 展開時に SSH ホストを追加するクラウド テンプレートを作成します。
    1. [デザイン] > [クラウド テンプレート] の順に選択し、[新規作成元] > [空白のキャンバス] の順にクリックします。
    2. クラウド テンプレートに「SSH ホストを持つマシン」という名前を付けます。
    3. [DevOpsTesting] プロジェクトを選択し、[作成] をクリックします。
    4. vSphere マシンを追加して構成します。
    5. クラウド テンプレートのデザイン画面の左側にあるカスタム リソース リストから、[SSH Host - DevOpsTesting Project] リソース タイプをキャンバスにドラッグします。
      注: カスタム リソースは、スクロールして左側のペインで選択するか、 [リソース タイプの検索] テキスト ボックスで検索して選択します。カスタム リソースが表示されない場合は、 [リソース タイプの検索] テキスト ボックスの横にある更新ボタンをクリックします。
      このリソース タイプがこのプロジェクト用に設定されているため、使用可能であることを示すリマインダです。別のプロジェクト用のクラウド テンプレートを作成している場合、このリソース タイプは表示されません。
    6. 右側で YAML コードを編集して、必須の入力値を追加します。
      展開時にユーザーがユーザー名とホスト名を指定できるように、 inputs セクションをコードに追加します。この例では、デフォルト ポートは 22 です。次の例では、これらの値の一部はサンプル データです。実際の値は異なる場合があります。
      inputs: 
        hostname:
          type: string
          title: The hostname of the SSH Host
        username:
          type: string
          title: Username
      
    7. resources セクションで、ユーザーの選択を求めるプロンプトを表示するために、${input.input-name} コードを追加します。
      resources:
        Custom_SSHHost_1:
          type: Custom.SSHHost
          properties:
            port: 22
            hostname: '${input.hostname}'
            username: '${input.username}'
      
  3. クラウド テンプレートを展開します。
    1. クラウド テンプレート デザイナ画面で、[展開] をクリックします。
    2. [展開名] に「SSH ホスト テスト」と入力します。
    3. [クラウド テンプレートのバージョン] を選択し、[次へ] をクリックします。
    4. 展開の入力を完了します。
    5. [[展開]] をクリックします。
  4. [展開] 画面でプロビジョニング要求を監視して、SSH ホストが展開に含まれており、展開が成功していることを確認します。

次のタスク

テストしたクラウド テンプレートが動作していれば、他のクラウド テンプレートで SSH Host のカスタム リソースの使用を開始できます。