【问题标题】:Azure file share mount script on cloud init云初始化上的 Azure 文件共享装载脚本
【发布时间】:2020-12-10 18:31:48
【问题描述】:

我创建了一个Azure file share 并连接到它,我在azure 控制台中提供了一个脚本,如下所示

sudo mkdir /mnt/Totalvm
if [ ! -d "/etc/smbcredentials" ]; then
sudo mkdir /etc/smbcredentials
fi
if [ ! -f "/etc/smbcredentials/Totalcontainerstorage.cred" ]; then
    sudo bash -c 'echo "username=Totalcontainerstorage" >> /etc/smbcredentials/Totalcontainerstorage.cred'
    sudo bash -c 'echo "password=WPt39LGSSagFVeWbsNJ8HuhTaoPa1aiAZsOR3pBXnrOGjXFWVZj2BqooibIXvqbtjwbn4TLC4j+gJhOAk798pQ==" >> /etc/smbcredentials/Totalcontainerstorage.cred'
fi
sudo chmod 600 /etc/smbcredentials/Totalcontainerstorage.cred

sudo bash -c 'echo "//Totalcontainerstorage.file.core.windows.net/Totalvm /mnt/Totalvm cifs nofail,vers=3.0,credentials=/etc/smbcredentials/Totalcontainerstorage.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
sudo mount -t cifs //Totalcontainerstorage.file.core.windows.net/Totalvm /mnt/Totalvm -o vers=3.0,credentials=/etc/smbcredentials/Totalcontainerstorage.cred,dir_mode=0777,file_mode=0777,serverino

我想在azurecloudinit 中使用这个脚本。我该怎么做,对此的任何帮助将不胜感激。

【问题讨论】:

    标签: azure azure-vm-scale-set cloud-init azure-vm


    【解决方案1】:

    cloud-init 用于虚拟机的创建时间。因此,您可以在通过 CLI 命令创建 VM 时使用它,如下所示:

    az vm create \
        --resource-group myResourceGroupAutomate \
        --name myAutomatedVM \
        --image UbuntuLTS \
        --admin-username azureuser \
        --generate-ssh-keys \
        --custom-data cloud-init.txt
    

    但是这里有个问题。 cloud-init 脚本以“root”用户身份运行。所以你不需要使用sudo 模式。您可以像这样直接使用自定义用户数据格式:

    $ cat mount_script.sh
    #!/bin/bash
    mkdir /mnt/Totalvm
    if [ ! -d "/etc/smbcredentials" ]; then
    mkdir /etc/smbcredentials
    fi
    if [ ! -f "/etc/smbcredentials/Totalcontainerstorage.cred" ]; then
        bash -c 'echo "username=Totalcontainerstorage" >> /etc/smbcredentials/Totalcontainerstorage.cred'
        bash -c 'echo "password=WPt39LGSSagFVeWbsNJ8HuhTaoPa1aiAZsOR3pBXnrOGjXFWVZj2BqooibIXvqbtjwbn4TLC4j+gJhOAk798pQ==" >> /etc/smbcredentials/Totalcontainerstorage.cred'
    fi
    chmod 600 /etc/smbcredentials/Totalcontainerstorage.cred
    
    bash -c 'echo "//Totalcontainerstorage.file.core.windows.net/Totalvm /mnt/Totalvm cifs nofail,vers=3.0,credentials=/etc/smbcredentials/Totalcontainerstorage.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
    mount -t cifs //Totalcontainerstorage.file.core.windows.net/Totalvm /mnt/Totalvm -o vers=3.0,credentials=/etc/smbcredentials/Totalcontainerstorage.cred,dir_mode=0777,file_mode=0777,serverino
    

    看看 cloud-init User-Data Script

    【讨论】:

    • 谢谢一百万,它成功了。如何在cloud-init 中添加我想在此脚本之后运行的其他命令
    • @windowws 如果您的意思是在 cloud-init 中运行其他命令,只需在下面添加命令,它是一个 shell 脚本,因此您可以添加更多命令。
    猜你喜欢
    • 2021-12-08
    • 2021-09-23
    • 1970-01-01
    • 2018-08-09
    • 2020-07-19
    • 2013-02-03
    • 2014-10-31
    • 2015-09-18
    • 2022-06-30
    相关资源
    最近更新 更多