Azure DSC 扩展。如何使用档案中的其他项目

问题描述 投票:0回答:1

我正在尝试对 Azure VM 使用 DSC 扩展。我已经使用主 PS 文件创建了 zip 存档,并在主存档中包含了附加存档,以及几个附加文件 应用 DSC 扩展后,我在 DSC 目录中看到我的附加存档

我的问题是,如何获取该路径 C:\Packages\Plugins\Microsoft.Powershell.DSC .83.5\DSCWork\IISInstall.0 以便将来在我的 DSC 脚本中使用?我试图找到任何包含该路径的环境变量?但徒劳。 也许你们知道如何管理它?我很感激任何帮助。谢谢大家

azure powershell dsc
1个回答
0
投票

我已经在 PowerShell 中创建了 DSC 扩展,.ps1 文件,并将 iis Install.ps1 脚本放置在指定的虚拟机上,它成功执行,如下所示:

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.80' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

enter image description here

存储帐户中自动上传的文件:

enter image description here

在您的场景中,要在 DSC 脚本中获取该路径,请使用

$env:TEMP
环境变量。 DSC 扩展在
$env:TEMP
目录中创建一个名称以“DSC”开头的临时文件夹。您可以在此文件夹中保存 DSC 脚本所需的文件。

$DSCWorkPath = Join-Path $env:TEMP "DSC" -ChildPath "Microsoft.Powershell.DSC\2.83.5\DSCWork\IISInstall.0"

如果您对 DSC 脚本中的特定版本号或子目录进行硬编码,则值将来可能会发生变化。

您可以使用以下脚本动态解析 DSC 工作目录路径:

$extensionPath = $env:ProgramData + '\Packages\Plugins\Microsoft.Powershell.DSC\'
$versionFolders = Get-ChildItem -Path $extensionPath | Sort-Object -Property Name -Descending
$latestVersionFolder = $versionFolders[0].Name
$workingDirectory = Join-Path -Path $extensionPath -ChildPath ($latestVersionFolder + '\DSCWork\IISInstall.0')

这样,即使版本号发生变化,您的脚本也会自动使用可用的最新版本。

参考

Azure 所需状态配置概述 - Azure 虚拟机 |微软学习

© www.soinside.com 2019 - 2024. All rights reserved.