このサイトでは「可用性セットの説明記事」が良く読まれているので、可用性セットについてさらに踏み込んだ ” テンプレートからの可用性セット付きVM ” の構築方法を説明する。ポイントは可用性セット(availabilitySet)の手動追加だ。可用性セットの説明はこちら
-
-
異動や転職を考えた時にエンジニアがするべきこと
こちらの記事で異動した時の気持ちについて書いた。今度は”スキル”という観点から異動する前にやっておいて良かったことについて書こうと思う。 私の場合は、同じ会社内の異動だけれども、この記事に書いてあ ...
続きを見る
テンプレートの準備
以前と同じようにVisual StudioからBlancのテンプレートを選択する。
仮想ネットワークを追加
ストレージアカウントを追加
可用性セットの追加
VM(Windows)の追加
ここまでで不明点があればテンプレートの記事を参照
-
-
異動や転職を考えた時にエンジニアがするべきこと
こちらの記事で異動した時の気持ちについて書いた。今度は”スキル”という観点から異動する前にやっておいて良かったことについて書こうと思う。 私の場合は、同じ会社内の異動だけれども、この記事に書いてあ ...
続きを見る
必要なコードをテンプレートへ手動追加
ポイントは可用性セット(availabilitySet)の手動追加。以下に記載のコードを追加しないと、エラーになって可用セット付きVMは作れない。
まず、前述の通り仮想ネットワーク、ストレージアカウント、可用性セット、VMのリソースを追加する。そしてVMのresourcesセクション→"properties"に以下を追加
"availabilitySet": {
"id": "[resourceId('Microsoft.Compute/availabilitySets', parameters('mySetName'))]"
},
ポイント
variables('mySetName')ではなく、parameters('mySetName')を追加する。
parametersの方を使えば、可用性セットの名前は手入力値になる。そして後述するエラーを回避できる。
次にVMのdependsOnのセクションに以下を追加する。
"[resourceId('Microsoft.Compute/availabilitySets', parameters('mySetname'))]",
ポイント
ここもparameters('availabilitySetName')を追加する。
このdependsOnのセクションにavailabilitySetの行を追加しないと構築順序でエラーが出る。エラーの内容は後述する。
これでOK。検証を押したときにmySetNameが出てくれば成功だ
実行すると以下の通り成功する。
Azureポータル上も問題なく、可用性セットがある状態のVMが確認できる。
可用性セットもしっかり確認できる。
可用性セットの定義を変更
更新ドメイン、障害ドメインを変更したい場合は画面の箇所をいじれば好きなように設定できる。
検証の時に悩んだエラー
'The resource 'Microsoft.Compute/availabilitySets/mySet' is not defined in the template.
これは依存の順番でエラーになる。dependsOnをよく見よう。また、variablesセクションに”availabilitySets”の定義を入れている場合、parametersの参照とvariablesの参照が入れ違いになりエラーになっている可能性もある。そのため、parametersの方でavailabilitySetの定義を行う方がわかりやすいだろう。
テンプレートのエラーは以下Microsoft公式ドキュメントを参考に。
あと、よくあるテンプレートのエラーとしては以下の原因が考えられる。
- なんらかの理由で定義が読み込まれていない
- 古い定義が残っている
- 定義とvariables、リソース内の名前が違う
参考
本記事の執筆の際に参考にしたスタックオーバーフローの記事を載せておく。
スタックオーバーフロー: