第5章 カタログとサービス

カタログを採用することにより、Red Hat CloudForms は、ハイブリッド環境全体に渡って複数の層に分かれたワークロードをデプロイするための 多層のサービスプロビジョニングを提供します。カスタマイズされたダイアログを作成することができるので、サービスの使用者は数パラメーターを入力し、全サービスをプロビジョニングすることができます。以下の表では、サービスのプロビジョニング用に、CloudForms ユーザーインターフェースで使用するカタログに関する用語を記載します。

表5.1 用語

タイプ情報

カタログバンドル

テンプレートのグループ

カタログ項目

単一のテンプレート

テンプレート

テンプレートとは、事前設定済みの仮想マシンのコピーのことで、オリジナルの仮想マシンのインストール済みソフトウェアおよびその設定に加えて、ハードウェア設定がキャプチャーされるように設計されています。

ダイアログタブ

サービスダイアログの一部

要素

ダイアログ内のタブの 1 項目。ボタン、チェックボックス、ドロップダウンリスト、ラジオボタン、タグコントロール、テキストエリアボックス、テキストボックスなどがあります。

プロビジョニングダイアログ

ホストのプロビジョニング、仮想マシンの移行、仮想マシンのプロビジョニング用に作成されるダイアログ。処理されるようにするには、ダイアログメインを適切なプロビジョニングインスタンスに追加する必要があります。

サービスカタログ

プロビジョニングに利用可能なカタログの項目またはカタログ一式

サービスダイアログ

サービスのプロビジョニングに使用するための完全にカスタマイズされたタブ、項目、値で構成されます。

5.1. 動的リソースオブジェクト

動的リソースオブジェクトは、ランタイム時に定義されるオブジェクトのようなエントリーで、一意名、ユーザー定義の属性やリレーションシップが指定されています。Automate Engine データストアに存在する、動的リソースオブジェクトは、プライベートインフラストラクチャー、パブリックまたはプライベートクラウドプロバイダー関連以外のオブジェクトを管理するように設計されています。

自動化要求、サービス、カタログ項目を使用して、動的リソースオブジェクトは、どの手順でもサービスの状態マシンにパラメーターとして渡したり、直接アクセスしたりできます。そのため、動的リソースオブジェクトを使用して、Red Hat CloudForms でサポートされていないリソースのデータをプロビジョニング、収集する機能をすばやく追加できます。

5.1.1. 動的リソースオブジェクトクラスの表示

動的リソースオブジェクトの一覧を表示し、クリックして各オブジェクトの情報を詳しく表示します。

  1. 自動化動的リソースオブジェクト に移動します。
  2. 表の動的リソースオブジェクトクラスをクリックして、概要情報を表示します。

5.1.2. 動的リソースオブジェクトクラスの作成

動的リソースオブジェクトクラスを作成して、Red Hat CloudForms インベントリーに追加して、新規リソースをモデル化します。動的リソースオブジェクトクラス毎に、属性、関連性、メソッドを指定できます。作成したら、リソースオブジェクトクラスは、そのリソースレベルにあるサービスユーザーインターフェースのユーザーに表示されます。

以下の手順で動的リソースオブジェクトクラスを作成します。

  1. 自動化自動化動的リソースオブジェクト に移動します。
  2. 構成 (構成) をクリックして、 新規動的リソースオブジェクトクラスの追加 (新規動的リソースオブジェクトクラスの追加) をクリックしてください。
  3. 新しいオブジェクトクラスの 名前 および 説明 を指定します。
  4. 属性 フィールドで 名前 を入力して、ドロップダウンリストから タイプ を選択します。 追加 ボタンをクリックして、属性を追加します。
  5. 名前 を入力してオブジェクトクラスの 関連付けクラス を選択します。 追加 ボタンをクリックして、追加の関連付けを作成します。
  6. メソッド名前 を指定します。 追加 ボタンをクリックしてメソッドを追加します。
  7. 追加 をクリックします。

5.1.3. 動的リソースオブジェクトクラスの編集

以下の手順で既存の動的リソースオブジェクトクラスを編集します。

  1. 自動化自動化動的リソースオブジェクト に移動します。
  2. 一覧表示で、動的リソースオブジェクトクラスをクリックします。
  3. 構成 (構成) をクリックして、 この動的リソースオブジェクトクラスの編集 (この動的リソースオブジェクトクラスの編集) をクリックします。
  4. 動的リソースオブジェクトウラスのフィールドに必要な変更を加えます。
  5. 保存 をクリックします。

5.1.4. 動的リソースオブジェクトクラスの削除

以下の手順で動的リソースオブジェクトクラスを削除します。

  1. 自動化自動化動的リソースオブジェクト に移動します。
  2. 表から削除する動的リソースオブジェクトクラスにチェックを入れます。
  3. 構成 (構成) をクリックして、 インベントリーからの選択した動的リソースオブジェクトクラスの削除 (インベントリーからの選択した動的リソースオブジェクトクラスの削除) をクリックします。
  4. OK をクリックして確定します。

5.2. サービスダイアログ

サービスをプロビジョニングする場合は、要求者による入力が必要です。サービスダイアログは、ユーザーによる入力に使用します。この入力は、ユーザーによる入力をプロビジョニング要求に変換する方法を定義する Automate モデル内のメソッドにつながっています。サービスダイアログ を作成する前には、ユーザーの入力が必要な項目を計画しておくようにしてください。

5.2.1. サービスダイアログの追加

重要

