使用单个DSC配置初始化可变数量的磁盘
问题描述:
是否可以使用单个DSC配置将所有连接的磁盘初始化为多个VM?例如,如果VM1连接了1个磁盘,DSC配置会将该磁盘初始化为磁盘F,则VM2将有2个磁盘,因此完全相同的DSC配置会攻击F和G磁盘。此想法是将该配置文件重复用于多个VM可变数量的磁盘而不会出错。使用单个DSC配置初始化可变数量的磁盘
答
这应该工作,如果你在本地编译。由于该语言允许强制建立已宣布的状态。您可以查询磁盘并设置状态。
在我的示例中分配驱动器号是相当粗糙的。你也应该改进它。
它使用xStorage which can be found on the PowerShell Gallery
Configuration disks
{
$DriveLetters = 'DEFGHIJKLMNOPQSRT'
Import-DscResource -ModuleName xStorage
Node localhost
{
Get-Disk | Where-Object {$_.NumberOfPartitions -lt 1} | Foreach-Object {
Write-Verbose "disk($($_.Number))" -Verbose
xDisk "disk($($_.Number))"
{
DriveLetter = $DriveLetters[$_.Number]
DiskNumber = $_.Number
FSFormat = 'NTFS'
}
}
}
}
+0
失败,出现不同错误: '''DSC扩展接收到错误的输入:处理配置'磁盘'时发生编译错误。请检查错误流中报告的 错误,并适当修改您的配置代码。索引操作失败;数组索引评估为 null。调用带有“2”参数的“InvokeWithContext”异常:“索引操作失败;数组索引评估为null”。索引 操作失败;数组索引评估为null.''' – Max
你编译目标节点上的配置? – TravisEz13
是的,我正在使用Azure DSC扩展。 – Max