前回の記事の最後で、AzureのMarketplaceは手動でアイテムが登録できるとお伝えしました。今回は、その実際の登録手順と登録された結果について解説します。

独自テンプレートをMarketplaceに登録するための準備

まずは、Azure Stack Marketplace用のツール「Azure Gallery Packager」をこちらのサイトの手順に従ってダウンロードします。ダウンロードした圧縮ファイル「Azure Stack Marketplace Item Generator and Sample.zip」を展開すると、次の2つのフォルダが入っています。

  • SimpleVMTemplate
  • AzureGalleryPackageGenerator

SimpleVMTemplateフォルダの中身は、登録する際に必要となるサンプルファイルなので、この作業にどのようなファイルが必要かを確認することができます。また、このフォルダ内のファイルをカスタマイズするなどして独自のテンプレートを作ることもできます。

もう1つのAzureGalleryPackageGeneratorフォルダには、ご自身で用意したファイルを元にAzure Stack Marketplaceに登録するためのパッケージ化を行うためのツールが入っています。独自テンプレートの登録作業には、Azure StackのPowerShellコマンド(Add-AzsGalleryItem)を利用しますが、その作業時にこのGeneratorでパッケージ化したファイルを指定することになります。

ファイルの準備

まずはSimpleVMTemplateフォルダをコピーし、ご自身の好きな名前を付けておきましょう。このフォルダ構造を崩さずに、必要に応じてファイルを置き換えるかたちをとれば間違いを減らすことができます。

次に、Azure Stackポータルに表示されるアイコン用に、大きさの違う以下の4種類のファイルを用意し、Iconsフォルダに配置します。また、説明用の画面にスクリーンショットの掲載する場合は、スクリーンショットファイルを用意します。用意するファイルとサイズは以下の通りです。

Name 高さ メモ
Wide 255 px 115 px 常に必要
Large 115 px 115 px 常に必要
Medium 90 px 90 px 常に必要
Small 40 px 40 px 常に必要
Screenshot 533 px 32 px 省略可能

次に、自動展開用のJSONファイルを用意し、DeploymentTemplatesフォルダに配置します。サンプルでは「azuredeploy-101-simple-windows-vm.json」というファイルが用意されています。このファイルに記述されているのは、仮想ネットワークを作り、ストレージサービスの設定をした上でWindows Server仮想マシンを仮想ネットワークに自動配置するコードです。そのまま使うこともできますし、GitHubにあるAzure Stack用のクイックスタートテンプレートから目的に近いものをダウンロードしてそのまま、もしくはカスタマイズして利用することもできます。

また、SimpleVMTemplateフォルダのルートにあるファイル「manifest.json」は、Marketplaceアイテムのバージョン番号やパブリッシャー(展開元の名前)などを指定するためのもので、サンプルは以下のような記述になっています。

manifest.jsonファイルの中身

このファイルのなかにある「categories」には好きな名前を付けることができ、例えばAzure Stackのメニューに会社名などを表示することもできます。

パッケージ化と公開、そして登録

ファイルの準備ができたら、ダウンロードしたAzureGalleryPackageGeneratorを使ってパッケージ化を行います。コマンドは以下の通りで、manifestファイルを元に.azpkgファイルを生成します。

AzureGalleryPackager.exe package ?m <path to manifest.json> -o <output location for the package>

次に、生成したファイルをAzure StackのBlob Storageにアップロードし、外部からアクセス可能な設定にします。Blob Storage上のアイテムは個別にURLを持てるので、その機能を使って簡単に呼び出せる状況を作り出すのです。

URLを持つBlob Storage上のAzpkgファイル

最後に、Add-AzsGalleryItemコマンドとBlobにて公開されたAzpkgファイルのURLを使ってAzure Stackに登録します。

Add-AzsGalleryItem -GalleryItemUri https://sample.blob.core.windows.net/gallerypackages/Microsoft.SimpleTemplate.1.0.0.azpkg ?Verbose

独自のアイコンを持つテンプレートとAzure Stack DEMOという独自のカテゴリー

これで利用者の画面にも独自のカテゴリーや独自テンプレートが表示されるようになりました。このように、Azure Stackのテンプレートが仮想マシン用のファイルを指定するものではなく、自動展開用のコードそのものであることもご理解いただけたことでしょう。このファイル構造を理解すれば、シンプルな仮想マシンも、複雑なシステムの展開も、メニューから呼び出すかたちで利用可能になります。

* * *

今回は、Azure Stack Marketplaceの独自アイテムの登録について見てきました。次回は、独自のアプリケーションがインストールされた仮想マシンをカスタムの仮想マシンイメージとして登録する手順などについて解説したいと思います。

著者紹介

日本マイクロソフト株式会社
高添 修

Windows 10やVDIの世界にいるかと思えばSDNやDevOpsのエンジニアと普通に会話をし、Azure IaaS登場時にはクラウドの先頭にいたかと思えばオンプレミスデータセンターのハードウェアの進化を語るセミナーを開くなど、幅広く活動するマイクロソフト社歴約17年のベテラン。最近は主にAzure Stackをテーマにしたハイブリッドクラウドの普及活動に力を入れている。