如何在 Azure VM 上同时运行 2 个 VM 自定义脚本扩展

2023-12-10

我已使用 ARM 模板创建了一个 Azure VM,并希望在部署 VM 后在同一 VM 上运行 2 个 VM 脚本扩展。

使用ARM模板如何实现?

 {
        "apiVersion": "[variables('resourceDeploymentApiVersion')]",
        "name": "[variables('vmTemplateName')]",
        "type": "Microsoft.Resources/deployments",
        "resourceGroup": "[parameters('vmGroupName')]",
        "properties": {
            "mode": "Incremental",
            "templateLink": {
                "uri": "[variables('vmTemplateURL')]"
            },
            "parameters": {},
        }
     }
 {
        "type": "Microsoft.Compute/virtualMachines/extensions",
        "name": "[concat(variables('vmName'),'/install-script')]",
        "apiVersion": "[variables('computeApiVersion')]",
        "location": "[variables('location')]",
        "dependsOn": [
            "[resourceId('Microsoft.Resources/deployments', variables('vmTemplateName'))]"
        ],
        "properties": {
            "publisher": "Microsoft.Azure.Extensions",
            "type": "CustomScript",
            "typeHandlerVersion": "2.0",
            "autoUpgradeMinorVersion": true,
            "forceUpdateTag": "v.1.0",
            "settings": {
               "fileUris": ["[variables('installScript')]"]
            },
            "protectedSettings":{
                "commandToExecute": "[concat('bash config.sh', ' ', parameters('key'))]"
            }
        }
    },



    {
            "type": "Microsoft.Compute/virtualMachines/extensions",
            "name": "[concat(variables('vmName'),'/install-script')]",
            "apiVersion": "[variables('computeApiVersion')]",
            "location": "[variables('location')]",
            "dependsOn": [
                "[resourceId('Microsoft.Resources/deployments', variables('vmTemplateName'))]"
            ],
            "properties": {
                "publisher": "Microsoft.Azure.Extensions",
                "type": "CustomScript",
                "typeHandlerVersion": "2.0",
                "autoUpgradeMinorVersion": true,
                "forceUpdateTag": "v.1.1",
                "settings": {
                   "fileUris": ["[variables('installScript1')]"]
                },
                "protectedSettings":{
                    "commandToExecute": "[concat('bash config1.sh', ' ', parameters('key1'))]"
                }
            }
        },

Update:-

目前我正在运行 config.sh 和 config1.sh 在相同的扩展中,如下所示。但它正在一个接一个地运行。我希望使用扩展同时启动 config.sh 和 config1.sh。

{
                "type": "Microsoft.Compute/virtualMachines/extensions",
                "name": "[concat(variables('vmName'),'/install-script')]",
                "apiVersion": "[variables('computeApiVersion')]",
                "location": "[variables('location')]",
                "dependsOn": [
                    "[resourceId('Microsoft.Resources/deployments', variables('vmTemplateName'))]"
                ],
                "properties": {
                    "publisher": "Microsoft.Azure.Extensions",
                    "type": "CustomScript",
                    "typeHandlerVersion": "2.0",
                    "autoUpgradeMinorVersion": true,
                    "forceUpdateTag": "v.1.1",
                    "settings": {
                       "fileUris": ["[variables('installScript1')]"]
                    },
                    "protectedSettings":{
                        "commandToExecute": "[concat('bash config1.sh', ' ', parameters('key1'), ' ', '&&', ' ', 'bash config.sh', ' ', parameters('key'))]"
                    }
                }
            },

实际上,如果使用 powershell cmdlet,自定义扩展无法同时执行。但可以在模板中设置并一次性执行。

当我看到你的模板时,你将两个扩展名设置为相同的名称。您可以更改其中之一。然后向其中之一添加一个dependsOn,如下所示:

"dependsOn":[  
     "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),'/', 'install-script')]"
  ],

你可以看看这个link。这和你很相似。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Azure VM 上同时运行 2 个 VM 自定义脚本扩展 的相关文章

