LoginSignup
1
0

ASR の フェールオーバー を Azure CLI で実行するときの引数について

Last updated at Posted at 2024-04-17

こんにちは、アーキテクトのやまぱんです。
補足コメントや質問、いいね、拡散、是非お願いします🥺!
間違ってたら優しく教えてください!

モチベ

Azure Site Recovery をAzure CLI で実行するときの引数が初見殺しでややこしいなーと思ったので、誰かの役に立てばと思いメモしておきます。

具体的にどれ?

例えば以下のフェールオーバを実行コマンドの引数です。

Azure CLI
    az site-recovery protected-item unplanned-failover

引数は以下があります。
説明は MS Learn からの引用です

--fabric-name
一意のファブリック名。

--failover-direction
フェールオーバーの方向。

--ids
1 つまたは複数のリソース ID (スペース区切り)。 これは、'Resource Id' 引数のすべての情報を含む完全なリソース ID である必要があります。 --ids または他の 'Resource Id' 引数を指定する必要があります。

--name --replicated-protected-item-name -n
レプリケーションで保護された項目名。

--no-wait
実行時間の長い操作の終了を待機しません。
承認された値: 0, 1, f, false, n, no, t, true, y, yes

--protection-container --protection-container-name
保護コンテナー名。

--provider-details --provider-specific-details
プロバイダー固有の設定。 短縮構文、json-file、yaml-file をサポートします。 詳細を表示するには、"??" を試してください。

--resource-group -g
リソース グループの名前。 az configure --defaults group= を使用して、既定のグループを構成できます。

--source-site-operations
ソース サイトの操作の状態。

--subscription
サブスクリプションの名前または ID。 az account set -s NAME_OR_ID を使用して、既定のサブスクリプションを構成できます。

--vault-name
Recovery Services コンテナーの名前。

また以下は MS Learn に記載のある A2A (Azure 環境同士のDR構成) 時のコマンド例です。

az site-recovery protected-item unplanned-failover 
 --fabric-name fabric1_name  
 --protection-container container1_name  
 --replicated-protected-item-name protected_item_name -g rg  
 --vault-name vault_name  
 --failover-direction PrimaryToRecovery  
 --provider-details '{a2a:{}}'  
 --source-site-operations NotRequired

パッとみわかりそうなものもありますが、MS Learn の説明や例コマンドを読んでもわかりにくいものもあります。

具体的には以下です。結構初見殺しだと思います。

  • --name / --replicated-protected-item-name / -n
     レプリケーションを構成しているAzure VM の名前かと思いきや、そうではありません。
  • --protection-container --protection-container-name
    Recovery Services コンテナー名かと思いきや、そうではありません。別にRecovery Services コンテナーの名前を指定する引数 --vault-name があります。
  • --fabric-name
    ファブリックネームって何ですの

これらの引数の確認方法

実際にAzure Portal やAzure CLI で確認してみましょう。

Azure Portal

DR を構成している Recovery Services コンテナー からかきのように遷移してリソース ID をコピーします。

image.png

以下がその内容です。Subscription ID は 伏字にしています

/Subscriptions/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX83/resourceGroups/Site-Recovery-vault-australiaeast/providers/Microsoft.RecoveryServices/vaults/Site-recovery-vault-australiaeast/replicationFabrics/asr-a2a-default-eastasia/replicationProtectionContainers/asr-a2a-default-eastasia-container/replicationProtectedItems/fec4de0b-c810-50c5-8483-a4dcbbb762c2

見やすく改行します

  • /Subscriptions/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX83
  • /resourceGroups/Site-Recovery-vault-australiaeast
  • /providers/Microsoft.RecoveryServices
  • /vaults/Site-recovery-vault-australiaeast
  • /replicationFabrics/asr-a2a-default-eastasia
  • /replicationProtectionContainers/asr-a2a-default-eastasia-container
  • /replicationProtectedItems/fec4de0b-c810-50c5-8483-a4dcbbb762c2

上記を見ればわかるかと思います。
引数との対応を表にしたものが以下です。

引数 項目名 値(上記の例の場合)
--resource-group リソースグループ Site-Recovery-vault-australiaeast
-- vault-name Recovery Services コンテナー名 Site-recovery-vault-australiaeast
--fabric-name ファブリック名 asr-a2a-default-eastasia
--protection-container プロテクションコンテナー名 asr-a2a-default-eastasia-container
--name 保護対象のVMを指し示す値 (VM 名ではない) fec4de0b-c810-50c5-8483-a4dcbbb762c2

Azure CLI

続いて Azure CLI で--fabric-name、--protection-container、--name の値を取得します。
リソースグループ名 (Site-Recovery-vault-australiaeast)、Recovery Services コンテナー名 (Site-recovery-vault-australiaeast) を引数に取ることで可能です。

  • -fabric-name
--fabric-name を取得
az site-recovery fabric list --resource-group '<リソース グループ名>' --vault-name '<Recovery Services コンテナー名>' --output table

実行例
image.png

これで --fabric-name が取得できました。
asr-a2a-default-eastasia が --fabric-name です。

  • --protection-container
    さきほど取得した --fabric-name も利用して取得します。
--protection-container を取得
az site-recovery protection-container list --fabric-name '<ファブリック名>' --resource-group '<リソース グループ名>' --vault-name '<Recovery Services コンテナー名>' --output table

実行例
image.png

asr-a2a-default-eastasia-container が --protection-container です。

  • --name / --replicated-protected-item-name / -n
    さきほど取得した --fabric-name に加えて、--protection-container も利用して取得します。
--name / --replicated-protected-item-name / -n を取得
az site-recovery protected-item list --fabric-name '<ファブリック名>' --protection-container '<保護コンテナー名>' --resource-group '<リソース グループ名>' --vault-name '<Recovery Services コンテナー名>'  --query "[].{FriendlyName:properties.friendlyName,Name:name}" --output table

実行例
image.png

fec4de0b-c810-50c5-8483-a4dcbbb762c2 が --name です。
また FriendlyNameVM-asr-origin が、保護対象の アイテム名 (Azure VM 名) です。

まとめ

Azure CLI で ASR を操作するときに以下の引数に注意。

  • --name / --replicated-protected-item-name / -n
     レプリケーションを構成しているAzure VM の名前かと思いきやそうではありません。
  • --protection-container --protection-container-name
    Recovery Services コンテナー名かと思いきや、そうではありません。
  • --fabric-name
    ファブリックネーム

Azure Portal でも確認できるし、Azure CLI でも対象の Recovery Services コンテナーのリソースグループとRecovery Services コンテナー名が分かれば取得することが可能❣

おまけ Azure CLI でフェールオーバーした際の画面ショット

以下のように正常にコマンドは実行されていることが分かります。
image.png

フェールオーバー実施後に得られる name 値
今回の場合、ba10407f-2909-4013-8064-a449b3bbebfa は Job 識別子と呼ばれるものです。

Azure CLI (Az site-recovery job show コマンド) で以下のように使うことができます。

Az site-recovery job show コマンド例
az site-recovery job show  -g Site-Recovery-vault-australiaeast --vault-name Site-Recovery-vault-australiaeast --job-name ba10407f-2909-4013-8064-a449b3bbebfa

2024-04-18_20h34_00.png

参考) az site-recovery job
https://learn.microsoft.com/ja-jp/cli/azure/site-recovery/job?view=azure-cli-latest

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0