使用 PowerShell 的 Azure DSC 节点配置


什么是 Azure State DSC?

Azure State DSC 就是 Azure VM 的 DSC(所需状态配置),可以从 Azure 自动化帐户进行配置。对于 DSC,有两种方法:推送和拉取配置,但 Azure 默认使用拉取服务器,该服务器不断轮询目标节点并将配置发送到节点。

Azure DSC 本身就是一个很大的主题,在本文中,我们将尝试使用 PowerShell 进行以下配置。

  • 编写/上传节点配置文件。

  • 编译节点配置。

  • 将已编译的节点配置附加到节点。

先决条件

  • Azure 订阅

  • Azure 自动化帐户

  • 配置文件(我们将在本文中创建)。

  • PowerShell AZ 模块。

Azure DSC 位置

您可以在 Azure 自动化帐户中找到 Azure DSC。在 Azure 的搜索栏中,搜索自动化帐户,如果尚未创建,则先创建一个新的自动化帐户,因为它是 Azure DSC 的先决条件。

进入 Azure 自动化帐户后,检查**状态配置 (DSC)**,本文就是关于这个的。

要应用的节点配置

我们必须将以下配置应用于节点。

文件名 - **StartWinRMService.ps1**(确保此文件名与配置名称相同)。

Configuration StartWinRMService{
   Node Localhost{
      Service WinrmStart{
         Name = 'winrm'
         State = 'Running'
         StartupType = 'Automatic'
      }
   }
}

应用节点配置步骤

上传节点配置

要上传我们从 Azure 自动化帐户手动执行的节点配置,我们将为此使用以下命令。

示例

$AutomationAccount = 'DevTestAutomation'
$AutomationAccount = 'DevTestAutomationAccount'
$AutomationRG = 'DevTestAutomation'
$SourceFile = "C:\Temp\StartWinRMService.ps1"

Import-AzAutomationDscConfiguration `
   -SourcePath $SourceFile `
   -AutomationAccountName $AutomationAccount `
   -ResourceGroupName $AutomationRG `
   -Published -Force -Verbose

输出

从 Azure 门户**(DSC -> 配置)**,

编译配置

要在 Azure 节点上运行配置,我们需要编译生成 MOF 文件“**ConfigurationName.LocalHost**”的配置,在本例中为“**StartWinRMService.LocalHost**”。要使用 PowerShell 编译配置,我们可以使用**Start-AzAutomationDscCompilationJob** 命令。

示例

Start-AzAutomationDscCompilationJob `
   -ConfigurationName StartWinRMService `
   -AutomationAccountName $AutomationAccount `
   -ResourceGroupName $AutomationRG -Verbose

输出

从 Azure 门户**(DSC -> 已编译的配置)**,

应用配置

上传并编译节点配置后,我们可以通过注册它们来开始应用单个或多个节点。从 Azure 门户,您可以应用于单个节点,但使用 PowerShell,您可以使用循环并将配置应用于多个节点。

从 Azure 门户**(DSC -> 节点 -> 添加)**,

要使用 PowerShell 注册节点,

$vm = Get-AzVM -Name TestVM2k19
Register-AzAutomationDscNode `
   -AzureVMName $vm.Name `
   -AzureVMLocation $vm.Location `
   -NodeConfigurationName "StartWinRMService.LocalHost" `
   -ConfigurationMode ApplyAndAutocorrect `
   -AutomationAccountName $AutomationAccount `
   -ResourceGroupName $AutomationRG -Verbose

PS - 在上面的命令中,我们使用的是已编译的节点配置名称,并且我们在这里应用了 ApplyAndAutoCorrect。还有其他两种配置模式**(ApplyOnly 和 ApplyAndMonitor)**,您可以应用,您可以在下面找到详细信息。

https://docs.microsoft.com/en-us/powershell/dsc/managing-nodes/metaConfig?view=dsc-1.1

如果您的配置正确,并且您从门户检查您的节点配置时,节点应显示为符合。

更新于:2022年2月18日

500 次查看

开启您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.