Azure Desired State Configuration 拡張機能ハンドラーの概要
Note
DSC 拡張機能を有効にする前に、Azure マシンの構成という名前の新しいバージョンの DSC が現在一般提供されていることに注意してください。 Azure マシンの構成サービスには、DSC 拡張機能の機能と、お客様からのフィードバックから要求されることの多い機能が含まれています。 Azure マシンの構成には、Arc 対応サーバーによるハイブリッド マシンのサポートも含まれています。
Azure 仮想マシン (VM) 用の Azure VM 拡張機能と関連する拡張機能は、Microsoft Azure インフラストラクチャ サービスの一部です。 Azure VM 拡張機能は、VM の機能を拡張し、さまざまな VM の管理操作を簡略化するソフトウェア コンポーネントです。
DSC 拡張機能は、構成を VM にプッシュするだけです。 VM 内でローカルに使用する場合を除き、継続的なレポート管理は利用できません。
使用可能な DSC バージョン
DSC 拡張機能では、DSC プラットフォームのバージョン 1.1 からの構成がサポートされています。 詳細については、「PSDesiredStateConfiguration v1.1」を参照してください。
前提条件
開発者ワークステーション: Azure DSC 拡張機能を操作するには、Azure portal または Azure PowerShell/CLI SDK のいずれかを使用する必要があります。
ゲスト エージェント: DSC 構成で準備される Azure VM では、Windows Management Framework (WMF) 4.0 以降をサポートするオペレーティング システムを使用する必要があります。 サポートされているオペレーティング システムのバージョンの全一覧については、「Azure DSC 拡張機能のバージョン履歴」を参照してください。
用語と概念
この記事は、読者が次の概念を理解していることを前提としています。
構成は、DSC 構成ドキュメントを指します。
ノードは、DSC 構成のターゲットを指します。 この記事では、"ノード" は常に Azure VM を指します。
構成データは、構成の環境データを含む PowerShell DSC 形式ファイル (.psd1) に保存されます。
アーキテクチャ
Azure DSC 拡張機能は、Azure VM 拡張機能フレームワークを使用して、Azure VM で実行される DSC 構成の配布、適用、レポート作成を行います。 DSC 拡張機能は、構成ドキュメントと一連のパラメーターを受け取ります。
この拡張機能が初めて呼び出されると、次のロジックに従って WMF のバージョンがインストールされます。
Azure VM のオペレーティング システムが Windows Server 2016 の場合、処理は行われません。 Windows Server 2016 では既に PowerShell の最新バージョンがインストールされてるためです。
wmfVersion
プロパティが指定されている場合、指定した WMF のバージョンが VM のオペレーティング システムと互換性がない場合を除いて、その指定したバージョンがインストールされます。wmfVersion
プロパティを指定しなかった場合は、WMF の適用可能な最新バージョンがインストールされます。
WMF のインストール プロセスでは、再起動が必要になります。 再起動後、modulesUrl
プロパティで指定された .zip ファイルが拡張機能によってダウンロードされます (指定した場合)。 この場所が Azure Blob Storage 内の場合、sasToken
プロパティに SAS トークンを指定して、ファイルにアクセスできます。 .zip がダウンロードされ、アンパックされた後、configurationFunction
で定義されている構成関数が実行され、Managed Object Format (MOF) ファイル (.mof) が生成されます。 その後、拡張機能によって、生成された .mof ファイルを使用して Start-DscConfiguration -Force
コマンドが実行されます。 拡張機能は、この出力を取得して Azure の状態チャネルに書き込みます。
ノード構成名
NodeConfigurationName
パラメーターには、構成の名前ではなく、ノード構成の名前を必ず指定してください。
構成は、ノード構成 (MOF ファイル) をコンパイルするために使用されるスクリプトで定義されます。 ノード構成の名前は、常に、構成の名前の後にピリオド .
と localhost
または特定のコンピューター名が続いたものになります。
ARM テンプレートのデプロイ
DSC 拡張機能をデプロイするための最も一般的な方法は、Azure Resource Manager テンプレートを使用することです。 ARM テンプレートに DSC 拡張機能を含める方法の詳細と例については、ARM テンプレートでの Desired State Configuration 拡張機能に関するページを参照してください。
PowerShell コマンドレットのデプロイ
対話型のトラブルシューティングや情報収集のシナリオには、DSC 拡張機能を管理するための PowerShell コマンドレットが最適です。 このコマンドレットを使用すると、DSC 拡張機能のデプロイをパッケージ化、発行、監視できます。
使用できる PowerShell コマンドレットの一部を次に示します。
Publish-AzVMDscConfiguration コマンドレットは構成ファイルを取り込み、構成ファイルをスキャンして依存 DSC リソースを探し、.zip ファイルを作成します。 .zip ファイルには、構成と、構成を適用するために必要な DSC リソースが含まれています。 コマンドレットは
-OutputArchivePath
パラメーターを使用してローカルでパッケージを作成することもできます。 これを使用しない場合、コマンドレットにより Blob Storage に .zip ファイルが発行され、SAS トークンを使用して保護されます。このコマンドレットによって作成された PowerShell 構成スクリプト (.ps1) は、アーカイブ フォルダーのルートの .zip ファイル内にあります。 モジュール フォルダーは、リソースのアーカイブ フォルダーに配置されます。
Set-AzVMDscExtension コマンドレットは、PowerShell DSC 拡張機能が必要とする設定を VM 構成オブジェクトに挿入します。
Get-AzVMDscExtension コマンドレットは、特定の VM の DSC 拡張機能の状態を取得します。
Get-AzVMDscExtensionStatus コマンドレットは、DSC 拡張機能ハンドラーによって適用された DSC 構成の状態を取得します。 この処理は、単一の VM または VM のグループに対して実行できます。
Remove-AzVMDscExtension コマンドレットは、特定の VM から拡張機能ハンドラーを削除します。 このコマンドレットによって、構成が削除されること、WMF がアンインストールされること、または VM に適用されている設定が変更されることはないので留意してください。 このコマンドレットでは、拡張機能ハンドラーが削除されるだけです。
重要な考慮事項
Azure Resource Manager コマンドレットを使用する場合、いくつかの考慮事項に留意する必要があります。
Azure Resource Manager コマンドレットは動機的です。
ResourceGroupName
、VMName
、ArchiveStorageAccountName
、Version
、Location
など、いくつかのパラメーターが必要です。ArchiveResourceGroupName
は省略可能なパラメーターです。 VM が作成されたリソース グループとは別のリソース グループにストレージ アカウントが属している場合、このパラメーターを指定します。AutoUpdate
スイッチを使用すると、最新バージョンが利用可能になったときに、拡張機能ハンドラーが自動的に更新されるようにできます。 WMF の新しいバージョンがリリースされると、このパラメーターによって VM で再起動が生じる可能性があります。
PowerShell コマンドレットでの構成
Azure DSC 拡張機能は DSC 構成ドキュメントを使用して、デプロイ時に Azure VM を直接構成することができます。 この手順では、ノードはオートメーションまたはマシンの構成に登録されません。 ノードは一元管理されないことに注意してください。
次のコードは、簡単な構成の例を示しています。 この例を使用するには、この構成を iisInstall.ps1 スクリプト ファイルとしてローカルに保存します。
configuration IISInstall
{
node "localhost"
{
WindowsFeature IIS
{
Ensure = "Present"
Name = "Web-Server"
}
}
}
次の PowerShell コマンドは、指定した VM に iisInstall.ps1 スクリプトを配置します。 さらにコマンドは構成を実行し、状態を報告します。
$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'
Azure CLI でのデプロイ
Azure CLI を使用して、DSC 拡張機能を既存の VM にデプロイできます。 次の例は、Windows に VM をデプロイする方法を示しています。
Windows を実行する VM の場合、次のコマンドを使用します。
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name DSC \
--publisher Microsoft.Powershell \
--version 2.77 --protected-settings '{}' \
--settings '{}'
Azure portal のデプロイ
Azure portal で DSC 拡張機能を設定するには、次の手順に従います。
VM に移動します。
[設定] で [拡張機能とアプリケーション] を選択します。
[拡張機能] で [+ 追加] を選択します。
[PowerShell Desired State Configuration] を選択し、[次へ] を選択します。
DSC 拡張機能の次のパラメーターを構成します。
[Configuration Modules or Script] (構成のモジュールまたはスクリプト): (必須) VM の構成モジュールまたはスクリプト ファイルを指定します。
構成モジュールおよびスクリプトは、構成スクリプトを含む .ps1 ファイルまたは .ps1 構成スクリプトがルートにある .zip ファイルが必要です。 .zip ファイルを使用する場合、すべての依存リソースを .zip ファイルのモジュール フォルダーに含める必要があります。 Azure PowerShell SDK に含まれているコマンドレット Publish-AzureVMDscConfiguration -OutputArchivePath を使用して、.zip ファイルを作成することができます。 .zip ファイルはユーザーの Blob Storage にアップロードされ、SAS トークンによってセキュリティで保護されます。
[Module-qualified Name of Configuration] (構成のモジュール修飾名): (必須) 1 つの.ps1 スクリプト ファイルに複数の構成関数を含めるには、この設定を指定します。 この設定では、.ps1 構成スクリプト ファイルの名前を入力し、その後、スラッシュ
\
と構成関数の名前を入力します。 たとえば、.ps1 スクリプト ファイルの名前が configuration.ps1 で、構成の名前が IisInstall の場合、設定ではconfiguration.ps1\IisInstall
という値を入力します。[Configuration Arguments] (構成引数): 構成関数が引数を受け取る場合、
argumentName1=value1,argumentName2=value2
という形式で値を入力します。 この形式は、PowerShell コマンドレットまたは ARM テンプレートで構成引数を指定するために使用される形式とは異なります。[Configuration Data PSD1 File] (構成データの PSD1 ファイル): 構成に .psd1 形式の構成データ ファイルが必要な場合、この設定を使用してデータ ファイルを選択し、ユーザーの Blob Storage にアップロードします。 構成データ ファイルは、Blob Storage で SAS トークンによって保護されます。
[WMF Version] (WMF バージョン): VM にインストールする Windows Management Framework のバージョンを指定します。 既定値である [最新] を選択すると、システムにより最新バージョンの WMF がインストールされます。 その他の設定可能な値は 4.0、5.0、5.1 などです。 設定可能な値は更新される可能性があります。
[Data Collection] (データ収集): DSC 拡張機能で VM に関するテレメトリを収集する場合、この設定を有効にします。 詳しくは、「Azure DSC extension data collection (Azure DSC 拡張機能のデータ収集)」をご覧ください。
[バージョン]: (必須) インストールする DSC 拡張機能のバージョンを指定します。 バージョンの詳細については、「Azure DSC 拡張機能のバージョン履歴」を参照してください。
[マイナー バージョンの自動アップグレード]: この設定は、コマンドレットの
AutoUpdate
スイッチに対応します。 この設定を構成すると、インストール時に DSC 拡張機能を最新バージョンに自動的に更新できます。 [はい] を指定すると、DSC 拡張機能ハンドラーで使用可能な最新バージョンが使用されます。 [いいえ] (既定値) を指定すると、[バージョン] 設定で指定したバージョンがインストールされます。
パラメーターを構成した後、[確認と作成] を選択し、[作成] を選択します。
DSC 拡張機能のログ
C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>
で、VM の Azure DSC 拡張機能のログを確認できます。
次のステップ
- PowerShell DSC の詳細については、PowerShell ドキュメント センターを参照してください。
- Azure DSC 拡張機能用の ARM テンプレートを調べます。
- PowerShell DSC を使用して管理できる機能とその他の DSC のリソースについては、PowerShell ギャラリーを参照してください。
- 機密パラメーターを構成に渡す方法について詳しくは、Azure DSC 拡張機能ハンドラーで資格情報を安全に管理する方法に関するページを参照してください。