クラウド テンプレートの反復開発時や、最終的なテンプレートを使用している場合、Service Broker セルフサービス カタログ内にあるこのテンプレートを利用者に対して使用可能にすることができます。ユーザー エクスペリエンスをさらに向上させるために、カスタム申請フォームを作成できます。カスタマイズされたフォームは、単純なテンプレート入力方法よりも強力です。
最初に行う作業
- テンプレートをサポートするインフラストラクチャがあることを確認します。このようなインフラストラクチャがない場合は、チュートリアル:Cloud Assembly での vSphere インフラストラクチャおよび展開のセットアップとテストを参照して、他のチュートリアルに進みます。
- 一部のリソース プールに
env:dev
およびenv:prod
がタグ付けされていることを確認します。詳細については、チュートリアル:Cloud Assembly でのタグを使用した vSphere リソースの管理を参照してください。 - 以下のような展開可能なクラウド テンプレートがあることを確認します。このチュートリアルでは、まず次のテンプレートを使用します。
formatVersion: 1 inputs: installedOS: type: string title: Operating System description: Select the operating system. enum: - centos - ubuntu placement: type: string enum: - 'env:dev' - 'env:prod' default: 'env:dev' title: Select Placement for Deployment description: Target Environment resources: Cloud_vSphere_Disk_1: type: Cloud.vSphere.Disk properties: capacityGb: 1 Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: image: '${input.installedOS}' installedOS: '${input.installedOS}' flavor: small constraints: - tag: '${input.placement}' tags: - key: db value: mysql networks: - network: '${resource.Cloud_NSX_Network_1.id}' tags: - key: db value: mysql attachedDisks: - source: '${resource.Cloud_vSphere_Disk_1.id}' Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: existing tags: - key: NGINX value: web
手順 1:クラウド テンプレートに入力を追加する
この手順では、既存の OS タイプの入力に加えて、配置入力を更新し、サイズ入力を追加します。Service Broker で申請フォームをカスタマイズした場合は、申請フォーム上にカスタマイズされたフィールドが 3 つあります。
- Cloud Assembly で の順に選択して、上記のテンプレートを作成するか、開きます。
サンプル テンプレートはさまざまなオプションを説明する際に使用され、サンプル値が含まれています。実際の環境に合わせてください。
- サイズ変数を追加し、[入力] セクションでサイズを定義します。
- Cloud_vSphere_Machine_1 セクションで、
flavor
プロパティに変数を追加します。flavor: '${input.size}'
- [入力] セクションに [サイズ] という名前のユーザー入力を追加して、ユーザーが展開のサイズを選択できるようにします。これは、クラウド ゾーンに対して定義され、T シャツ サイズとも呼ばれます。
size: type: string title: Deployment size description: Select the the deployment t-shirt size. enum: - small - medium - large
- Cloud_vSphere_Machine_1 セクションで、
- 配置入力をタグ文字列ではなく、わかりやすい用語で更新します。
これらの制約タグは、チュートリアル:Cloud Assembly でのタグを使用した vSphere リソースの管理で追加した機能タグと照合されます。
- [入力] セクションに 配置 という名前のユーザー入力を追加し、展開の配置として [開発] または [本番] を選択できるようにします。
この例では、
oneOf
属性を使用します。この属性を使用すると、自然言語ラベルを表示しながら、展開プロセスで必要になる文字列を送信できます。例として、env:dev
およびenv:prod
タグが挙げられます。placement: type: string oneOf: - title: Development const: 'env:dev' - title: Production const: 'env:prod' default: 'env:dev' title: Select Deployment Placement description: Target Environment
- [入力] セクションに 配置 という名前のユーザー入力を追加し、展開の配置として [開発] または [本番] を選択できるようにします。
- YAML 全体を調べて、次の例のようになっていることを確認します。
formatVersion: 1 inputs: installedOS: type: string title: Operating system description: Select the operating system. enum: - centos - ubuntu placement: type: string oneOf: - title: Development const: 'env:dev' - title: Production const: 'env:prod' default: 'env:dev' title: Select Deployment Placement description: Target Environment size: type: string title: Deployment size description: Select the the deployment t-shirt size. enum: - small - medium - large resources: Cloud_vSphere_Disk_1: type: Cloud.vSphere.Disk properties: capacityGb: 1 Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: image: '${input.installedOS}' installedOS: '${input.installedOS}' flavor: '${input.size}' constraints: - tag: '${input.placement}' tags: - key: db value: mysql networks: - network: '${resource.Cloud_NSX_Network_1.id}' tags: - key: db value: mysql attachedDisks: - source: '${resource.Cloud_vSphere_Disk_1.id}' Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: existing tags: - key: NGINX value: web
- [展開] をクリックし、申請の 2 ページ目が次の例のようになっていることを確認します。確認したら、この展開が、展開後の本番リソース プールの特定の開発に含まれていることを確認します。
手順 2:クラウド テンプレートのバージョンを管理してリリースする
展開可能なテンプレートがある場合は、他のユーザーが展開できるように Service Broker カタログ内で使用可能にします。クラウド テンプレートを検出可能にして、カタログに追加可能にするには、クラウド テンプレートをリリースする必要があります。この手順では、クラウド テンプレートのバージョン管理を行い、テンプレートのスナップショットを取得して、テンプレートをリリースします。
- の順に選択して、デザイン キャンバス内でテンプレートを開きます。
- [バージョン] をクリックして、説明を入力します。
- [リリース] チェック ボックスを選択して、[作成] をクリックします。
クラウド テンプレートをリリースしても、Service Broker には自動的に追加されません。クラウド テンプレートをリリースすると、検出可能になり、カタログに追加できるようになります。
手順 3:クラウド テンプレートを Service Broker カタログに追加する
Service Broker カタログを使用すると、組織内の他の利用者がテンプレートの作成方法を理解していない場合でも、これらの利用者にクラウド テンプレートを提供することができます。カタログにより、利用者はテンプレートを展開できるようになります。
カタログ アイテムとしてテンプレートを追加するには、Service Broker にテンプレートをインポートしておく必要があります。インポートできるのは、リリースされたクラウド テンプレートのみです。
- Cloud Assembly から Service Broker を開くには、右上隅のアプリケーション メニューをクリックします。
- [Service Broker] をクリックします。
- クラウド テンプレートをインポートします。
- Service Broker で の順に選択します。
- [新規] をクリックし、[VMware Cloud Templates] を選択します。
- [名前] を入力します。
このチュートリアルでは、Cloud Assembly DevProject と入力します。
- [プロジェクト] で、Cloud Assembly で作成した Development Project を選択します。
- [検証] をクリックします。
1 つ以上のアイテムが見つかったことが示される必要があります。
- 検証後、[作成してインポート] をクリックします。
Cloud Assembly DevProject がコンテンツ ソースとしてリストに追加されます。
- クラウド テンプレートをカタログ内で使用可能にします。
- の順に選択します。
- [新規ポリシー] をクリックし、[コンテンツ共有ポリシー] をクリックします。
- 名前を入力します。
このチュートリアルでは、DevProject Policy と入力します。
- [スコープ] リストで、開発プロジェクト を選択します。
- [コンテンツの共有] セクションで、[アイテムの追加] をクリックします。
- [アイテムを共有] ダイアログ ボックスで
Cloud Assembly DevProject
を選択し、[保存] をクリックします。 - [ユーザー] セクションで、カタログにアイテムを表示するプロジェクトのユーザーとグループを選択します。
- [作成] をクリックします。
- 開発テンプレートがカタログに追加されたことを確認するには、 をクリックします。
- 開発テンプレート カードの [申請] をクリックします。
クラウド テンプレートで確認した入力がここに表示されます。次の手順では、申請フォームをカスタマイズします。
手順 4:テンプレートのカスタム フォームを作成する
このカスタム フォームの目的は、ユーザーが env:dev または env:prod タグに基づいてオペレーティング システムおよび配置を選択するフォームを提供することです。env:dev オプションでは、ユーザーは小または中を選択することはできますが、大を選択することはできません。一方、ユーザーが env:prod を選択した場合、大を選択するオプションはありません。サイズはユーザーに表示されませんが、申請には含まれます。
- Service Broker でカスタム フォームを作成するには、 の順に選択します。
- 開発テンプレートのエントリの左側にある縦の省略記号をクリックし、[フォームのカスタマイズ] をクリックします。
- 入力オプションをカスタマイズします。
- キャンバス内のフィールドをクリックし、次の表で指定された内容に沿って [プロパティ] を構成します。
キャンバスのフィールド名 表示 値 制約 オペレーティング システム ラベルとタイプ
- ラベル = オペレーティング システム
値のオプション
- 値のオプション = 定数
- 値のソース =
centos|CentOS,ubuntu|Ubuntu
この例では、値オプションを使用して、すべて小文字のオペレーティング システム名を希望する OS 名にカスタマイズします。
展開の配置の選択 値のオプション
- 値のオプション = 定数
- 値のソース =
env:dev|Development,env:prod|Production
展開サイズ 可視性
- 値のソース = 条件値
- 展開配置が env:dev と等しくなるように選択した場合は、値の設定 = はい
デフォルト値
- 値のソース = 条件値
- 展開が env:prod と等しくなるように選択した場合は、値の設定 = 大
値のオプション
- 値のオプション = 定数
- 値のソース =
small|Small,medium|Medium
値のソースに大が含まれていないことに注目してください。大は本番でのみ使用できる必須の値であるため、除外されています。ユーザー開始アクションが含まれていない展開申請には、大の値が含まれています。
- カタログでフォームを有効にするには、[有効化] をクリックします。
- [保存] をクリックします。
- キャンバス内のフィールドをクリックし、次の表で指定された内容に沿って [プロパティ] を構成します。
- 少なくとも小規模展開の本番申請を送信した際に適切な結果を得るには、カタログ内のフォームをテストします。
次の例を使用して結果を確認します。
- この例では「小規模テスト」という名前を指定し、オプションとして [CentOS]、[開発]、[小] を選択することで、小規模展開申請フォームをテストします。
- 小規模展開の展開を確認するには、 の順に選択し、[小規模展開のテスト] をクリックします。
- トポロジ タブで Cloud_vSphere_Machine をクリックし、右側のペインで [カスタム プロパティ] セクションを特定します。
確認する値は、cpuCount = 2 や flavor = small などです。
- この例では「大規模テスト」という名前を入力し、オプションとして [CentOS] と [本番] を選択することで、本番申請フォームをテストします。
フォームは、サイズを表示したり、ユーザーにサイズ選択を要求したりするように構成されていません。
- 本番展開を確認するには、 の順に選択し、[大規模展開のテスト] をクリックします。
- トポロジ タブで Cloud_vSphere_Machine をクリックし、右側のペインで [カスタム プロパティ] セクションを特定します。
確認する値は、cpuCount = 8 や flavor = large などです。
- この例では「小規模テスト」という名前を指定し、オプションとして [CentOS]、[開発]、[小] を選択することで、小規模展開申請フォームをテストします。
手順 5:カタログ内のクラウド テンプレートのバージョンを制御する
ほとんどの場合、Service Broker カタログでは最新のクラウド テンプレートのみを使用可能にします。次の手順では反復型開発を扱います。あるバージョンのテンプレートをリリースしてカタログに追加しますが、テンプレートを改良したため、現在のバージョンを新しいバージョンに置き換えます。
手順 2 でテンプレートにバージョンを設定してリリースしたため、このプロセスは既知のものです。手順 3 では、それをカタログに追加しました。この手順では、反復型開発を実行してカタログを最新バージョンで更新するため、この 2 つの手順を 1 つにまとめます。
カタログで複数のバージョンを使用できるようにするオプションもあります。
- Cloud Assembly で、カタログから使用可能にするテンプレートにバージョンを設定します。
- の順に選択して、デザイン キャンバス内でテンプレートを開きます。
- [バージョン履歴] をクリックします。
- カタログに追加するバージョンを特定し、[バージョン] をクリックします。
- [説明] に入力し、[リリース] チェック ボックスを選択して、[作成] をクリックします。
この時点で、以前のバージョンをカタログ内に残すオプションを選択できます。複数のバージョンを使用可能にする場合は、バージョンのリリースを解除する次の手順を無視します。
- カタログから使用可能なテンプレートのバージョンを 1 つに制限する場合は、バージョン履歴のリストを確認し、カタログに含めないすべてのバージョンで [リリース解除] をクリックします。
- Service Broker カタログを最新バージョンに基づいて更新し、古いバージョンを置き換えるには、新しいバージョンを収集する必要があります。
- Service Broker で の順に選択します。
- このチュートリアルで使用されている Cloud Assembly DevProject コンテンツ ソースをクリックします。
- [検証] をクリックします。
アイテムが見つかったことを示すメッセージが表示されます。
- [保存してインポート] をクリックします。
- 必要なバージョンがカタログに表示されていること、またはバージョンが表示されていないことを確認します。
- Service Broker で、 の順にクリックします。
- カタログ アイテムを見つけて、[申請] をクリックします。
- 申請フォームの上部にある [バージョン] をクリックし、1 つまたは複数のバージョンを確認します。
次のスクリーンショットには、8 と示されています。