Ansible Playbook のカタログ項目で使用するサービスダイアログを作成する際には、変数要素に param_ を使用して値を割り当てる必要があります。たとえば、key1 とう名前の新しい変数は param_key1 という値に設定します。

  1. 自動化自動化カスタマイズ の順に移動します。
  2. サービスダイアログ のアコーディオンをクリックします。
  3. 1847 (構成) をクリックして 1862 (新規ダイアログの追加) を選択します。
  4. ダイアログ情報 には、ラベル説明 を入力します。ダイアログのフォームの最下部に表示するボタンのボックスにチェックを付けます。説明は、マウスオーバーで表示されます。

    ダイアログの ラベル に入力すると、その内容が左側にある ダイアログ ペインに表示されるはずです。

    1. 1862 (追加) をクリックして 1862 (新規タブのこのダイアログへの追加) を選択します。
    2. このタブの ラベル説明 を入力します。

      タブの ラベル に入力を行うと、作成しているダイアログ下の左側にある ダイアログ ペインにその内容が表示されます。

    3. 1862 (追加) をクリックして 1862 (新規ボックスのこのタブへの追加) を選択します。
    4. このボックスの ラベル説明 を入力します。

      ボックスの ラベル に入力を行うと、作成しているタブの左側にある ダイアログ ペインにその内容が表示されます。

  5. このボックスに要素を追加します。要素は、入力を受け入れるためのコントロールです。

    1. 1862 (追加) をクリックして 1862 (新規要素のこのボックスへの追加) を選択します。
    2. この要素の ラベル名前、および 説明 を入力します。

      重要

      名前 には、アルファベット、数字、アンダースコアを使用して、スペースは入れないようにしてください。この名前は、ダイアログとともに使用するメソッドでこの要素の値を取得するのにも使用されるので、dialog_service_type から始まる必要があります。

    3. 要素のタイプに Type を選択します。タイプ オプションにはすべて RequiredDefault Value のフィールドがあります。操作を続行するためにその要素が必須の場合には、Required にチェックを付けるか、Requiredtrue に設定します。デフォルト値を設定することも可能です。残りのオプションは、選択した要素に基づいて表示されます。

      要素のタイプ追加情報

      チェックボックス

      このチェックボックスがデフォルトで選択されるようにするには、Default Value にチェックを付けます。

      日付コントロール

      日付コントロール を使用して、ユーザーが日付を選択できるフィールドを作成します。ユーザーが日付と時刻を選択できるようにする場合には、日付/時間コントロール オプションを使用してください。

      日付/時間コントロール

      日付/時間コントロール を使用して、ユーザーが日付と時刻を選択できるフィールドを作成します。1 つのダイアログで表示できるのは、日付コントロール または 日付/時間コントロール のいずれか 1 つの要素のみです。

      動的なドロップダウンリスト

      自動化メソッドを使用してリストのオプションが作成されるようにするには、動的なドロップダウンリスト を使用します。エントリーポイント (名前空間/クラス/インスタンス) を使用して、自動化インスタンスを選択します。ユーザーがリストのオプションを手動でリフレッシュできるようにするには、更新ボタンの表示 にチェックを付けます。

      ラジオボタン

      この要素タイプは、ドロップダウンリストと同じ目的を果たしますが、オプションがラジオボタンで表示されます。

      タグの制御

      このサービスダイアログに関連付けられている仮想マシンに割り当てるタグの カテゴリー を選択します。1 つのタグのみを選択可能とする場合には、単一選択 にチェックを付けます。

      テキスト領域ボックス

      ユーザーがテキストを入力するためのテキスト領域を提供します。デフォルト値 のフィールドにテキストを入力して、ユーザー向けにメッセージが表示されるようにするか、空欄のままにすることができます。

      テキストボックス

      この要素タイプは、テキスト領域ボックス と同じ目的を果たします。オプションに 保護 にチェックを付けて、入力するテキストがプレーンテキストではなくアステリスク (*) として表示されるようにするオプションがあります。

  6. 必要なダイアログアイテムを引き続き追加します。ダイアログ、タブ、ボックス、および要素の切り替えは、左側にある ダイアログ ペインからそれぞれのラベルを選択して実行します。
  7. Add をクリックします。ダイアログは、Service Dialogs アコーディオンに表示されます。

5.2.2. ダイアログエディターを使用したサービスダイアログの追加

Red Hat CloudForms は、サービスダイアログを作成するたのえm,ドラッグアンドドロップのサービスダイアログエディターが含まれています。このエディターにはドラッグアンドドロップの機能が含まれており、サービスダイアログを構成するコンポーネントの外観を設定します。ダイアログタブ、セクション (以前はボックスと呼ばれていた)、要素を使用してサービスダイアログを簡単にデザインすることができます。

サービスへのアクセス時には、ユーザーが利用できるオプションの多くは事前設定されており、変更できません。サービスの要件により、ユーザー入力のダイアログに表示する必要のあるオプションやフィールドが決まります。基本的な Red Hat Enterprise Linux 7 マシンをオーダーする場合でも、メモリーや仮想 CPU の量や、オーダーしたインスタンスで利用可能なその他のオプションは最低でも選択することができるように、サービスダイアログは、これらのオプションをユーザーに公開します。Red Hat Virtualization の仮想マシン名など、特定のフィールドを一意にする必要がある場合には、選択した仮想マシンの一意名を入力する必要があります。入力しない場合には、操作に失敗するので、このフィールドも公開する必要があります。サービスダイアログを使用する Red Hat Virtualization で仮想マシンをプロビジョニングするサービスを作成する方法は、「付録A 例: Red Hat Virtualization (RHV) での仮想マシンのプロビジョニングサービスの作成」を参照してください。

サービスダイアログは、3 つのコンポーネントで構成されます。

  • 1 つまたは複数の タブ
  • これらのタブには、1 つまたは複数の セクション が含まれます。CloudForms ユーザーインターフェースを使用してサービスダイアログを作成する前述の方法では、セクションボックス として参照されている点に留意してください。
  • これらのセクションには、1 つまたは複数の 要素 が含まれます。要素で、入力を受け入れて管理します。要素には、プロビジョニングダイアログのオプションに入力するためのチェックボックス、ドロップダウンリスト、テキストフィールドなどのメソッドが含まれています。
