Terraform部署Azure自动化账户安装SqlServer PS模块报错咨询
报错原因
- 核心匹配错误:你配置中
name字段填写的是xSqlServer,但module_link中引用的nupkg包是官方SqlServer管理模块的安装包,两者属于完全不同的组件,名称不匹配。Azure自动化账户导入PowerShell模块时,会严格校验包内的模块清单文件(.psd1)的名称是否和你声明的模块名一致,不一致就会触发模块结构无效的报错。
xSqlServer是已停止维护的SQL Server DSC资源模块,和你当前引用的官方SQL Server管理模块功能、结构完全不同。 - 其他可能诱因:你引用的SqlServer模块版本和当前Azure自动化账户使用的PowerShell Runtime版本不兼容,或者nupkg包下载不完整、内部缺失必填的模块清单文件。
解决方案
- 修正模块名称与包的对应关系
如果你需要安装的是官方SqlServer PowerShell管理模块,将资源的name字段改为SqlServer即可,修正后的配置如下:
resource "azurerm_automation_module" "mod_sqlserver" { name = "SqlServer" resource_group_name = module.aut_resourcegroup.rg.name automation_account_name = azurerm_automation_account.aut.name module_link { uri = "https://devopsgallerystorage.blob.core.windows.net/packages/sqlserver.21.1.18256.nupkg" } }
如果你确实需要安装xSqlServer DSC模块,替换module_link中的uri为xSqlServer对应的nupkg下载地址即可。
2. 校验版本兼容性
确认你使用的SqlServer模块版本适配自动化账户的PowerShell Runtime版本:21.1.18256版本同时支持PowerShell 5.1和PowerShell 7.x,如果你的自动化账户使用的是更老旧的Runtime,可降级到适配的模块版本。
3. 可选校验包结构
如果修改配置后仍然报错,可手动下载对应nupkg包,解压后检查根目录下是否存在和模块名一致的.psd1文件,缺失该文件会直接触发结构无效报错。
内容的提问来源于stack exchange,提问作者Harry Leboeuf
相关产品推荐
相关产品推荐

