今回は、ARMテンプレートを使ってUbuntuを起動させてみたいと思います。
■ARMテンプレートとは
ざっくり言えば、構築方法をコード(JSON形式)化し自動化するために利用するものです。
■ARMテンプレートの利点
詳細はMS公式サイトを参照ください。
テンプレートの概要 - Azure Resource Manager | Microsoft Docs
ARMテンプレートによりIaC化が実現できるため、IaCを利用する利点=ARMテンプレートの利点となります。
そのため、他のIaCツール(Terraform 等)と比較されがちですが、ARMテンプレートを利用することで他のAzureサービスと連携がしやすい、もしくは最初から連携するための機能が実装されている、という点があります。
※例えば、AzureDevOpsとの連携
■ARMテンプレートの構文
MS公式サイトを参照ください。
テンプレートの構造と構文 - Azure Resource Manager | Microsoft Docs
すべてを理解すること必要はなく、各要素(schemaやvariables等)がどのような使われ方をするのかの概要を知っておくだけで、実際にARMテンプレートを利用する際の助かるかと。
■準備
では、実際にやってみる前に準備(ARMテンプレートの内容を確認)をします。
今回は、「Azureクイックスタートテンプレート」にあるAzureコミュニティ(GitHub)のARMテンプレートを使います。
1.以下ページへアクセスし、検索窓で「Deploy a Ubuntu VM」を検索します。
2.「Deploy a simple Ubuntu Linux VM 18.04-LTS.」をクリックします。
3.「GitHubで参照する」をクリックします。
4.「Visualize」をクリックします。
5.下記のようにVisualizeが起動します。
6.左ペインで「視覚化」「コード」表示を切り替えることができます。
7.「コード」表示をクリックします。
8.ここで表示されたコードが、ARMテンプレートの全量です。
9.コードを上から読んでいくのも全然ありですが、「視覚化」されたアイコンをクリックすることで該当するコードに飛ぶこともできます。
↓
↓ ※上記アイコンをクリックすると自動的に該当するコードに飛びます。
214行目から254行目までが、仮想マシンに関するコードです。
10.例えば手順9で確認した仮想マシンのコードの中にはparameters('ubuntuOSVersion')のような記述でパラメータが指定されているものがあります。
パラメータの内容については手順3と同じページに内容が記載されていることがほとんどです。
■実践
では、実際にやってみます。
注意点ですが、実際にやることで各Azureリソースの課金が発生します。
本手順により作成されるリソースは以下の通りです。
また、仮想マシン(上記simpleLInuxVM)はSSH接続用に「22/tcp」で接続する前提となっております。そのため、デプロイ後、「SecGroupNet」のNSGの受信のセキュリティ規則を修正するのが望ましいです。
※自己責任でお願いいたします。
作成される仮想マシンの概要は以下の通りです。
・OS: Linux(Ubuntu18.04)
・仮想マシンサイズ: Standard B2s (2 vcpu 数、4 GiB メモリ)
・OSディスク: 30GiB
・PIP付与(動的)
1.事前に以下ページにアクセスしているものとします。
Deploy a simple Ubuntu Linux VM 18.04-LTS.
2.ページ下部に利用するための手順が記載されています。
※今回はAzurePowershellを使います。
3.AzurePowershellを起動し、自身のサブスクリプションにログインしておきます。
PS C:\Users> Import-Module Az ※Azモジュールインストール
PS C:\Users> Connect-AzAccount ※Azureログイン
PS C:\Users> Get-AzContext ※念のためログインしたサブスクリプションを確認
4.手順2の通り、まずはリソースグループを作成します。
※リソースグループ名は「testubuntu1」、リージョンは「西日本」を指定
PS C:\Users> New-AzResourceGroup -Name testubuntu1 -Location japanwest
5.手順2の通り、デプロイを実施します。
PS C:\Users> New-AzResourceGroupDeployment -ResourceGroupName testubuntu1 -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json
6.パラメータを対話形式で聞かれるため、順番に回答していきます。
※adminPasswordOrKeyを入力した後、実際のデプロイが始まるため、プロンプトが戻ってくるまでに数分かかります。
7.完了すると、デプロイ環境の情報が表示されるため、メモしておきます。
8.指定したリソースグループに構築されたAzureリソースは以下の通りです。
以上です。