重要

要素の名前は、プロビジョニングダイアログで使用するオプションに対応する必要があります。

  1. 自動化自動化カスタマイズ の順に移動します。
  2. サービスダイアログ のアコーディオンをクリックします。
  3. 1847 (構成) をクリックして 1862 (新規ダイアログの追加) を選択します。

    edit section1

  4. 全般 で基本情報を入力します。

    1. ダイアログの名前 および 説明 を入力します。
  5. ダイアログに新規タブを追加します。

    1. 1862 タブの作成 をクリックしてから、 新規タブの鉛筆 アイコンをクリックしてタブの情報を編集します。
    2. ラベル を入力します。
    3. オプション: 説明 でタブの説明を入力します。
    4. 保存 をクリックします。
  6. タブに新しいセクションを追加します。

    1. 1862 セクションの追加 をクリックしてから、 右上の鉛筆 アイコンをクリックして、セクションの詳細を編集します。
    2. ラベル を入力します。
    3. オプション: 説明 でセクションの説明を入力します。
    4. 保存 をクリックします。
  7. セクションに要素を追加します。

    1. 左側の要素一覧から、追加する要素をクリックして、セクション内にドラッグアンドドロップします。 要素の隣りにある鉛筆 アイコンをクリックして、フィールドの詳細を編集します。

      要素のタイプ追加情報

      テキスト領域

      ユーザーがテキストを入力できるようにテキスト領域を提供します。デフォルト値 にデフォルトのテキストを入力するか、空のままにします。

      テキストボックス

      テキストボックスは、保護 を有効にする追加オプションが付いたテキスト領域に似ているので、テキストはプレーンテキストではなく、アステリスク(*) で表示されます。

      チェックボックス

      デフォルトでボックスにチェックを入れるには、デフォルト値 を有効にします。

      ドロップダウン

      ドロップダウンを使用して、手動または自動化メソッドで一覧のエントリーを作成します。ダイナミック を有効化して、自動化メソッドで一覧を作成します。エントリーポイント を使用して、自動化インスタンスを選択します。更新ボタンの表示 を有効化して、ユーザーが手動で一覧オプションを更新できるようにします。

      ラジオボタン

      ドロップダウンに似ていますが、ラジオボタンを使用してオプションを表示します。

      Datepicker

      これを使用すると、ユーザーはカレンダーアイコンをクリックして日付を選択できるようになります。

      Timepicker

      これを使用すると、ユーザーは日時を選択できます。

      タグの制御

      このサービスダイアログに関連付けられている仮想マシンに割り当てるタグの カテゴリー を選択します。1 つのタグのみを選択可能とする場合には、単一選択 に有効にします。

    2. この要素の ラベル名前、および 説明 を入力します。

      重要

      要素名は、プロビジョニングダイアログで使用したオプションに対応する必要があります。名前 には、アルファベット、数字、アンダースコアを使用して、スペースは入れないようにしてください。この名前は、ダイアログとともに使用するメソッドでこの要素の値を取得するのにも使用されるので、dialog_service_type から始まる必要があります。

    3. オプション: ヘルプ に追加情報を含めて、ユーザーがサービスダイアログのフィールドに入力するサポートをします。このフィールドは、なじみのない用語を説明したり、設定ヒントを提供したりするのに便利です。
    4. 必要に応じて他のオプションも設定します。
    5. 保存 をクリックします。
  8. オプション: 上記の手順を繰り返して、既存のセクションに要素を追加するか、必要に応じて新規セクションに要素を作成、追加します。
  9. オプション: 必要に応じて、ダイアログに新規タブを追加する手順、タブにセクションと要素を追加する手順を繰り返します。
  10. 保存 をクリックしてダイアログを作成します。

サービスダイアログが作成され、サービスダイアログ アコーディオンに追加されました。

5.2.3. コンテナーテンプレートからのサービスダイアログの作成

以下の手順を実行し、コンテナーテンプレートからサービスダイアログを作成します。

  1. コンピュートコンテナーコンテナーテンプレート に移動して、プロビジョニングのテンプレートを選択します。
  2. 1847 (構成) をクリックして 1862 (コンテナーテンプレートからのサービスダイアログの作成) を選択します。
  3. サービスダイアログ名 にダイアログの名前を入力します。
  4. 保存 をクリックします。

コンテナーテンプレートのプロビジョニング向けにカタログアイテムを作成する場合には、サービスダイアログを使用できます。「OpenShift テンプレートカタログ項目の作成」を参照してください。

5.2.4. サービスダイアログのインポート

インポート/エクスポート機能を使用すると、複数のアプライアンス間でサービスダイアログを共有することができます。

  1. 自動化カスタマイズ に移動します。
  2. インポート/エクスポート のアコーディオンで、サービスダイアログのインポート/エクスポート をクリックします。
  3. インポート のセクションで ファイルの選択 をクリックして、インポートするファイルを選択します。
  4. アップロード をクリックします。

5.2.5. サービスダイアログのエクスポート

インポート/エクスポート機能を使用すると、複数のアプライアンス間でサービスダイアログを共有することができます。

  1. 自動化 → カスタマイズ に移動します。
  2. インポート/エクスポート のアコーディオンで、サービスダイアログのインポート/エクスポート をクリックします。
  3. エクスポート のセクションで、エクスポートするサービスダイアログを選択します。
  4. エクスポート をクリックします。

5.3. メソッド

5.3.1. ダイアログに関連付けるメソッドの作成

ダイアログの値をプロビジョニング要求に結びつけるためのメソッドを作成する必要があります。メソッドは、Automate モデルの DOMAIN/Service/Provisioning/StateMachines/ServiceProvision_Template クラスに作成する必要があります。

注記

DOMAIN は、ロックされた ManageIQ ドメインではなく、ユーザー定義のドメインである必要があります。必要な場合には、ManageIQ ドメインからカスタムドメインにクラスをコピーすることができます。

