次の方法で共有


望ましい状態にサーバーを構成する

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 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]

次のステップ