Azure ARM - 将存储帐户文件共享装载到 linux VM

Azure ARM - mount StorageAccount FileShare to a linux VM

我准备了一个 ARM 模板,模板创建列出的 azure 资源:linuxVM 部署、存储部署、此存储帐户中的文件共享。

A​​RM 工作正常,但我想添加一件事,将文件共享安装到 linux VM(使用文件共享 blade 中的脚本,Microsoft 提议的脚本)。

我想使用自定义脚本扩展,然后使用“commandToExecute”选项粘贴内联 linux 脚本(这个用于文件共享安装)。

我的问题是:如何检索文件共享的密码,然后将其作为参数传递给内联脚本。是否可以?是否可以将文件共享安装脚本粘贴为 ARM 模板中的内联脚本?也许还有其他方法可以完成我的任务?我知道我可以将脚本存储在存储帐户中,并在 ARM 模板中将“blob SAS URL”放入自定义扩展 ARM 区域,但仍然是如何检索文件共享密码的问题,下面是脚本用于文件共享挂载。

    sudo mkdir /mnt/wsustorageaccount

    if [ ! -d "/etc/smbcredentials" ]; then
    sudo mkdir /etc/smbcredentials
    fi

    if [ ! -f "/etc/smbcredentials/StorageAccountName.cred" ]; then
        sudo bash -c 'echo "username=xxxxx" >> /etc/smbcredentials/StorageAccountName.cred'
        sudo bash -c 'echo "password=xxxxxxx" >> /etc/smbcredentials/StorageAccountName.cred'
    fi
    sudo chmod 600 /etc/smbcredentials/StorageAccountName.cred
    
    sudo bash -c 'echo "//StorageAccount.file.core.windows.net/test /mnt/StorageAccount cifs nofail,vers=3.0,credentials=/etc/smbcredentials/StorageAccountName.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
    sudo mount -t cifs //StorageAccountName.file.core.windows.net/test /mnt/StorageAccountName -o vers=3.0,credentials=/etc/smbcredentials/StorageAccountName.cred,dir_mode=0777,file_mode=0777,serverino

您可以使用 this 快速入门示例:

listKeys(variables('storageAccountId'), '2019-04-01').keys[0].value