使用 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
如果您的配置正确,并且您从门户检查您的节点配置时,节点应显示为符合。

数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP