Azure VMのカスタム スクリプト拡張機能を使ってIISをインストール

Azure,Virtual Machine

Azure 仮想マシン(VM)にはカスタムスクリプト(Custom Script Extension)と言う拡張機能があります。
カスタムスクリプト拡張機能を使うとAzure 仮想マシンOS上でスクリプトを実行する事が出来ます。

Windows でのカスタムのスクリプト拡張機能
Linux 仮想マシンで Azure カスタム スクリプト拡張機能 v2 を使用する

OSにログインする事無く外部からOS上でスクリプトを実行させる事が出来ます。
カスタムスクリプトを使うと仮想マシンをデプロイ後にソフトウェアのインストールをしたりOSの設定をする事が出来ます。

今回はカスタムスクリプト機能を使ってWindows Sever 2022のAzure仮想マシンにIISをインストールしてみました。

スポンサーリンク

Azure仮想マシンのカスタムスクリプト拡張機能を使ってIISをインストール

参考となるチュートリアル

公式サイト記載のチュートリアルを参考に進めます。
チュートリアルはPowerShellを使っていますが、今回はAzure Portalを利用して実施します。

チュートリアル – カスタム スクリプト拡張機能を使って Azure 内の Windows 仮想マシンにアプリケーションを展開する

またスクリプト作成にあたってのヒントはこちらに記載があります。

ヒントとテクニック

カスタムスクリプトは1回しか実行されない等の注意事項について記載があります。

拡張機能にあるカスタムスクリプトを使ってみる

最初は拡張機能のインストールになります。

拡張機能の指定
仮想マシンのリソースメニューで拡張機能とアプリケーションを選択します。
追加をクリックします。

拡張機能のインストール画面になります。
Custom Script Extensionを選択します。

スクリプトの選択画面になります。

カスタムスクリプトファイルを指定する必要があります。

スクリプトはファイルを準備しておく必要がある

カスタムスクリプトで実行させる内容は事前にファイルにしておく必要があります。
今回はIIS_Install.ps1と言う名前でファイルを作成します。

カスタムスクリプトのサンプル

チュートリアルに記載の内容をそのまま使ってみます。

Add-WindowsFeatureでIISのインストールを行います。

Add-ContentでIISがデフォルト表示する画面を作成します。

Add-WindowsFeature Web-Server
Add-Content -Path “C:\\inetpub\wwwroot\Default.htm" -Value $($env:computername)

※ファイルから読み込む必要があるのはGUIで実行する場合です。Set-AzVMExtension(PowerShell)を使って設定する場合はそのままスクリプトを書くことが出来ます。

スクリプトはストレージアカウントから読み込む

スクリプトファイルはストレージアカウントから読み込む必要があります。

デプロイメント
参照ボタンをクリックします。
ストレージアカウントのリストが表示されます。スクリプトを配置したストレージアカウントを選択します。
コンテナーの指定画面になります。スクリプトを配置したコンテナーを選択します。

コンテナー内にあるスクリプトファイルを選択します。

※本画面でコンテナーへのファイルアップロードも可能です。

先ほど指定したpsファイルが表示されます。確認と作成をクリックします。

確認画面が表示されます。ファイルが間違っていない事を確認したら作成をクリックします。

これでカスタムスクリプトを使った仮想マシンへのIISインストール作業は完了です。

ブラウザでアクセスしてIISのインストール確認する

ブラウザで接続してみる

仮想マシンのへブラウザでアクセスしてみます。

※事前に仮想マシンのネットワークセキュリティグループで80ポートの許可設定が必要になります。

アクティビティログの診断設定

http://仮想マシンのIPでアクセスするとホスト名が表示されている事が確認出来ます。

仮想マシン上で確認してみるとIISがインストールされている事が分かります。

最後に

今回はWindowsの仮想マシンでカスタムスクリプトを使ったIISインストールを試してみました。
事前にPowerShellのファイルを準備しておくだけで共通的に設定が出来るので便利な機能かと思います。
今回はIISインストールで試してみましたがその他にも色々実行する事が出来るので今後も引き続き色々試してみたいと思います。

同じような機能としてカスタムデータと言うのもあります。
カスタムデータを使ったAzure VM(Linux)でのスクリプト実行はこちらでやっています。