その下に提供されるメソッドは、以下のシナリオで作成されています。

  • web、app、DB を含む 3 階層のサービスをプロビジョニングする必要があります。これらの仮想マシン (またはクラウドインスタンス) はそれぞれ Service カテゴリー下に適切な値でタグ付けされ、さらにカタログ項目として追加され、カタログバンドルに統合されます。
  • サービスダイアログ は、service_type と呼ばれるドロップダウンに、小、中、大のアプリケーションをキャプチャーします。ダイアログ内の要素にキャプチャーされた値を参照する場合には、要素の名前に dialog_ のプレフィックスを付ける必要があります。たとえば、service_type をメソッド内で使用する場合には dialog_service_type となります。
  • メソッドは、service_type セクションに基づいて各カタログ項目のメモリーサイズを設定します。
#            Automate Method
#
$evm.log("info", "Automate Method ConfigureChildDialog Started")
#
#            Method Code Goes here
#
$evm.log("info", "===========================================")
$evm.log("info", "Listing ROOT Attributes:")
$evm.root.attributes.sort.each { |k, v| $evm.log("info", "\t#{k}: #{v}")}
$evm.log("info", "===========================================")

stp_task = $evm.root["service_template_provision_task"]
$evm.log("info", "===========================================")
$evm.log("info", "Listing task Attributes:")
stp_task.attributes.sort.each { |k, v| $evm.log("info", "\t#{k}: #{v}")}
$evm.log("info", "===========================================")

#############################################################
#### This is how the method would look for dialog variables
#############################################################
dialog_service_type = $evm.root['dialog_service_type']
$evm.log("info","User selected Dialog option = [#{dialog_service_type}]")

stp_miq_request_task = stp_task.miq_request_task
#$evm.log("info","(parent) miq_request_task:  = [#{stp_miq_request_task}]")

#############################################################
#### This is how you get the catalog items for the catalog bundle
#############################################################

stp_miq_request_tasks = stp_task.miq_request_tasks
#$evm.log("info","(children) miq_request_tasks count:  = [#{stp_miq_request_tasks.count}]")

#############################################################
#### By going through the children, you can set the dialog variable for each of the children (we based our values on the childrens service tags)
#############################################################

stp_miq_request_tasks.each do |t|

  $evm.log("info"," Setting dialog for: #{t.description}")
  service = t.source
  service_resource = t.service_resource
  #$evm.log("info"," Child service resource name: #{service_resource.resource_name}")
  #$evm.log("info"," Child service resource description: #{service_resource.resource_description}")

  service_tag_array = service.tags(:app_tier)
  service_tag = service_tag_array.first.to_s

  memory_size = nil

#############################################################
#### The dialog_service_type is the attribute set on the service dialog
#### We use the service_tag to decide what child gets what dialog
#############################################################

  case dialog_service_type
  when "Small"
    case service_tag
    when "app"
      memory_size = 1024
    when "web"
      memory_size = 1024
    when "db"
      memory_size = 4096
    else
      $evm.log("info","Unknown Dialog type")
    end
  when "Large"
    case service_tag
    when "app"
      memory_size = 4096
    when "web"
      memory_size = 4096
    when "db"
      memory_size = 8192
    else
      $evm.log("info","Unknown Dialog type")
    end
  else
    $evm.log("info","Unknown Dialog type - setting Dialog options here")
  end

#############################################################
#### set_dialog_option sets the dialog for the child
#############################################################

  t.set_dialog_option('memory',memory_size) unless memory_size.nil?
  $evm.log("info","Set dialog for selection: [#{dialog_service_type}]  Service_Tier: [#{service_tag}] Memory size: [#{memory_size}]")

end
#
#
#
$evm.log("info", "Automate Method ConfigureChildDialog Ended")
exit MIQ_OK

5.3.2. サービスクラス内でのメソッドの作成

サービスメソッドは、目的別に分割されています。

  1. 自動化エクスプローラー に移動します。
  2. サービスクラスは、DOMAINServiceProvisioningStateMachinesMethods および DOMAINServiceRetirementStateMachinesMethods にあります。

    注記

    DOMAIN は、ロックされた ManageIQ ドメインではなく、ユーザー定義のドメインである必要があります。必要な場合には、ManageIQ ドメインからカスタムドメインにクラスをコピーすることができます。

  3. メソッド タブをクリックします。
  4. 1847 (構成) をクリックして 1862 (新規メソッドの追加) を選択します。
  5. 名前表示名 を入力します。
  6. データのフィールドで、メソッドのコンテンツを入力します。
  7. 検証 をクリックし、データエントリーが正常に検証されるのを待ちます。
  8. 追加 をクリックします。 6297

5.3.3. サービスクラス内でのインスタンスの作成

  1. 自動化エクスプローラー に移動します。
  2. サービスクラスは、DOMAINServiceProvisioningStateMachinesMethods および DOMAINServiceRetirementStateMachinesMethods にあります。

    注記

    DOMAIN は、ロックされた ManageIQ ドメインではなく、ユーザー定義のドメインである必要があります。必要な場合には、ManageIQ ドメインからカスタムドメインにクラスをコピーすることができます。

  3. インスタンス タブをクリックします。
  4. 1847 (構成) をクリックして 1862 (新規インスタンスの追加) を選択します。
  5. 名前表示名 を入力します。
  6. フィールド のセクションで、メソッドの名前を に入力します。
  7. 追加 をクリックします。

インスタンスが作成され、ServiceProvision クラスから呼び出せるようになります。

6298

注記

メソッドが作成された後には、DOMAIN/Service/Service/Provisioning/StateMachines クラス内のインスタンスにマッピングする必要があります。インスタンス名は、エントリーポイント として指定する必要があります。このメソッドは、プロビジョニングのジョブが開始する前に呼び出す必要があります。

