望ましい状態にサーバーを構成する
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 アカウントにアップロードします。
Import-AzAutomationDscConfiguration -SourcePath 'C:\DscConfigs\TestConfig.ps1' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Published
構成をノードの構成としてコンパイルする
ノードに DSC 構成を割り当てるには、先に DSC 構成をノードの構成としてコンパイルする必要があります。 「DSC 構成」を参照してください。
Start-AzAutomationDscCompilationJob コマンドレットを呼び出して、TestConfig
構成を、Automation アカウントの TestConfig.WebServer
というノード構成に コンパイルします。
Start-AzAutomationDscCompilationJob -ConfigurationName 'TestConfig' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount'
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 に登録します。
Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm'
構成モードの設定を指定する
Register-AzAutomationDscNode コマンドレットを使用して、VM を管理対象ノードとして登録し、構成のプロパティを指定します。 たとえば、ConfigurationMode
プロパティの値として ApplyOnly
を指定することにより、マシンの状態を 1 回だけ適用するように指定できます。 State Configuration は初期チェック後に構成の適用を試みません。
Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationMode 'ApplyOnly'
また、ConfigurationModeFrequencyMins
プロパティを使うことで、DSC が構成の状態をチェックする頻度も指定できます。 DSC 構成の設定について詳しくは、「ローカル構成マネージャーの構成」をご覧ください。
# Run a DSC check every 60 minutes
Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationModeFrequencyMins 60
ノードの構成を管理対象ノードに割り当てる
コンパイル済みのノード構成を構成対象の VM 割り当てることができる状態になりました。
# Get the ID of the DSC node
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'
# Assign the node configuration to the DSC node
Set-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeConfigurationName 'TestConfig.WebServer' -NodeId $node.Id
これにより、TestConfig.WebServer
という名前のノード構成が、登録済みの DSC ノード DscVm
に割り当てられます。 既定では、DSC ノードはノード構成に準拠していることを 30 分ごとにチェックされます。 準拠チェック間隔を変更する方法については、「ローカル構成マネージャーの構成」をご覧ください。
管理対象ノードの準拠状態を確認する
Get-AzAutomationDscNodeReport コマンドレットを使用して、管理対象ノードの準拠状態に関するレポートを取得できます。
# Get the ID of the DSC node
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'
# Get an array of status reports for the DSC node
$reports = Get-AzAutomationDscNodeReport -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeId $node.Id
# 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」をご覧ください。