Azure Compute Galleryを使ったVMイメージ作成、保管、デプロイ

Azure,Virtual Machine,Windows

Azureには仮想マシン(Azure VM)のイメージを作成して保管しておくサービスとしてAzure コンピューティング ギャラリー(Azure Compute Gallery)があります。
作成したイメージを利用して大規模に仮想マシン(Azure VM)を展開すると言った事が出来ます。

今回は仮想マシン(Azure VM)のイメージ保管リソースの準備、イメージ作成、デプロイまで一連の手順について纏めてみました。

    • Azure コンピューティング ギャラリーのリソース作成
    • Azure コンピューティング ギャラリーでVMイメージ定義の作成
    • イメージ元となる仮想マシン(Azure VM)デプロイ
    • OSの日本語化、IISをインストール
    • Windows Server 2022の汎用化からイメージ作成
    • イメージを利用した仮想マシン(Azure VM)のデプロイ

Windows Server 2022を例に手順を纏めています。

スポンサーリンク

Azure コンピューティング ギャラリーやVM定義のリソース

Azure コンピューティング ギャラリーって何?

Azure コンピューティング ギャラリー(Azure Compute Gallery)は仮想マシンのイメージを保管共有するサービスです。
仮想マシン(Azure VM)のイメージを作成した場合の保管先になるAzure リソースです。

Azure Compute Gallery でリソースを格納、共有する

仮想マシン(Azure VM)イメージを保管したり、保管したイメージをデプロイを利用してデプロイする事が出来ます。
RBACを利用したアクセス制限で特定のメンバーだけに公開と言った事も出来ます。
同一サブスクリプション内だけではなく、サブスクリプションやADテナント間の共有、コミュニティにイメージを共有する事も可能です。
リージョンまたぐ保管も可能です。

VMイメージ定義って何?

Azure コンピューティング ギャラリー内で利用される、仮想マシンのイメージ定義やバージョンを指定する為のリソースです。

イメージ定義とイメージ バージョンを作成する

VMの基本的な構成やオペレーティングシステムを定義します。
イメージのバージョン管理も可能です。
イメージとなる仮想マシン(Azure VM)の設定内容とVMイメージの定義内容が合致している必要があります。

Azure コンピューティング ギャラリーのリソースを作成

Test_Compute_gallery_01と言うリソース名で、East US 2にリソースを作成します。

リソースを格納および共有するためのギャラリーを作成する

リソース作成
Azure コンピューティング ギャラリーで作成を選択します。
インスタンスの詳細でリソース名やリージョンを指定します。

イメージの共有方法設定です。
今回はサブスクリプション内での共有なので、ロールベースのアクセス制御(RBAC)を選択しています。

確認および作成を選択します。
確認画面で作成を選択してリソースをデプロイします。

VMイメージ定義のリソース作成

VMイメージ定義のリソースを作成します。

イメージを作成する

リソース名はsmall-win2022-jpn-iis-imageとして作成しています。
Windows Server 2022のイメージを保管する前提としています。
今回はAzure コンピューティング ギャラリーのメニューからVMイメージ定義を作成します。
イメージのバージョンは複数保持する事が出来ます。

VMの世代、OSの種類、VMアーキテクチャ、セキュリティの種類、高速ネットワーク設定はイメージとなる仮想マシン(Azure VM)の設定と合せておく必要があります。
設定が合致していない場合はエラーとなります。

※今回は個別でVMイメージ定義作成しています。仮想マシン(Azure VM)のイメージ化と同時に作成する事も出来ます。

VMイメージ定義のリソース作成
Azure コンピューティング ギャラリーでVMイメージ定義を追加します。

VMイメージ定義の設定画面です。
仮想マシン(Azure VM)作成時と同様にセキュリティの種類等の設定があります。
イメージとなる仮想マシン(Azure VM)と同じ設定を選択します。
発行元、オファー、SKUを設定します。

※OSの状態はユーザー情報等をクリアして汎用化しているかの選択です。クリアしている場合は一般を選択します。今回はSysprepを利用してクリアしていますので一般を選択します。

一般化されたイメージと特殊化されたイメージ

バージョン名はX.X.Xの形式で指定します。

イメージ バージョン

※複数のバージョンのイメージを保持出来ます。
※仮想マシン(Azure VM)デプロイ時にバージョンを指定出来ます。

 

発行のオプションです。
VM展開で推奨されるリソース条件を指定出来ます。
VM展開で指定する奨値に強制力はありません。

確認および作成を選択します。
確認画面で作成を選択してリソースをデプロイします。

作成完了後の確認

作成されたリソースを確認します。

リソース確認
Azure コンピューティング ギャラリー内にVMイメージ定義が作成されている事が確認出来ます。

仮想マシン(Azure VM)のイメージ作成

Windows Server 2022 Datacenter Azure Edition(smalldisk)の仮想マシンをイメージ化します。
OSの日本語化、IISのインストールを実施してイメージ化しています。

イメージ元となる仮想マシン(Azure VM)をデプロイ

Windows Server 2022 Datacenter Azure Edition(smalldisk)の仮想マシン(Azure VM)をデプロイします。
仮想マシン名はwin-image-01としています。

※下記手順はポイントのみピックアップしています。
※ディスク、ネットワーク設定(高速ネットワーク除く)、管理、監視、詳細等は任意の値で設定します。仮想マシン(Azure VM)展開時に新規に設定します。

仮想マシンデプロイ

仮想マシン作成画面です。
イメージ化したい内容に合せて選択します。
セキュリティの種類等がVMイメージ定義と合致している必要があります。

