共用方式為


將機器設定為預期狀態

Azure Automation State Configuration 可讓您指定伺服器的組態,並且確定這些伺服器處於指定狀態一段時間。

  • 上架 VM 讓 Azure 自動化 DSC 管理
  • 將設定上傳至 Azure 自動化
  • 將設定編譯成節點設定
  • 將節點設定指派給受控節點
  • 檢查受控節點的合規性狀態

針對此教學課程,我們會使用簡單的 DSC 設定,以確保在 VM 上安裝 IIS。

必要條件

部分設定的支援

Azure 自動化狀態設定支援使用部分設定。 在此案例中,DSC 會設定為獨立管理多項設定,並從 Azure 自動化擷取各項設定。 不過,每個自動化帳戶只能指派一項設定給一個節點。 這表示如果在節點上使用兩項設定,您將需要兩個自動化帳戶。

如需如何從提取服務註冊部分設定的詳細資料,請參閱部分設定的文件。

如需小組如何將設定作為程式碼使用,以共同管理伺服器的詳細資訊,請參閱了解 DSC 在 CI/CD 管線中的角色

登入 Azure

使用 Connect-AzAccount Cmdlet 登入 Azure 訂用帳戶,並遵循畫面上的指示操作。

Connect-AzAccount

建立設定並將其上傳至 Azure 自動化

在文字編輯器中輸入下列項目,並將其於本機儲存為 TestConfig.ps1

configuration TestConfig {
   Node WebServer {
      WindowsFeature IIS {
         Ensure               = 'Present'
         Name                 = 'Web-Server'
         IncludeAllSubFeature = $true
      }
   }
}

注意

Azure 自動化中的設定名稱必須限制為不超過 100 個字元。

在需要匯入多個模組以提供 DSC 資源的更進階案例中,請確定每個模組在設定中都有唯一的 Import-DscResource 行。

呼叫 Import-AzAutomationDscConfiguration Cmdlet,以將設定上傳至自動化帳戶中。

 Import-AzAutomationDscConfiguration -SourcePath 'C:\DscConfigs\TestConfig.ps1' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Published

將設定編譯成節點設定

DSC 設定必須編譯成節點設定,才可以指派至節點。 請參閱 DSC 設定

呼叫 Start-AzAutomationDscCompilationJob Cmdlet,以將 TestConfig 設定編譯成自動化帳戶中名為 TestConfig.WebServer 的節點設定。

Start-AzAutomationDscCompilationJob -ConfigurationName 'TestConfig' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount'

註冊 VM 以供 State Configuration 管理

您可以使用 Azure Automation State Configuration 來管理 Azure VM (傳統和 Resource Manager)、內部部署 VM、Linux 機器、AWS VM 和內部部署實體機器。 在本主題中,我們將討論如何只註冊 Azure Resource Manager VM。 如需將其他類型的機器註冊的詳細資訊,請參閱 將機器上架以供 Azure Automation State Configuration 管理

呼叫 Register-AzAutomationDscNode Cmdlet,以使用 Azure 自動化狀態設定作為受控節點來註冊 VM。

Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm'

指定設定模式設定

使用 Register-AzAutomationDscNode Cmdlet,以將 VM 註冊為受控節點,並指定設定屬性。 例如,您可藉由指定 ApplyOnly 作為 ConfigurationMode 屬性的值,以指定讓電腦的狀態只套用一次。 狀態設定不會在初始檢查之後嘗試套用設定。

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 Cmdlet,以取得受控節點合規性狀態的報告。

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

下一步