5.3.4. メソッドを自動化インスタンスに関連付ける手順

サービスメソッドは、目的別に分割されています。

  1. 自動化エクスプローラー に移動します。
  2. アコーディオンから必要なサービスメソッドをクリックします。
  3. サービスクラスは、DOMAINServiceProvisioningStateMachinesMethods および DOMAINServiceRetirementStateMachinesMethods にあります。

    注記

    DOMAIN は、ロックされた ManageIQ ドメインではなく、ユーザー定義のドメインである必要があります。必要な場合には、ManageIQ ドメインからカスタムドメインにクラスをコピーすることができます。

  4. 新規インスタンスを作成するか、clone_to_service インスタンスを選択します。
  5. 1847 (構成) をクリックして 1851 (選択したインスタンスの編集) を選択します。
  6. configurechilddialog 値には、メソッドへのパスを入力します。
  7. 保存 をクリックします。新規インスタンスにこれを追加する場合には、追加 をクリックします。

5.4. カタログ

カタログは、プロビジョニングする仮想マシンまたはインスタンスのグループを作成するのに使用します。たとえば、データベースサーバーの完全なパッケージや、特定のソフトウェアがインストール済みのデスクトップ、ファイアウォールなどがあります。サービスカタログの作成およびプロビジョニングを行うには、以下のステップを完了する必要があります。

  1. サービスの一部となる仮想マシンまたはインスタンス用の カタログ項目 を作成します。
  2. サービス ダイアログを作成します。たとえば、小、中、大の 3 つのオプションのあるドロップダウンを作成します。
  3. サービスダイアログ用のメソッドを作成します。このメソッドは、各オプションが、そのサービスの個別の仮想マシンまたはクラウドインスタンスに対してどのような意味があるかを定義します。 このメソッドは、Automate モデル内のサービスプロビジョニングインスタンスから呼び出されます。
  4. そのメソッドを呼び出す DOMAIN/Service/Provisioning/StateMachines/ServiceProvision_Templateクラスでインスタンスを作成します。

    注記

    DOMAIN は、ロックされた ManageIQ ドメインではなく、ユーザー定義のドメインである必要があります。必要な場合には、ManageIQ ドメインからカスタムドメインにクラスをコピーすることができます。

  5. メソッドを自動化インスタンスに関連付けます。
  6. カタログ一式 を作成し、カタログ項目を追加します。作成した サービスダイアログ を選択します。DOMAIN/Service/Provisioning/StateMachines/ServiceProvision_Template クラスで作成したインスタンスを エントリーポイント として使用します。カタログ内に表示 のボックスにチェックを付けます。
  7. サービスをプロビジョニングします。

5.4.1. カタログ一式の作成

  1. サービスカタログ に移動します。
  2. カタログ項目 のアコーディオンをクリックします。
  3. 1847 (構成) をクリックし、次に 1862 (新規カタログ一式の追加) をクリックします。
  4. 基本情報 で、名前と説明を入力します。 2362
  5. カタログ内に表示 をクリックします。
  6. 適切なダイアログ名を選択します。
  7. 適切な ServiceProvision インスタンスへのパスを選択します。
  8. リソース タブをクリックして、リソースの追加 のドロップダウンリストから一式に追加するカタログ項目を選択します。
  9. 追加 をクリックします。

カタログ一式が作成され、サービスカタログ のアコーディオンで表示されるようになります。

注記

一式の一部となる各カタログ項目には、DOMAIN/Service/Provisioning/StateMachines/Methods/CatalogBundle クラスでエントリーポイントを作成して指定しておくべきです。このステップを実行しなかった場合には、カタログ一式 の処理以外に、その一式内の各項目に対して、プロビジョニングの事前/事後プロセスを実行することになります。エントリーポイントを設定するには、カタログ項目カタログ内に表示 にチェックをつけると、エントリーポイント のフィールドが表示されるようになります。

5.4.2. カタログ項目の作成

サービスの一部となる各仮想マシンまたはクラウドインスタンスにカタログ項目を作成します。

  1. サービスカタログ に移動します。
  2. カタログ項目 のアコーディオンをクリックします。
  3. 1847 (構成) をクリックして 1862 (新規カタログ項目の追加) を選択します。
  4. 追加する カタログ項目タイプ を選択します。この一覧は、利用可能なプロバイダーに関連するアイテムまたは、アプライアンスでアクティブ化されたオプションのみを表示します (たとえば、Ansible Playbook は、Embedded Ansible server ロールがアプライアンスで有効化されている場合に カタログ項目タイプ オプションとして利用できます)。
  5. 基本情報 のサブタブで、

    1. 名前と説明 を入力します。
    2. カタログ内に表示 にチェックを付けて、 カタログダイアログエントリーポイント (名前空間/クラス/インスタンス) オプションを編集します。

      1. プロビジョニングのエントリーポイント (名前空間/クラス/インスタンス) では、プロビジョニング時に実行する自動化インスタンスを選択する必要があります。
      2. リタイアのエントリーポイント (名前空間/クラス/インスタンス) では、リタイア時に実行する自動化インスタンスを選択する必要があります。 Catalogitem statemachine

        注記

        プロビジョニングのエントリーポイント の一覧は、フィルタリングされて、ステートマシンクラスのインスタンスのみを表示するので、エントリーポイントは、ステートマシンにする必要があります。プロビジョニングのエントリーポイント のフィールドでは、他のエントリーポイントは利用できません。

        注記

        作成済みのカタログとダイアログからしか選択することはできません。まだ作成していない場合には、値を空白にして、後ほど編集してください。

  6. 詳細 のサブタブでカタログ項目の 詳細な説明 を記入します。
  7. 要求情報 のサブタブで、選択したプロバイダーに該当するプロビジョニングのオプションを選択します。詳しくは、「仮想マシンのプロビジョニング」 および 「インスタンスのプロビジョニング」 を参照してください。
  8. 追加 をクリックします。

