Azure上にサーバをデプロイする際、Azure Portal(GUI)以外利用したことがなかったので、Azure CLIで行ってみました。今回はユーザ側で最低限必要な操作のみ実施します。
前提条件
Azure上にCLIでサーバをデプロイする際に必要な前提条件は以下の通りです。
- Azureサブスクリプションを所有
- Azure Cloud Shell(Bash)またはローカルにインストールしたAzure CLIを使用
サーバデプロイ手順
本手順では、リソースグループの作成とサーバの作成を行います。それ以外のリソースの作成手順は省略し、省略時のデフォルト設定を利用します。
リソースグループを作成
リソースグループの作成には、az group createコマンドを使用します。リソースグループの名前と配置先のリージョンを指定します。
1 |
az group create --name <リソースグループ名> --location <リージョン名> |
以下は、東日本リージョンを指定してリソースグループを作成した場合の実行例です。
1 2 3 4 5 6 7 8 9 10 11 12 |
az group create --name rg-test --location japaneast { "id": "/subscriptions/<サブスクリプションID>/resourceGroups/rg-test", "location": "japaneast", "managedBy": null, "name": "rg-test", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" } |
ちなみに以下のコマンドを実行することで、サポートされているリージョンの一覧を取得できます(-oオプションによって出力形式を変更可能です)。
1 2 3 4 5 6 |
az account list-locations -o table DisplayName Name RegionalDisplayName ------------------------ ------------------- -------------------------------- (……途中省略……) Japan East japaneast (Asia Pacific) Japan East (……途中省略……) |
サーバ(Azure VM)を作成
サーバの作成にはaz vm createコマンドを使用します。以下はサーバの作成に最低限必要なオプションです。
1 2 3 4 5 6 7 |
az vm create \ --name <サーバ名> \ --resource-group <リソースグループ名> \ --image <OSイメージ名> \ ※--attach-os-diskオプションで既存のOSディスクをアタッチしない限り必要 --generate-ssh-keys ※新規公開鍵で認証を行う場合 --ssh-key-value <既存ssh鍵のパス情報> ※既存公開鍵で認証を行う場合 --admin-password <管理者パスワード> ※パスワードで認証を行う場合 |
以下の実行例では、サーバ作成時に使用するイメージ情報として、RHEL 8.2の最新イメージを–imageオプションで指定しています。実行例の–admin-username <管理者名>は省略可能です。省略した場合、現在のOSのユーザー名が管理者名として使われます。また、サーバへのログイン時の認証方法としてパスワード認証を選択しています。パスワードの長さには要件があるので、詳細はこちらを参照してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
az vm create \ > --name vm-test-rhel8u2 \ > --resource-group rg-test \ > --image RedHat:RHEL:8.2:latest \ > --admin-username <管理者名> \ > --admin-password <管理者パスワード> {- Finished .. "fqdns": "", "id": "/subscriptions/<サブスクリプションID>/resourceGroups/rg-test/providers/Microsoft.Compute/virtualMachines/vm-test-rhel8u2", "location": "japaneast", "macAddress": "00-22-48-67-F2-E1", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "104.41.175.130", "resourceGroup": "rg-test", "zones": "" } |
サーバデプロイにより生成されるリソース
リソースグループを指定してaz resource listコマンドを実行すると、リソースグループ内のリソース一覧が表示されます。実行した結果、以下の6つのリソースが作成されていました。
- サーバ(vm-test-rhel8u2)
- サイズ:Standard DS1 v2(1 vCPU, 3.5 GiB)
- OSディスク(vm-test-rhel8u2_OsDisk_1_62645c74bd394f469c69d00e13994259)
- サイズ:64 GiB、SKU:Premium SSD LRS
- パフォーマンスレベル:P6 – 240 IOPS、50 MBps
- ネットワークインターフェイス(vm-test-rhel8u2VMNic)
- パブリックIPアドレス(vm-test-rhel8u2PublicIP)
- ネットワークインターフェイスに関連付けられる
- ネットワークセキュリティグループ(vm-test-rhel8u2NSG)
- ネットワークインターフェイスに関連付けられる
- デフォルトの受信セキュリティ規則にdefault-allow-sshが追加される(22番ポート(SSH)がインターネットに公開されるため注意)
- 仮想ネットワーク(vm-test-rhel8u2VNET)
- デフォルトのサブネット(vm-test-rhel8u2Subnet)が作成される
各リソースのデフォルト設定が気になる場合は、必要なリソースごとにコマンドを実行したり、オプションを追加するようにしてください。
まとめ
- Azure CLIを利用し、最小ステップでサーバをデプロイしてみた
(リソースグループ作成とサーバ作成の2ステップ) - サーバ作成時は、リソースグループとサーバ名の他、OSイメージと認証方法を指定する必要あり