随机推荐

  • 我如何通知用户有关 django 中的 webhook

    您好 我在 django 中遇到了网络挂钩问题 我需要一种方法来通知用户他 她已成功付款 通过向我的处理器添加 URL 来向我的网络发送付款成功请求 我会收到有关成功网络挂钩的通知钩子如何向用户显示它以通知其是否成功 我的代码是 这是用户将
  • 使用自定义语法显示 Haskell 元组列表

    我有一个元组列表 1 a yes 2 b no 3 c ok 我如何以以下形式显示此列表作为输出 1 a yes 2 b no 3 c ok 看起来您想要进行的转换是去掉引号字符 如果是 则过滤调用结果show你的数据就足够了 gt let
  • 响应式 Durandal 对话框

    我在新应用程序中使用 Durandal 但 Durandal 的对话框窗口存在问题 我使用它从用户那里获取一些数据 当我手动设置窗口宽度时 默认情况下 Durandal 从 JavaScript 设置窗口位置 如果我想要窗口宽度为 600p
  • 如何对数据库模式进行版本控制? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 您如何准备 SQL 增量 您是否手动将每个模式更改 SQL 保存到增量文件夹中 或者您是否有某种自动比较过程 我对版本控制数据库模式以及源代码的约定感兴趣 也许是一个区分模式的预提交挂钩
  • 从字符串中提取所有数字

    假设我有一个字符串 例如123ad456 我想创建一种将数字组分成一个列表的方法 这样输出将类似于123 456 我试过做return Regex Match str d Value 但只输出第一次出现的数字 因此输出将是123 我也知道我
  • POI Excel:获取样式名称

    我想读取应用于 xlsx 文档中单元格的样式的名称 我已经提取了该文件 在 xl styles xml 中我可以找到样式名称
  • 实体框架多对多关系

    好吧 我正在尝试弄清楚如何正确设置我的数据库 我有两节课 public class Event public int EventId get set public string EventName get set and public cl
  • Java 原始类型和泛型交互

    如果我有一个 Stack 类 class Stack
  • 如何使用另一个类中的 Tcpclient 将数据发送到所有已连接的套接字连接

    Closed 这个问题需要细节或清晰度 目前不接受答案 public void send string msg a2 Encoding ASCII GetBytes msg networkStream clientSocket GetStr
  • R 将特定行和列乘以常数

    我有以下数据 type lt c 1 4 year1 lt c 1 4 year2 lt c 1 4 year3 lt c 1 4 data lt data frame type year1 year2 year3 我想将年份列中的底部两行
  • 的 Html 帮助器

    有没有HTMLHelper用于文件上传 具体来说 我正在寻找替代品
  • 如何通过 R 在 Outlook 正文中显示 Excel 工作表

    我可以通过 RDCOMClient 包将 Excel 文件附加到 Outlook 中 但是如何通过R在邮件正文中显示excel工作表内容 假设工作表中包含一个表格和一个图形 library RDCOMClient init com api
  • 为什么像 3.14 这样的浮点值在 MSVC 中默认被视为 double ?

    为什么我需要输入 3 14f 而不是 3 14 来禁用所有这些警告 这有一个连贯的理由吗 这就是 C 和 C 标准所决定的 浮点文字的类型为 double 如果您需要它们是浮点型 则可以在它们后面加上后缀f 似乎没有任何具体说明原因 但我猜
  • Silverlight 是否缓存 Web 服务调用?

    这是问题所在 我的 Silverlight 应用程序正在使用 WebClient 调用名为 getCampaigns 的 HTTP Web 服务 该服务返回 Campaign 对象的 JSON 数据数组 然后 用户可以与请求的对象进行交互
  • 如何解决“您的应用似乎未启用适用于 Android 的 Places API”

    这个错误已经困扰我一天多了 我已经彻底搜索过 但没有一个答案为我提供解决方案 我已经正确设置了 API 密钥 并提供了应用程序限制 提供了包名称和 SHA1 密钥 这是代码 清单文件
  • 如何使用一个或多个 StructType 创建架构 (StructType)?

    我正在尝试创建一个StructType在另一个里面StructType 但它只允许添加一个StructField 我找不到任何添加方法StructType to it 如何创建StructType下面的字符串表示的模式 struct
  • 如何使用 Cargo maven 插件远程部署 WAR 到 JBoss 5.1.0.GA?

    我正在尝试使用 Cargo maven 插件将 WAR 文件远程部署到 JBoss 5 0 1 GA 但似乎不能 我发现了类似的线程 但它们最终都没有帮助我解决我的问题 我遵循这些指示 一些看起来很重要的点是 从 CARGO 1 0 3 开
  • 如何使用powershell按年龄对数据进行排序

    尝试在 powershell 中按年龄对 txt 文件进行排序 数据如下所示 史密斯 约翰 65沃克 卢克 25马诺 吉尔 88 岁 试图让它看起来像这样 马诺 吉尔 88史密斯 约翰 65沃克 卢克 25 我尝试过 Format Tabl
  • 更改 Plotly 动画中的“框架”标签

    TLDR 我想用三个字母缩写而不是每个月的数字来标记框架滑块 我创建了一个条形图 显示 40 年来每个月的平均积雪深度 我从 NOAA 提取数据 然后使用 lubridate 按年份和月份进行分组 这是代码 snow depth lt go
  • 如何在 Azure VM 上同时运行 2 个 VM 自定义脚本扩展

    我已使用 ARM 模板创建了一个 Azure VM 并希望在部署 VM 后在同一 VM 上运行 2 个 VM 脚本扩展 使用ARM模板如何实现 apiVersion variables resourceDeploymentApiVersio