5.4.3. 汎用カタログ項目の作成

仮想化またはクラウド環境に固有でないサービスに、汎用のカタログ項目を作成します。このカタログ項目タイプは、ネットワーク全体にわたる vLAN の作成、仮想マシンの IP アドレスへのアクセス、ロードバランサープールへの追加など、さまざまなニーズに対応できます。

  1. サービスカタログ に移動します。
  2. カタログ項目 のアコーディオンをクリックします。
  3. 1847 (構成) をクリックして 1862 (新規カタログ項目の追加) を選択します。
  4. カタログ項目タイプリストから 汎用 を選択します。
  5. 基本情報 のサブタブで、

    1. 名前と説明 を入力します。
    2. カタログ内に表示 をチェックして、カタログ内に項目を表示します。カタログ内に表示 を選択する場合には、ダイアログ が必要です。
    3. 新規の項目を追加する カタログ を選択します。
    4. 利用可能なオプションから ダイアログ を選択します。
    5. 一覧メニューから サブタイプ を選択します。
    6. エントリーポイント (名前空間/クラス/インスタンス) オプションを追加します。

      1. プロビジョニングのエントリーポイント (名前空間/クラス/インスタンス) では、プロビジョニング時に実行する自動化インスタンスを選択する必要があります。
      2. リタイアのエントリーポイント (名前空間/クラス/インスタンス) では、リタイア時に実行する自動化インスタンスを選択する必要があります。

        注記

        プロビジョニングのエントリーポイント の一覧は、フィルタリングされて、ステートマシンクラスのインスタンスのみを表示するので、エントリーポイントは、ステートマシンにする必要があります。プロビジョニングのエントリーポイント のフィールドでは、他のエントリーポイントは利用できません。

  6. 詳細 のサブタブでカタログ項目の 詳細な説明 を記入します。
  7. 追加 をクリックします。

5.4.4. Ansible Playbook のサービスカタログ項目の作成

Ansible Playbook を使用してバックアップするカタログ項目の作成

注記
  • Ansible サービスの作成前に、最低でもリポジトリー、Playbook、認証情報がそれぞれ 1 つずつ、Red Hat CloudForms インベントリーに存在している必要があります。インベントリーを確認して適切なリソースを追加してから、Ansible サービスを作成するようにしてください。詳しい情報は『Managing Providers』「Automation Management Providers」を参照してください。
  • Ansible Playbook カタログ項目では、デバッグの詳細が利用できます。詳細レベルの高い値を選択すると、Playbook の実行時に、詳細に渡る出力が提供されます。0 (Normal) がデフォルト値で、1 (Verbose) はデータを返し、3 (Debug) の値は、接続を思考してタスクの呼び出し詳細を返します。4 (Connection) などのより高いレベルは SSH 接続のデバッグに有用です。WinRM 接続のデバッグ時に、5 (WinRM Debug) を使用してください。
  1. サービスカタログ に移動します。
  2. カタログ項目 アコーディオンで、すべてのカタログ項目 をクリックします。
  3. 1847 (構成) をクリックして 1862 (新規カタログ項目の追加) を選択します。
  4. カタログ項目タイプ ドロップダウンリストから Ansible Playbook を選択します。
  5. 新規サービスカタログ項目の 名前 および 説明 を入力します。
  6. カタログ内に表示 をクリックします。
  7. ドロップダウンリストから適切な カタログ を選択します。
  8. プロビジョニング タブでは、サービス項目をバックする Playbook を設定して、使用するカタログ項目にパラメーターを設定します。

    1. ドロップダウンリストから リポジトリー を選択します。
    2. 使用する Ansible Playbook を選択します。
    3. ドロップダウンリストから適切な マシンの認証情報 を割り当てます。
    4. ドロップダウンリストから クラウド または ネットワーク認証情報 を追加します。
    5. サービス項目を実行する ホスト を選択します。
    6. 最大 TTL を分単位で設定します。Time To Live (TTL) フィールドでは、Playbook を実行する最大実効時間を設定できます。
    7. Escalate Privilege の切り替えスイッチを使用して、Playbook の実行中に認証情報が呼び出された場合にユーザーの権限昇格ができるようにします。
    8. 詳細 の値を選択して、Playbook 実行のデバッグレベルを設定します。
    9. 変数 のキー値ペアと、対応する デフォルト値 を追加します。
    10. ダイアログ オプションで、既存ダイアログの使用 ドロップダウンリストから既存のダイアログを選択するか、新規作成 を選択して新規ダイアログを追加します。
  9. リタイア タブで、以下の値を選択して、使用するカタログ項目にパラメーターを設定します。

    1. ドロップダウンリストから リポジトリー を選択します。
    2. 使用する Ansible Playbook を選択します。
    3. ドロップダウンリストから適切な マシンの認証情報 を割り当てます。
    4. ドロップダウンリストから クラウド または ネットワーク認証情報 を追加します。
    5. サービス項目を実行する ホスト を選択します。
    6. 最大 TTL を分単位で設定します。Time To Live (TTL) フィールドでは、Playbook を実行する最大実効時間を設定できます。
    7. Escalate Privilege の切り替えスイッチを使用して、Playbook の実行中に認証情報が呼び出された場合にユーザーの権限昇格ができるようにします。
    8. 詳細 の値を選択して、Playbook 実行のデバッグレベルを設定します。
    9. 変数 のキー値ペアと、対応する デフォルト値 を追加します。
    10. ダイアログ オプションで、既存ダイアログの使用 ドロップダウンリストから既存のダイアログを選択するか、新規作成 を選択して新規ダイアログを追加します。
  10. 追加 をクリックします。

5.4.5. Ansible Tower サービスカタログ項目の作成

Red Hat CloudForms で Ansible Tower Playbook を実行するために使用可能な Ansible Tower テンプレートからサービスカタログ項目を作成します。

