运行 来自 git 存储库的 Azure VM 扩展 Powershell 脚本
Run Azure VM Extension Powershell script from git repository
我正在尝试使用 ARM 模板部署 VM 和 运行 扩展 powershell 脚本。
下面的脚本负责 运行 VM 的扩展。
部分可以看出:
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File arm-modules/../../install.ps1 '
powershell 将从该位置执行脚本文件。我想将 .ps1 文件保存在 git 存储库中,并将 link 传递给文件而不是本地文件夹。
像 "commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -Uri https://raw.githubusercontent.com/.../install.ps1
我怎样才能做到这一点?
"resources": [
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('virtualMachineName'), '/' ,parameters('virtualMachineName'), 'installGW')]",
"apiVersion": "2019-07-01",
"location": "[parameters('location')]",
"tags": {
"vmname": "[parameters('virtualMachineName')]"
},
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"[parameters('scriptURL')]"
]
},
"protectedSettings": {
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File arm-modules/.../.../install.ps1 ', if(equals(parameters('existingDataFactoryVersion'), 'V2'), listAuthKeys(parameters('irId'), '2017-09-01-preview').authKey1, listAuthKeys(parameters('irId'), '2015-10-01').key1))]"
}
}
}
]
正确的方法是将 URL https://raw.githubusercontent.com/.../install.ps1
(URL 必须可供 Azure ARM 访问)设置为 scriptURL
参数("[parameters('scriptURL')]"
在 "fileUris"
设置中)已经在您的模板中。
CustomScriptExtension 会将所有文件 fileUris
下载到您的 VM 的扩展文件夹中,因此您可以使用以下命令:
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File install.ps1 '
注:
您可以在 VM 中找到 CustomScriptExtension 日志和下载的文件:
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
C:\Packages\Plugins
我正在尝试使用 ARM 模板部署 VM 和 运行 扩展 powershell 脚本。 下面的脚本负责 运行 VM 的扩展。 部分可以看出:
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File arm-modules/../../install.ps1 '
powershell 将从该位置执行脚本文件。我想将 .ps1 文件保存在 git 存储库中,并将 link 传递给文件而不是本地文件夹。
像 "commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -Uri https://raw.githubusercontent.com/.../install.ps1
我怎样才能做到这一点?
"resources": [
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('virtualMachineName'), '/' ,parameters('virtualMachineName'), 'installGW')]",
"apiVersion": "2019-07-01",
"location": "[parameters('location')]",
"tags": {
"vmname": "[parameters('virtualMachineName')]"
},
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"[parameters('scriptURL')]"
]
},
"protectedSettings": {
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File arm-modules/.../.../install.ps1 ', if(equals(parameters('existingDataFactoryVersion'), 'V2'), listAuthKeys(parameters('irId'), '2017-09-01-preview').authKey1, listAuthKeys(parameters('irId'), '2015-10-01').key1))]"
}
}
}
]
正确的方法是将 URL https://raw.githubusercontent.com/.../install.ps1
(URL 必须可供 Azure ARM 访问)设置为 scriptURL
参数("[parameters('scriptURL')]"
在 "fileUris"
设置中)已经在您的模板中。
CustomScriptExtension 会将所有文件 fileUris
下载到您的 VM 的扩展文件夹中,因此您可以使用以下命令:
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File install.ps1 '
注:
您可以在 VM 中找到 CustomScriptExtension 日志和下载的文件:
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
C:\Packages\Plugins