SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

PowerShell DSC 拡張を使用した Azure の仮想マシンへの IIS 展開のメモ

one comment

先日、新ポータルから AlwaysOn 可用性グループが設定された構成がテンプレートとして提供され、簡単に可用性の環境が構築できるようになりました。
展開には DSC が使用されているようでしたので、この機会に Azure PowerShell DSC 拡張を触ってみようかと。

詳細は

を見ていただくとよいかと。

Azure PowerShell が実行できる必要がありますので https://github.com/Azure/azure-sdk-tools/releases 等で 0.8.6 以降のバージョンをインストールしておく必要があります。

また、冒頭で紹介した記事では PowerShell DSC Resource Kit のリソースが使用されていますので、PowerShell DSC Resource Kit Wave 5 Arrives を参考に、DSC Resource Kit (All Modules)  から xWebAdministration をダウンロードし、[C:Program FilesWindowsPowerShellModules] に展開しておきます。
# リソースの配置は Understanding Import-DscResource Keyword in Desired State Configuration が参考になります。

image

今回は xWebAdministration に含まれる BakeryWebsite のアプリケーションをデプロイしますので、[C:Program FilesWindowsPowerShellModulesxWebAdministrationExamples] の BakeryWebsite.zip を [C:Program FilesWindowsPowerShellModulesxWebAdministration] に展開しておきます。
# DSC のコンフィグで指定しているパスに展開しておきます。
image

Azure PowerShell を実行する環境の準備はこれで完了です。

PowerShell DSC 拡張を使用した仮想マシンへの DSC の構成適用ですが、

  1. 必要となるモジュール群を ZIP アーカイブ
  2. ZIP アーカイブされたファイルを Azure Storage 上に配置
  3. 仮想マシンが ZIP アーカイブされたファイルを取得し、構成を適用

という流れで実行されているようです。

これらの作業については Azure PowerShell を実行できる環境で実施することができます。

まずは DSC の Configuration を作成する必要がありますが、今回は冒頭の記事の [FourthCoffee.ps1] を使用し、このファイルを [C:examples] に保存しています。
image

これで準備が終わりましたので PowerShell から以下のようなコードを実行します。

Add-AzureAccount
$VMName = "DSCTEST2"
$ServiceName = "OzawaDSCTEST2"
$Subscription = Get-AzureSubscription | Out-GridView -OutputMode Single
Select-AzureSubscription -SubscriptionName $Subscription.SubscriptionName -Current
$StorageAccount = Get-AzureStorageAccount | Select Label | Out-GridView -OutputMode Single
Get-AzureSubscription -SubscriptionName $Subscription.SubscriptionName |  Set-AzureSubscription -CurrentStorageAccountName $StorageAccount.StorageAccountName
Publish-AzureVMDscConfiguration -ConfigurationPath "C:examplesFourthCoffee.ps1" -ConfigurationArchivePath "C:examplesFourthCoffee.ps1.zip"
Publish-AzureVMDscConfiguration "C:examplesFourthCoffee.ps1.zip"
$VM = Get-AzureVM -Name $VMName -ServiceName $ServiceName
$VM = Set-AzureVMDSCExtension -VM $vm -ConfigurationArchive "FourthCoffee.ps1.zip" -ConfigurationName "FourthCoffee"
$VM | Update-AzureVM

今回は、Publish-AzureVMDsConfiguration で ?ConfigurationArchivePath を指定して ZIP を作成してから Azure ストレージにアップロードするという作業をしていますが、ArchivePath ではなくストレージのコンテナーを指定して一つのコマンドレットでアップロードをすることが可能です。

実行が終わると指定した仮想マシンに IIS が導入され、BakeryWebsite のアプリケーションがデプロイされます。

DSC の実行はゲストエージェントのプラグインとしてインストールされている [Microsoft.Powershell.DSC] により実行されます。

image

このフォルダ内の DSCWork に ZIP がダウンロードされ、プッシュ型の適用が使用され、処理が実行されているようです。

実行時のログについては、[C:WindowsAzureLogsPluginsMicrosoft.Powershell.DSC] の [DSCBOOT_script_xxxx.log] 等のログファイルに出力されているようですので、こちらを確認するとよさそうです。

DSC は勉強会やセミナーで教えていただいただけで自分では触れていなかったので、これから勉強しないといけないですね…。

Share

Written by Masayuki.Ozawa

8月 26th, 2014 at 12:30 pm

One Response to 'PowerShell DSC 拡張を使用した Azure の仮想マシンへの IIS 展開のメモ'

Subscribe to comments with RSS or TrackBack to 'PowerShell DSC 拡張を使用した Azure の仮想マシンへの IIS 展開のメモ'.

  1. […] PowerShell DSC 拡張を使用した Azure の仮想マシンへの IIS 展開のメモ […]

Leave a Reply