重要

まず、Ansible Tower で Job テンプレートを作成する必要があります。作成したテンプレートは、Ansible Tower プロバイダーのインベントリーを更新すると、CloudForms によって自動的に検出されます。

最初にカタログを作成します。

  1. サービスカタログ に移動します。
  2. Configuration (構成) をクリックして、 Add a New Catalog (新規カタログの追加) を選択します。
  3. カタログの 名前説明 を入力します。
  4. 追加 をクリックします。

次に Ansible Tower サービスカタログ項目を作成します。

  1. 自動化Ansible Towerジョブ の順に移動します。
  2. Ansible Tower ジョブテンプレート をクリックして Ansible Tower Job テンプレートを選択します。
  3. Configuration (構成) をクリックして、 Create Service Dialog from this Job Template (このジョブテンプレートからサービスダイアログを作成する) を選択します。
  4. サービスダイアログ名 (例: ansible_tower_job など) を入力して 保存 をクリックします。
  5. サービスカタログ に移動して、カタログ項目 をクリックします。
  6. Configuration (構成) をクリックして Add a New Catalog Item (新規カタログ項目の追加) を選択し、少なくとも以下の情報を指定して新規カタログ項目を作成します。

    • カタログ項目タイプ には Ansible Tower を選択します。
    • サービスカタログ項目の 名前 を入力します。
    • カタログ内に表示 を選択します。
    • カタログ で、以前に作成したカタログを選択します。
    • ダイアログ で以前に作成したサービスダイアログ (この例では ansible_tower_job) を選択します。Playbook にユーザーからの追加のパラメーターが必要ない場合には、ダイアログなし を選択することが可能です。タスク実行時にユーザーに追加の情報の入力を要求するには、サービスダイアログ を選択する必要があります。
    • プロバイダー でお使いの Ansible Tower プロバイダーを選択すると、Ansible Tower ジョブ テンプレート オプションが表示され、プロビジョニングのエントリーポイントのステートマシン が自動的に設定されます。
    • 該当する場合には エントリーポイントの再設定 および リタイアのエントリーポイント の設定情報を追加します。
    • 一覧から必要な Ansible Tower ジョブテンプレート を選択します。通常、これにはサービスダイアログの作成に使用した Ansible Tower ジョブテンプレートを選択します。
  7. 追加 をクリックします。作成したカタログ項目が すべてのサービスカタログ項目 の一覧に表示されます。

5.4.6. Amazon サービスカタログ項目の作成

以下の手順を使用して、Amazon カタログ項目を作成します。作成したら、カタログ項目とサービスダイアログをプロビジョニングダイアログですべてのオプションと統合します。こうすることで、ユーザーは、CloudForms Service ユーザーインターフェースの サービスカタログ から Red Hat Enterprise Linux インスタンスをオーダーできるようになります。

  1. サービスカタログ に移動して、カタログ項目 アコーディオンをクリックします。
  2. 1847 (構成) をクリックして 1862 (新規カタログ項目の追加) を選択します。
  3. カタログ項目タイプ リストから Amazon を選択します。
  4. 基本情報 タブに基本的な情報を入力します。

    1. 新規サービスカタログ項目の 名前 および 説明 を入力します。
    2. カタログ内に表示 を選択します。
    3. カタログ リストから適切なカタログを選択します。
    4. ダイアログ リストから適切なサービスダイアログを選択します。
  5. 要求情報 タブをクリックして、要求の詳細を入力します。

    1. カタログ タブで、名前 リストから Amazon AWS イメージ名を、 リストからインスタンスの数を選択します。仮想マシン名 はプロビジョニングプロセス中に上書きされますが、ここでは changeme と入力しておいてください。
    2. プロパティー タブで、インスタンスタイプ から T2 Micro を、CloudWatch には 基本 または 詳細 を選択します。 インスタンスにアクセスする予定の場合は、Guest Access Key Pair も選択してください。
    3. カスタマイズ タブの 認証情報Root パスワード を設定し、カスタマイズテンプレート で cloud-init のスクリプトとして Basic root pass template を選択します。
  6. 追加 をクリックします。

5.4.7. Azure サービスカタログ項目の作成

以下の手順で Azure カタログ項目を作成します。

  1. サービスカタログ に移動して、カタログ項目 アコーディオンをクリックします。
  2. 1847 (構成) をクリックして 1862 (新規カタログ項目の追加) を選択します。
  3. カタログ項目タイプ リストから Azure を選択します。
  4. 基本情報 タブに基本的な情報を入力します。

    1. 新規サービスカタログ項目の 名前 および 説明 を入力します。
    2. カタログ内に表示 を選択します。
    3. カタログ リストから適切なカタログを選択します。
    4. ダイアログ リストから適切なサービスダイアログを選択します。
  5. 要求情報 タブをクリックして、要求の詳細を入力します。

    1. カタログ タブで、名前 リストから Azure イメージ名を、 リストからインスタンスの数を選択します。仮想マシン名 はプロビジョニングプロセス中に上書きされますが、ここでは changeme と入力しておいてください。
    2. Azure 環境で機能する適切な 環境 設定を選択します。
    3. カスタマイズ タブの 認証情報 で、ユーザー名 および パスワード を設定し、カスタマイズテンプレート で適切なスクリプトを選択します。
  6. 追加 をクリックします。

5.4.8. OpenShift テンプレートカタログ項目の作成

注記

コンテナーテンプレートのプロビジョニングの新規カタログ項目を追加する前に、コンテナーテンプレートからサービスダイアログを作成します。詳細は、「コンテナーテンプレートからのサービスダイアログの作成」を参照してください。

