如何将storageaccount密钥传递给Linux VM?

时间:2017-07-11 21:21:25

标签: python linux azure azure-virtual-machine azure-resource-manager

我有一个创建VM和一些存储的ARM模板,然后在我的VSTS发布过程中,我运行一个存储在源控件中的安装脚本,该脚本在Linux VM上安装Python服务;所有这些都来自构建工件。这一切都很好,但服务需要读取作为ARM模板的一部分创建的存储帐户的队列。

我知道模板中的ListKeys功能,但不确定如何使用它以某种方式将该信息传递给Linux VM,以便我可以更新Python的脚本配置文件。

干杯。

1 个答案:

答案 0 :(得分:1)

如果我的理解是正确的,您可以使用Azure Custom Script Extension来满足您的需求。您可以编写脚本来接收存储帐户名和存储帐户密钥。您可以编写如下脚本:

#!/bin/sh
accountname=$1
accountkey=$2
...............

您可以使用以下脚本获取存储密钥并传递给您的脚本。

 {
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "name": "[concat(variables('vmName'),'/', variables('extensionName'))]",
      "apiVersion": "[variables('apiVersion')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
      ],
      "properties": {
        "publisher": "Microsoft.Azure.Extensions",
        "type": "CustomScript",
        "typeHandlerVersion": "2.0",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "fileUris": "[split(parameters('fileUris'), ' ')]",
           "commandToExecute": "[concat('sh ', parameters('scriptName'), ' ' ,parameters('StorageAccountName''), ' ', listKeys(concat('Microsoft.Storage/storageAccounts/', variables('StorageAccountName')), 
        },

      }
相关问题