※管理者アカウント名はimageadminとしています。

ネットワーク設定の高速ネットワーク有効化はVMイメージ定義と一緒の値を設定する必要があります。

確認画面で作成を選択してリソースをデプロイします。

OSの日本語化

Windows Server OSの日本語化はこちらに纏めています。

IISインストール

IISをインストールします。
今回はPowerShellを利用して実施しています。

Install-WindowsFeature コマンドレットを使用して役割と機能をインストールするには
Install-WindowsFeature(コマンドレット説明)

IISのインストール

管理者権限でPowerShellを開きます。
Web-ServerがIISに対応します。

※画面サンプルはAdd-WindowsFeatureコマンドレットになってます。

IISのインストールについてはこちらでも纏めております。

Sysprepで標準化

公式サイトの手順を参考に汎用化します。

Windows(イメージ作成前に VM をプロビジョニング解除または一般化し、マシン固有の情報を削除します)

※汎用化後は再起動出来なくなります。実行前はバックアップ等を使ってデータ保全します。
※Linuxの汎用化手順についてはこちらに記載があります。

Linux(イメージ作成前に VM をプロビジョニング解除または一般化し、マシン固有の情報を削除します)

汎用化

panther ディレクトリディレクトリを削除します。

rmdir /s “c:\Windows\Panther"

%windir%\system32\sysprepディレクトリに移ります。

cd %windir%\system32\sysprep

Sysprepコマンドを実行します。

sysprep.exe /oobe /generalize /shutdown

 

※CD/DVD-ROM有効確認手順はスキップしています。

イメージ作成

イメージを作成します。
作成対象の仮想マシン(Azure VM)のキャプチャからイメージ作成します。

※イメージを作成すると該当の仮想マシン(Azure VM)は起動しなくなります。
※イメージ作成と同時に仮想マシン(Azure VM)の削除も可能です。

イメージ作成
仮想マシンのメニューでキャプチャを選択します。

イメージ作成画面です。
コンピューティングギャラリーにVMイメージバージョンとして共有しますを選択します。
仮想マシンの自動削除を選択します。
事前に作成したAzure コンピューティング ギャラリーをターゲットに指定します。
オペレーティングシステムの状態は汎用化を選択します。
VMイメージ定義は事前に作成したVMイメージ定義を選択します。
バージョン番号を指定します。
イメージのレプリカを指定します。

確認および作成を選択します。
確認画面で作成を選択してイメージを作成します。

イメージ作成後の確認

作成したイメージを確認します。
VMイメージ定義で確認出来ます。

イメージ確認
VMイメージ定義に追加されています。
VMイメージバージョンでも追加されている事が確認出来ます。

イメージ作成と同時にVMイメージ定義を作成

イメージ作成と同時にターゲットになるVMイメージ定義も作成出来ます。

イメージ定義作成

ターゲットVMイメージ定義で新規作成を選択します。
イメージ作成と同時にVMイメージ定義が作成出来ます。
VMイメージ定義はターゲット指定したAzure コンピューティング ギャラリーに作成されます。

※公開オプションを使うとVMイメージ定義の発行オプションと同じ内容が指定出来ます。
※画面イメージは別の仮想マシン(Azure VM)になります。

VMイメージを使った仮想マシン(Azure VM)デプロイ

イメージの選択

イメージを利用した仮想マシン(Azure VM)のデプロイはVMイメージ定義から出来ます。
仮想マシン(Azure VM)デプロイ時にも共有イメージを選択出来ます。

イメージの選択
VMイメージ定義からイメージを指定してVM作成が出来ます。

共有イメージにAzure コンピューティング ギャラリーで共有したイメージが表示されます。

※すべてのイメージ表示から共有イメージを選択します。

仮想マシン(Azure VM)をデプロイ

イメージを利用した場合も通常の手順と同様です。
仮想マシン名はwin-image-02としています。
管理者アカウントはnewimagevmadminとしています。

イメージを利用して仮想マシン(Azure VM)をデプロイ

イメージで作成したイメージを指定します。
ライセンスの種類はWindows を選択します。
同じ手順で仮想マシン(Azure VM)をデプロイ出来ます。

※VMイメージ定義で設定した項目(セキュリティの種類等)は変更出来ません。

デプロイ後の確認

仮想マシン(Azure VM)デプロイ後の設定内容を確認します。

デプロイ後の確認
仮想マシンのプロパティを確認します。
デプロイ時に指定したコンピュータ名やVMイメージ定義が表示されています。
OSにログインして確認します。
日本語化されている事が確認出来ます。
またデバイス名も指定した内容になっています。
Windows のエディションもイメージ作成元の仮想マシン(Azure VM)と同じ内容になっています。
IISのインストールを確認します。
http://localhostとアクセスするとIISの画面が表示されました。
IISのインストールも確認出来ました。
ユーザーアカウントを確認します。
イメージ元の仮想マシンの管理者アカウントimageadminはありません。
新しい管理者アカウントnewimagevmadminが作成されています。

最後に

仮想マシン(Azure VM)のイメージ保管リソースの準備、イメージ作成、デプロイまで一連の手順について確認しました。
イメージ作成した仮想マシン(Azure VM)は利用出来なくなる点には注意が必要な事が分かりました。

イメージの保管先となるリソースとしてAzure コンピューティング ギャラリーやVMイメージ定義が必要です。
Windows Serverの場合は仮想マシン(Azure VM)イメージ作成時には汎用化が必要となります。

ただ一度イメージを作成すると再利用可能なのでとても便利かと思いました。
今後も色々試してみたいと思います。