首页 > 解决方案 > Azure ARM - 将 StorageAccount FileShare 挂载到 linux VM

问题描述

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

ARM 工作正常,但我想添加一件事,将文件共享挂载到 linux VM(使用文件共享刀片中的脚本,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

标签: azure-resource-managerazure-automation

解决方案


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

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

推荐阅读