gpt4 book ai didi

azure - 使用 ARM 模板在 Azure VM 上安装应用程序或软件

转载 作者:行者123 更新时间:2023-12-03 00:55:19 25 4
gpt4 key购买 nike

我们正在尝试使用 ARM 模板在 Azure VM 上安装卡巴斯基网络代理

此外,我们需要使用 SAS token 从虚拟机存储中获取 .exe.msi 文件。我正在寻找要操作的模板示例,但无法找到一个可以完成任务的示例。你知道这样是否可行吗?

如果是这样,您能分享一个执行类似任务的模板吗?另外,请解释一下如何修改本案例的模板。

提前致谢

最佳答案

• 是的,您可以使用 Azure VM 中 ARM 模板中的自定义脚本扩展成功安装应用程序,如下所示。请检查我为此目的部署的 ARM 模板文件。此外,我在部署过程中使用 SAS token 在 Azure VM 中下载应用程序包,并使用 powershell 脚本调用相关应用程序的静默安装。

ARM 模板:-

我正在使用默认的快速入门模板通过 ARM 模板部署 Azure VM,如以下链接所示:- https://learn.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-template?toc=/azure/azure-resource-manager/templates/toc.json

在此模板中,我在上述 ARM 模板的“资源”部分中添加了以下自定义脚本扩展安装内容。请检查 ARM 模板代码的格式是否正确,即逗号、大括号、方括号等。另外,请确保打开 HTTPS 端口 443 入站,如下所示:-

"securityRules": [
{
"name": "default-allow-3389",
"properties": {
"priority": 1000,
"access": "Allow",
"direction": "Inbound",
"destinationPortRange": "3389",
"protocol": "Tcp",
"sourcePortRange": "*",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*"
}
},
{
"name": "AllowHTTPSInBound",
"properties": {
"priority": 1010,
"access": "Allow",
"direction": "Inbound",
"destinationPortRange": "443",
"protocol": "Tcp",
"sourcePortRange": "*",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*"
}
}
]

自定义脚本虚拟机扩展:-

 {
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2021-04-01",
"name": "[concat(parameters('vmName'),'/', 'InstallWebServer')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/',parameters('vmName'))]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
"storageAccountName": "techtrix",
"storageAccountKey": "EN6iUzOfVe8Ht0xvyxnqK/iXEGTEunznASsumuz0FR4SCvc2mFFHUJfbMy1/GSK7gXk0MB38MMo7+AStoKxC/w==",
"fileUris": [
"https://techtrix.blob.core.windows.net/executable/Testdemo2.ps1"
],
"commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File Testdemo2.ps1"
}
}
}

此外,请注意,您需要预配一个存储帐户容器来存储 powershell 脚本和其中的应用程序包,以便您可以使用该存储帐户的 key 、其名称和 powershell 脚本的 blob URI 来代替与上面的要求相同。另外,请在‘commandToExecute’部分更改要通过扩展执行的powershell脚本的名称。

完成上述操作后,请确保成功执行本地安装的应用程序包的静默安装命令,以便可以在 powershell 脚本中对其进行相应修改。我在这里使用安装的“7-zip”应用程序进行演示。请找到我的 powershell 脚本,如下所示。确保提前上传此脚本和应用程序包,并将容器的访问级别设置为“匿名和公共(public)访问”:-

 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module -Name Az.Storage -AllowClobber -Force
Import-Module -Name Az.Storage -Force
$StorageAccountName = "techtrix"
$ContainerName = "executable"
$Blob1Name = "7z2107-x64.exe"
$TargetFolderPath = "C:\"
$context = New-AzStorageContext -StorageAccountName $StorageAccountName -SASToken "sp=r&st=2022-02-10T08:40:34Z&se=2022-02-10T16:40:34Z&spr=https&sv=2020-08-04&sr=b&sig=DRDulljKTJiRbVPAXAJkTHi8QlnlbjPpVR3aueEf9xU%3D"
Get-AzStorageBlobContent -Blob $Blob1Name -Container $ContainerName -Context $context -Destination $TargetFolderPath
$arg="/S"
Start-Process -FilePath "C:\7z2107-x64.exe" -ArgumentList $arg ’

然后使用“adminUsername”、“adminPassword”和“location”中所需的值编辑参数文件,并将其保存在存储模板文件的同一位置。现在,在本地以提升的权限从 powershell 控制台执行以下命令,即通过浏览到 powershell 本身中存储这些 ARM 模板文件的路径来执行该路径。

 az login
az deployment group create -n <name of the deployment> -g <name of the resource group> --template-file "azuredeployVM.json" --parameters "azuredeployVM.parameters.json" ’

成功部署后,您将能够看到在虚拟机创建过程中安装的应用程序,如下所示:-

Application installation path Application installation Deployment status Extension status

这样,您就可以通过具有自定义脚本扩展名的 ARM 模板安装“.exe”或“.msi”。

关于azure - 使用 ARM 模板在 Azure VM 上安装应用程序或软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71046833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com