以下の手順を実行して、OpenShift テンプレートのカタログ項目を作成します。

  1. サービスカタログ に移動して、カタログ項目 アコーディオンをクリックします。
  2. 1847 (構成) をクリックして 1862 (新規カタログ項目の追加) を選択します。
  3. カタログ項目タイプ リストから OpenShift テンプレート を選択します。
  4. 新規サービスカタログ項目の 名前 および 説明 を入力します。カタログ内に表示 を選択します。
  5. カタログ リストから適切なカタログを選択します。
  6. ダイアログ一覧 から、コンテナーテンプレートで作成したサービスダイアログを選択します。
  7. プロバイダー リストからプロバイダーを選択します。
  8. プロビジョニングのエントリーポイント を設定します。
  9. 追加 をクリックします。

5.4.9. オーケストレーションカタログ項目の作成

以下の手順でオーケストレーションカタログ項目を作成します。

  1. サービスカタログ に移動して、アコーディオンメニューの カタログ項目 をクリックします。
  2. 構成 構成 をクリックしてから、 Green_Plus_Sign 新規カタログ項目の追加 をクリックすると、新規カタログ項目の追加 ウィンドウが表示されます。
  3. カタログ項目タイプ から オーケストレーション を選択します。
  4. 基本情報 に基本的な情報を入力します。

    1. 新規サービスカタログ項目の 名前 および 説明 を入力します。
    2. カタログ内に表示 ボックスを選択します。
    3. カタログ リストから適切なカタログを選択します。
    4. ダイアログ リストから適切なダイアログを選択します。
    5. 一覧から オーケストレーションテンプレート を選択します。
  5. 追加 をクリックします。

5.4.10. サービスのプロビジョニング

  1. サービスカタログ に移動します。
  2. サービスカタログ のアコーディオンをクリックして、プロビジョニングするサービスを選択します。
  3. オーダー をクリックします。

パラメーターは、ダイアログ内での選択項目に関連付けられたメソッドに基づいて、子に渡されます。

5.5. オーケストレーションスタック

クラウドオーケストレーションでは、クラウドリソースとソフトウェアコンポーネントを 1 つのユニットとして作成、更新、管理し、テンプレートを使用して反復的、自動的にデプロイできます。テンプレートは、人間が解読できる構文を使用して、テキストファイルに定義できるので、バージョン管理としてチェックインできます。テンプレートを使用すると、クラウド内にアプリケーションのインフラストラクチャーを簡単にデプロイ、再設定することができます。スタックテンプレートを作成したり、他のソースからアップロードしたりできます。

Red Hat CloudForms は、Amazon CloudFormation、OpenStack Heat、Microsoft Azure、VNF および VMware vApp テンプレートタイプの追加をサポートし、以下の機能を提供します。

  • CloudForms VMDB へのインベントリースタックおよび各タイプの要素
  • ユーザーインターフェースに含まれるように、インスタンスのリレーションシップをスタックにモデル化します。たとえば、スタック内のリージョンのインスタンスを選択すると、ユーザーインターフェースの標準インスタンスビューで、このインスタンスが表示されます。
  • ユーザーインターフェースでスタックとその要素をモデル化します。
注記

CloudForms にテンプレートにインポートする場合は、タイプに合わせて、選択した要素が変換されます。たとえば、一覧は、リストボックスに、単一の項目はテキストボックスに変換されます。

5.5.1. オーケストレーションテンプレートの作成

以下の手順を実行し、オーケストレーションテンプレートを追加します。

  1. サービスカタログ に移動して、アコーディオンメニューの オーケストレーションテンプレート を選択します。
  2. 構成 構成 をクリックしてから、 Green_Plus_Sign 新規オーケストレーションテンプレートの作成 をクリックします。
  3. テンプレートの 名前説明 を入力します。
  4. テンプレートタイプ リストからテンプレートタイプを選択します。デフォルトは、Amazon CloudFormation です。
  5. ドラフト を選択して、ドラフトテンプレートを作成します。
  6. 下の領域で、選択した テンプレートタイプ にテンプレートを追加します。
  7. 追加 をクリックします。

5.5.2. オーケストレーションテンプレートの編集

以下の手順を実行し、オーケストレーションテンプレートを編集します。

  1. サービスカタログ に移動して、アコーディオンメニューの オーケストレーションテンプレート を選択します。
  2. すべてのオーケストレーションテンプレート リストから、編集するオーケストレーションテンプレートを選択します。
  3. 構成 構成 をクリックしてから、 Edit_Sign このオーケストレーションテンプレートの編集 をクリックします。
  4. 必要に応じてテンプレートを編集します。

    注記

    テンプレートにスタックが関連付けられている可能性があるので、読み取り専用のテンプレートの名前および説明を編集するだけです。

  5. 保存 をクリックします。

5.5.3. オーケストレーションテンプレートのコピー

以下の手順を実行して、オーケストレーションテンプレートをコピーし、新規テンプレートを作成します。

  1. サービスカタログ に移動して、アコーディオンメニューの オーケストレーションテンプレート を選択します。
  2. 構成 構成 をクリックしてから、 コピー このオーケストレーションテンプレートのコピー をクリックします。
  3. 必要に応じて、説明 とテンプレートの実際の内容を変更します。CloudForms は、以前のテンプレートの 名前Copy of のプリフィックスが自動的に追加されます。

    注記

    オーケストレーションテンプレートのコピーを新規テンプレートとして作成するには、以前のテンプレートと新しいテンプレートの内容が同じにならないようにする必要があります。

  4. 追加 をクリックします。

5.5.4. オーケストレーションテンプレートの削除

以下の手順を実行し、オーケストレーションテンプレートを削除します。

  1. サービスカタログ に移動して、アコーディオンメニューの オーケストレーションテンプレート を選択します。
  2. すべてのオーケストレーションテンプレート リストから、削除するオーケストレーションテンプレートを選択します。
  3. 構成 構成 をクリックしてから、 削除 インベントリーからのこのオーケストレーションテンプレートの削除 をクリックします。
  4. OK をクリックします。
注記

読み取り専用のテンプレートは削除できません。