クラウド テンプレートの作成時に使用する Cloud Assembly クラウド テンプレート リソースの他に、独自のカスタム リソースを作成することもできます。

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

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

参考として、この使用事例では [DevOpsTesting] という名前のプロジェクトを使用します。このサンプル プロジェクトは、環境内の任意のプロジェクトに置き換えることができます。

前提条件

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

手順

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

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

      設定 サンプルの値
      名前 AD:User

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

      リソース タイプ Custom.ADUser

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

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

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

    3. クラウド テンプレートのリソース タイプ リストでこのリソース タイプを有効にするには、[有効化] オプションのトグル ボタンがオンになっていることを確認します。
    4. リソース タイプを任意のプロジェクトで使用できるようにする [範囲] 設定を選択します。
    5. [基準] で、[vRO インベントリ] がライフサイクル アクション プロバイダとして選択されていることを確認します。
    6. リソースと Day 2 アクションを定義するワークフローを構成します。
      注: 選択した Day 2 ワークフローには、外部タイプと同じタイプの入力パラメータが必要です。外部タイプの入力は、カスタム リソースに自動的にバインドされるため、ユーザーによって申請される Day 2 カスタム フォームには表示されません。
      設定 サンプルの値
      ライフサイクル アクション - 作成 [パスワードを使用した組織単位のユーザーの作成] ワークフローを選択します。

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

      ワークフローを選択すると、外部タイプ ドロップダウンメニューが使用可能になり、自動的に AD:User に設定されます。

      注: 外部ソース タイプは、共有している場合に 1 回のみ使用することも、プロジェクトごとに 1 回ずつ使用することもできます。この使用事例では、すべてのプロジェクトに同じカスタム リソースを提供しています。これは、すべてのプロジェクトの他のすべてのリソース タイプに対して AD:User が使用できないことを意味します。 AD:User タイプを必要とする他のワークフローがある場合は、プロジェクトごとに個別のカスタム リソースを作成する必要があります。
      ライフサイクル アクション - 破棄 [ユーザーの削除] ワークフローを選択します。
      その他のアクション [ユーザー パスワードの変更] ワークフローを選択します。

      [アクションの追加] ウィンドウで、アクションの名前(password_change など)を追加し、[追加] をクリックします。

      アクションの申請時にユーザーが応答するアクション申請フォームを変更するには、 [要求パラメータ] 列のアイコンをクリックします。
      注: 追加のアクション ワークフローでは、ワークフローに外部タイプと同じタイプの入力パラメータがあることを確認します。

      この例では、更新ワークフローの適切なアプリケーションがありません。プロビジョニングされたカスタム リソースに変更を加える更新ワークフローの一般的な例として、展開のスケールインやスケールアウトがあります。

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

      ユーザーの作成ワークフローの場合、必須の値は、accountNamedisplayNameouContainer です。他のスキーマ プロパティは必須ではありません。スキーマを使用して、他のフィールド値、ワークフロー、またはアクションへのバインドを作成する場所を決定することもできます。この使用事例には、バインドは含まれていません。

    8. カスタムリソースの作成を完了するには、[作成] をクリックします。
  2. 展開時にユーザーをマシンに追加するクラウド テンプレートを作成します。
    1. [デザイン] > [クラウド テンプレート] の順に選択し、[新規作成元] > [空白のキャンバス] の順にクリックします。
    2. クラウド テンプレートに「AD ユーザーを持つマシン」という名前を付けます。
    3. [DevOpsTesting] プロジェクトを選択し、[作成] をクリックします。
    4. vSphere マシンを追加して構成します。
    5. クラウド テンプレートのデザイン画面の左側にあるカスタム リソース リストから、[AD user] リソース タイプをキャンバスにドラッグします。
      注: カスタム リソースは、スクロールして左側のペインで選択するか、 [リソース タイプの検索] テキスト ボックスで検索して選択します。カスタム リソースが表示されない場合は、 [リソース タイプの検索] テキスト ボックスの横にある更新ボタンをクリックします。
    6. 右側で YAML コードを編集して、必須の入力値とパスワードを追加します。
      追加するユーザーの名前をユーザーが指定できるように、 inputs セクションをコードに追加します。次の例では、これらの値の一部はサンプル データです。実際の値は異なる場合があります。
      inputs:
        accountName:
          type: string
          title: Account name
          encrypted: true   
        displayName:
          type: string
          title: Display name   
        password:
          type: string
          title: Password
          encrypted: true 
        confirmPassword:
          type: string
          title: Password
          encrypted: true   
        ouContainer: 
          type: object
          title: AD OU container
          $data: 'vro/data/inventory/AD:OrganizationalUnit'
          properties:
              id:
                  type: string
              type:
                  type: string    
      
    7. resources セクションで、ユーザーの選択を求めるプロンプトを表示するために、${input.input-name} コードを追加します。
      resources:
        Custom_ADUser_1:
          type: Custom.ADUser
          properties:
              accountName: '${input.accountName}'
              displayName: '${input.displayName}'
              ouContainer: '${input.ouContainer}'
              password: '${input.password}'
              confirmPassword: '${input.confirmPassword}'       
              
  3. クラウド テンプレートを展開します。
    1. クラウド テンプレート デザイナ画面で、[展開] をクリックします。
    2. [展開名] に「AD User Scott」と入力します。
    3. [クラウド テンプレートのバージョン] を選択し、[次へ] をクリックします。
    4. 展開の入力を完了します。
    5. [[展開]] をクリックします。
  4. [展開] 画面でプロビジョニング要求を監視して、ユーザーが Active Directory に追加されており、展開が成功していることを確認します。

次のタスク

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