我需要通过terraform VM扩展-自定义脚本在Azure Windows VM中安装Az.存储模块。每隔一个命令执行一次,但模块安装命令不执行。资源“azurerm_virtual_machine_extension”“VMextn 202”{
name = "avmextn1"
virtual_machine_id = azurerm_windows_virtual_machine.vm.id
publisher = "Microsoft.Compute"
type = "CustomScriptExtension"
type_handler_version = "1.9"
auto_upgrade_minor_version = true
settings = <<SETTINGS
{
"fileUris": ["https://${azurerm_storage_account.Storage.name}.blob.core.windows.net/${azurerm_storage_container.Scripts.name}/${azurerm_storage_blob.BlobVMExt.name}"],
"commandToExecute": "powershell -ExecutionPolicy Unrestricted -file VMExt.ps1"
}
SETTINGS
}
VMExt.ps1的内容:
Get-Service | Out-File "C:\Users\Simulator-User\service.txt" -Force
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module -Name Az.Storage -Force -AllowClobber -SkipPublisherCheck
Install-Module -Name Az.Storage -Force -AllowClobber -SkipPublisherCheck
此处,第一个cmd执行(在VM中创建service.txt),第二个cmd执行(在VM中安装程序包Provider),但未执行与模块安装相关的下一个cmd(无法从Get-InstalledModules中找到模块-模块未安装在VM中)。
在Azure门户中手动创建VM扩展-自定义脚本时也会发生同样的事情。
任何建议都会对我有帮助。
1条答案
按热度按时间jq6vz3qz1#
在我的例子中,问题是模块安装在一个作用域中,因此当RDP到VM时我看不到它。
现在我显式设置scope
则在I RDP和Get-InstalledModules时模块可用