【发布时间】:2017-03-18 01:36:27
【问题描述】:
我的模板中有一个 OUTPUTS 部分:
"outputs": {
"MasterFirstIPConfig": {
"type": "string",
"value": "[reference(variables('masterVM'),'2016-09-01').ipConfigurations[0].properties.privateIPAddress]"
}
}
它按预期工作 - 我看到了 VM 的私有 IP。
接下来 - 我想将此 IP 用作 CustomScript 扩展的参数,如下所示:
"settings": {
"fileUris": [
"https://utils.blob.core.windows.net/scripts/swarm_master_provision.sh"
],
"commandToExecute": "[concat('bash swarm_master_provision.sh ', reference(variables('masterVM'),'2016-09-01').ipConfigurations[0].properties.privateIPAddress)]"
},
这里的问题是reference()导致依赖错误:
错误:InvalidTemplate:部署模板验证失败: '在资源上检测到循环依赖: '/subscriptions/0a4f2b9c-***-40b17ef8c3ab/resourceGroups/jm-web-test-var-1/providers/Microsoft.Compute/virtualMachineScaleSets/jm-web-test-var-1-master-vmss'。 请参阅https://aka.ms/arm-template/#resources 了解使用详情。'。
所以问题是 - 如何将私有 IP 传递给脚本?
【问题讨论】:
-
@4c74356b41 再次嗨 :-) 感谢您的评论 - 添加了模板链接。
-
@4c74356b41 没问题)请告诉我何时可以从 Github 中删除模板(即使没有敏感信息 - 它仍然是客户的代码)。
-
那么你想将相同的参数传递给两个扩展还是你想怎么做?
-
@4c74356b41 是的,完全正确。该计划是 - 通过脚本为工人和其他经理运行
joint。但要做到这一点 - 需要获取任何管理器的 IP,将其部署到主 VMSS 并将其作为参数传递给CustomScript。
标签: azure azure-resource-manager