Note
DSC 拡張機能は、2028 年 3 月 31 日に廃止されます。 その日までに Azure Machine Configuration に移動してください。 詳細については、 ブログ投稿 のお知らせを参照してください。 Azure Machine Configuration サービスは、DSC 拡張機能、Azure Automation State Configuration、およびお客様からのフィードバックから一般的に要求される機能の特定の機能を組み合わせたものです。 Azure マシンの構成には、Arc 対応サーバーによるハイブリッド マシンのサポートも含まれています。
Azure 仮想マシン (VM) 用の Azure VM 拡張機能と関連する拡張機能は、Microsoft Azure インフラストラクチャ サービスの一部です。 Azure VM 拡張機能は、VM の機能を拡張し、さまざまな VM の管理操作を簡略化するソフトウェア コンポーネントです。
DSC 拡張機能は、構成を VM にプッシュするだけです。 VM 内でローカルに使用する場合を除き、継続的なレポート管理は利用できません。
Note
New! より高速な診断のために VM アシストを試す' Windows 用の VM アシスト または Linux 用の VM アシストを実行することをお勧めします。 これらのスクリプト ベースの診断ツールは、Azure 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 のインストール プロセスでは、再起動が必要になります。 再起動後、拡張機能によって、.zip プロパティで指定されたmodulesUrl ファイルのダウンロードが自動化されます (指定されている場合)。 この場所が Azure Blob Storage 内の場合、sasToken プロパティに SAS トークンを指定して、ファイルにアクセスできます。 次に、 configurationFunction で定義されている構成関数を実行して 、マネージド オブジェクト形式 (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パラメーターを使用してローカルでパッケージを作成することもできます。 それ以外の場合、コマンドレットは.zipファイルを Blob Storage に発行し、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ファイル、またはルートに.zip構成スクリプトを含む.ps1ファイルが必要です。.zipファイルを使用する場合は、依存するすべてのリソースを.zipファイルのモジュール フォルダーに含まれている必要があります。.zipファイルは、Azure PowerShell SDK に含まれている Publish-AzureVMDscConfiguration -OutputArchivePath コマンドレットを使用して作成できます。.zipファイルはユーザー Blob Storage にアップロードされ、SAS トークンによって保護されます。[構成のモジュール修飾名]: (必須) 1 つの
.ps1スクリプト ファイルに複数の構成関数を含めるには、この設定を指定します。 この設定では、構成.ps1スクリプト ファイルの名前の後にスラッシュ\を入力し、次に構成関数の名前を入力します。 たとえば、.ps1スクリプト ファイルの名前が configuration.ps1 で、構成名が IisInstall の場合は、設定の値configuration.ps1\IisInstallを入力します。[Configuration Arguments] (構成引数): 構成関数が引数を受け取る場合、
argumentName1=value1,argumentName2=value2という形式で値を入力します。 この形式は、PowerShell コマンドレットまたは ARM テンプレートで構成引数を指定するために使用される形式とは異なります。構成データ 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 拡張機能ハンドラーで資格情報を安全に管理する方法に関するページを参照してください。