Help us understand the problem. What is going on with this article?

WindowsサーバのドライブにAzureストレージアカウントをマウントさせる

AzureにWindowsサーバを建てて、ドライブにAzureのストレージアカウントをマウントさせる機会が先日ありました。
サーバ構築はともかくストレージアカウントをマウントさせるのが思いの外めんどくさかったので備忘録がてらやり方をまとめてみる。Microsoftのページ読み返すのめんどくさいので...

Azure PowerShellモジュールのインストール

まずはAzure PowerShellモジュールが必要らしいのでインストール。
Azure PowerShellモジュールはWindows環境からコマンドラインでAzureリソースを管理できるツールみたいです。

最初にPowerShellを立ち上げて以下のコマンドを実行
実行したらインストールするかしないか聞かれるのでyを入力しましょう。

Powershell

Install-Module -Name Az -AllowClobber -Scope AllUsers

次にAzure PowerShellを使用して作業を開始するために、以下のコマンドを実行。
サインインするための画面が出てくるので後は自身のアカウントとパスワードを入れてサインインしましょう。

Powershell

Connect-AzAccount

ストレージアカウントに接続できるか確認

以下のコマンドを実行。変数regourceGroupNameとstorageAccountNameはマウントしたいストレージアカウントの情報を入力

Powershell

$resourceGroupName = "<your-resource-group-name>"
$storageAccountName = "<your-storage-account-name>"
# This command requires you to be logged into your Azure account, run Login-AzAccount if you haven't
# already logged in.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName
# The ComputerName, or host, is <storage-account>.file.core.windows.net for Azure Public Regions.
# $storageAccount.Context.FileEndpoint is used because non-Public Azure regions, such as sovereign clouds
# or Azure Stack deployments, will have different hosts for Azure file shares (and other storage resources).
Test-NetConnection -ComputerName ([System.Uri]::new($storageAccount.Context.FileEndPoint).Host) -Port 445

接続に成功したら以下のような出力結果が表示される

ComputerName : <storage-account-host-name>
RemoteAddress : <storage-account-ip-address>
RemotePort : 445
InterfaceAlias : <your-network-interface>
SourceAddress : <your-ip-address>
TcpTestSucceeded : True

Azureファイル共有の資格情報をWindowsで保持

ストレージアカウントの資格情報をcmdkeyを使ってWindowsに保持するために以下のコマンドを実行。
変数regourceGroupNameとstorageAccountNameはマウントしたいストレージアカウントの情報を入力

Powershell

$resourceGroupName = "<your-resource-group-name>"
$storageAccountName = "<your-storage-account-name>"
# These commands require you to be logged into your Azure account, run Login-AzAccount if you haven't
# already logged in.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName
$storageAccountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName
# The cmdkey utility is a command-line (rather than PowerShell) tool. We use Invoke-Expression to allow us to 
# consume the appropriate values from the storage account variables. The value given to the add parameter of the
# cmdkey utility is the host address for the storage account, <storage-account>.file.core.windows.net for Azure 
# Public Regions. $storageAccount.Context.FileEndpoint is used because non-Public Azure regions, such as sovereign 
# clouds or Azure Stack deployments, will have different hosts for Azure file shares (and other storage resources).
Invoke-Expression -Command ("cmdkey /add:$([System.Uri]::new($storageAccount.Context.FileEndPoint).Host) " + `
    "/user:AZURE\$($storageAccount.StorageAccountName) /pass:$($storageAccountKeys[0].Value)")

ストレージアカウントの資格情報がcmdkeyによって保存されたことを以下のコマンドで確認

Powershell

cmdkey /list

資格情報が保存されている場合以下のような出力結果が表示される

Target: Domain:target=<storage-account-host-name>
Type: Domain Password
User: AZURE<your-storage-account-name>

マウント作業

以下のコマンドを入力するとWindowsサーバのZドライブにストレージアカウントteststorageのdataディレクトリ配下がマウントされる。

Powershell

net use Z: \\teststorage.file.core.windows.net\data /persistent:Yes

正常にマウントされているかエクスプローラーから確認出来たらおしまい。

余談

マウントのやり方は他にもエクスプローラーを起動→PCを選択→ネットワークドライブの割り当てをクリック...のようなコマンド打たないやり方もあるみたいですが何故か自分の環境は出来ませんでした。解せない...

参照サイト

https://docs.microsoft.com/ja-jp/powershell/azure/install-az-ps?view=azps-3.5.0
https://docs.microsoft.com/ja-jp/azure/storage/files/storage-how-to-use-files-windows

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした