LinuxのサーバからAzure FilesをSMBマウントする方法
概要
LinuxサーバからAzure上のストレージアカウントに作成したAzure Filesに
SMBマウントする方法です。
意外と簡単にできたんですが、マウントするサーバにAzure CLIをインストールする必要があり、諸事情で実作業では使えなかったので備忘録。。。
関連ページはこちら↓
SMB Azure ファイル共有を Linux でマウントする
Linux に Azure CLI をインストールする
※今回はAzure上のRHEL8.1のサーバで検証しました。
手順
①Azure Filesの作成
Azure Portalからストレージアカウント上にAzure Filesを作成します。
②Azure CLIのインストール
Azure FilesをマウントするサーバにAzure CLIをインストールします。
※LinuxサーバからのマウントはAzure CLIのインストールが必須です。
対象サーバにログインする
-
Microsoft リポジトリ キーをインポートする
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
-
azure-cli リポジトリ情報を作成する
echo -e "[azure-cli] name=Azure CLI baseurl=https://packages.microsoft.com/yumrepos/azure-cli enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/azure-cli.repo
-
Azure CLIのインストールを実行する
sudo dnf install azure-cli
-
①のAzure Filesが存在しているサブスクリプションにログインする
az login # 認証画面が開かれるため、必要な情報を入力して対象のサブスクリプションにログインしてください。
-
対象のサブスクリプションが表示されることを確認
az account list # 異なるサブスクリプションが表示されている場合は、以下のコマンドでサブスクリプションを変更してください。 az account set --subscription <"対象のサブスクリプションID">
③Azure Filesのマウント
①で作成したAzure Filesに②のサーバからマウントします。
-
対象のストレージアカウントへ接続確認(エラーが出力されないことを確認します)
resourceGroupName="<接続するAzure Files(ストレージアカウント)が存在するリソースグループ名>" storageAccountName="<接続するAzure Filesが存在するストレージアカウント名>" fileShareName="<接続するAzure Files名>" httpEndpoint=$(az storage account show --resource-group $resourceGroupName --name $storageAccountName --query "primaryEndpoints.file" | tr -d '"') smbPath=$(echo $httpEndpoint | cut -c7-$(expr length $httpEndpoint)) fileHost=$(echo $smbPath | tr -d "/") nc -zvw3 $fileHost 445
-
サーバ上にマウントポイントを作成する
mntRoot="<Azure Filesをマウントするフォルダ>" mntPath="$mntRoot/$storageAccountName/$fileShareName" sudo mkdir -p $mntPath # mntpathで指定されているパスにフォルダが作成されていることを確認する
-
接続先のストレージアカウント情報を指定する
httpEndpoint=$(az storage account show --resource-group $resourceGroupName --name $storageAccountName --query "primaryEndpoints.file" | tr -d '"') smbPath=$(echo $httpEndpoint | cut -c7-$(expr length $httpEndpoint))$fileShareName storageAccountKey=$(az storage account keys list --resource-group $resourceGroupName --account-name $storageAccountName --query "[0].value" | tr -d '"')
-
マウント実行
sudo mount -t cifs $smbPath $mntPath -o username=$storageAccountName,password=$storageAccountKey,serverino
-
マウントされていることを確認する
df -Th [root@XXXXXXXX ~] # df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 8.7M 3.9G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv xfs 2.0G 329M 1.7G 17% / /dev/mapper/rootvg-usrlv xfs 10G 2.2G 7.9G 22% /usr /dev/mapper/rootvg-varlv xfs 8.0G 704M 7.4G 9% /var /dev/mapper/rootvg-homelv xfs 1014M 40M 975M 4% /home /dev/sda1 xfs 496M 144M 352M 30% /boot /dev/mapper/rootvg-tmplv xfs 2.0G 47M 2.0G 3% /tmp /dev/sda15 vfat 495M 6.9M 488M 2% /boot/efi /dev/sdb1 ext4 16G 45M 15G 1% /mnt tmpfs tmpfs 782M 0 782M 0% /run/user/1001 ★//XXXXXXX.file.core.windows.net/testmedia cifs 10G 0 10G 0% /mount/XXXXX/testmedia # ↑ 2.で作成したマウントポイントにAzure Filesがマウントされていることを確認する
これでAzure Filesにマウントされました。
このあとは、通常の共有ファイルと同様、ストレージアカウント上からもサーバ上からも操作可能です。
試してはないですが、サーバの/etc/fstabに必要な情報を記載しておけば、サーバ起動時の自動マウントも可能みたいです。
以上です。
Linuxの操作嫌い&Azureのコマンド操作はPowerShallしか基本使わないので、CLIよく分からない状態でやってみましたが、
それでも簡単にできたので、機会があれば使ってみようと思います。
Author And Source
この問題について(LinuxのサーバからAzure FilesをSMBマウントする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/mikanchaaan/items/dfa353c11d27b07b99b4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .