望ましい状態にサーバーを構成する
Note
Azure Automation State Configuration は 2027 年 9 月 30 日に廃止されます。その日までに Azure Machine Configuration に切り替えてください。 詳細については、ブログ記事のお知らせを参照してください。 Azure マシンの構成サービスでは、DSC 拡張機能と Azure Automation State Configuration の機能のほか、顧客のフィードバックで最も一般的に要求されている機能が組み合わされています。 Azure マシンの構成には、Arc 対応サーバーによるハイブリッド マシンのサポートも含まれています。
注意事項
Azure Automation DSC for Linux は、2023 年 9 月 30 日に廃止されました。 詳しくは、お知らせをご覧ください。
Azure Automation State Configuration を使うと、サーバーの構成を指定し、時間が経過してもサーバーが指定した状態を保つようにすることができます。
- Azure Automation DSC によって管理する VM をオンボードする
- Azure Automation に構成をアップロードする
- 構成をノードの構成としてコンパイルする
- ノードの構成を管理対象ノードに割り当てる
- 管理対象ノードの準拠状態を確認する
このチュートリアルでは、IIS を VM に確実にインストールする簡単な DSC 構成を使います。
前提条件
- Azure Automation アカウント。 Automation アカウントとその要件の詳細については、「Automation アカウントの認証の概要」を参照してください。
- Windows Server 2008 R2 以降を実行している Azure Resource Manager VM (クラシックではない)。 VM の作成手順については、Azure portal での最初の Windows 仮想マシンの作成に関するページを参照してください。
- Azure PowerShell モジュール バージョン 3.6 以降。 バージョンを確認するには、
Get-Module -ListAvailable Az
を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 - Desired State Configuration (DSC) に関する知識。 DSC については、「Windows PowerShell Desired State Configuration の概要」をご覧ください。
部分構成のサポート
Azure Automation State Configuration では部分構成の使用がサポートされています。 このシナリオでは、DSC は複数の構成を別々に管理するように構成されており、各構成は Azure Automation から取得されます。 ただし、ノードに割り当てることができる構成はAutomation アカウントあたり 1 つだけです。 つまり、1 つのノードに 2 つの構成を使っている場合は、2 つの Automation アカウントが必要です。
プル サービスから部分構成を登録する方法の詳細については、部分構成に関するドキュメントを参照してください。
コードとしての構成を使用し、チームが連携してサーバーを共同で管理する方法の詳細については、「CI/CD パイプラインでの DSC のロールについて」を参照してください。
Azure へのサインイン
Connect-AzAccount コマンドレットを使って Azure サブスクリプションにサインインし、画面上の指示に従います。
Connect-AzAccount
構成を作成して Azure Automation にアップロードする
テキスト エディターで次のように入力し、TestConfig.ps1 としてローカルに保存します。
configuration TestConfig {
Node WebServer {
WindowsFeature IIS {
Ensure = 'Present'
Name = 'Web-Server'
IncludeAllSubFeature = $true
}
}
}
Note
Azure Automation の構成名は、100 文字以下に制限する必要があります。
DSC リソースを提供するモジュールを複数インポートする必要があるより高度なシナリオでは、ご自分の構成にモジュールごとに Import-DscResource
行があることを確認してください。
Import-AzAutomationDscConfiguration コマンドレットを呼び出して、構成を Automation アカウントにアップロードします。
$importAzAutomationDscConfigurationSplat = @{
SourcePath = 'C:\DscConfigs\TestConfig.ps1'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Published = $true
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat
構成をノードの構成としてコンパイルする
ノードに DSC 構成を割り当てるには、先に DSC 構成をノードの構成としてコンパイルする必要があります。 「DSC 構成」を参照してください。
Start-AzAutomationDscCompilationJob コマンドレットを呼び出して、TestConfig
構成を、Automation アカウントの TestConfig.WebServer
というノード構成に コンパイルします。
$startAzAutomationDscCompilationJobSplat = @{
ConfigurationName = 'TestConfig'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
}
Start-AzAutomationDscCompilationJob @startAzAutomationDscCompilationJobSplat
State Configuration によって管理される VM を登録する
Azure Automation State Configuration を使用すると、Azure VM (クラシックと Resource Manager の両方)、オンプレミスの VM、Linux マシン、AWS VM、オンプレミスの物理マシンを管理できます。 この記事では、Azure Resource Manager VM を登録する方法のみを説明します。 他の種類のマシンの登録について詳しくは、「Azure Automation State Configuration による管理のためのマシンのオンボード」をご覧ください。
Register-AzAutomationDscNode コマンドレットを呼び出して、VM を管理対象ノードとして Azure Automation State Configuration に登録します。
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat
構成モードの設定を指定する
Register-AzAutomationDscNode コマンドレットを使用して、VM を管理対象ノードとして登録し、構成のプロパティを指定します。 たとえば、ConfigurationMode
プロパティの値として ApplyOnly
を指定することにより、マシンの状態を 1 回だけ適用するように指定できます。 State Configuration は初期チェック後に構成の適用を試みません。
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationMode = 'ApplyOnly'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
You can also specify how often DSC checks the configuration state by using the
`ConfigurationModeFrequencyMins` property. For more information about DSC configuration settings,
see [Configuring the Local Configuration Manager][05].
```powershell
# Run a DSC check every 60 minutes
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationModeFrequencyMins = 60
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
## Assign a node configuration to a managed node
Now we can assign the compiled node configuration to the VM we want to configure.
```powershell
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Assign the node configuration to the DSC node
$setAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeConfigurationName = 'TestConfig.WebServer'
NodeId = $node.Id
}
Set-AzAutomationDscNode @setAzAutomationDscNodeSplat
これにより、TestConfig.WebServer
という名前のノード構成が、登録済みの DSC ノード DscVm
に割り当てられます。
既定では、DSC ノードはノード構成に準拠していることを 30 分ごとにチェックされます。 準拠チェック間隔を変更する方法については、「ローカル構成マネージャーの構成」をご覧ください。
管理対象ノードの準拠状態を確認する
Get-AzAutomationDscNodeReport コマンドレットを使用して、管理対象ノードの準拠状態に関するレポートを取得できます。
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Get an array of status reports for the DSC node
$getAzAutomationDscNodeReportSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeId = $node.Id
}
$reports = Get-AzAutomationDscNodeReport @getAzAutomationDscNodeReportSplat
# Display the most recent report
$reports[0]
次のステップ
- 使用を開始するには、「Azure Automation State Configuration の使用を開始する」をご覧ください。
- ノードを有効にする方法については、Azure Automation State Configuration を有効にする方法に関するページを参照してください。
- DSC 構成をコンパイルしてターゲット ノードに割り当てる方法の詳細については、「Azure Automation State Configuration で DSC 構成をコンパイルする」をご覧ください。
- 継続的なデプロイ パイプラインで Azure Automation State Configuration を使う例については、「Chocolatey を使用して継続的配置を設定する」を参照してください。
- 料金情報については、Azure Automation State Configuration の価格に関するページをご覧ください。
- PowerShell コマンドレットのリファレンスについては、「Az.Automation」をご覧ください。