仮想マシン クイックスタート azコマンド編 (1/2)

スポンサーリンク

Microsoft Azureで仮想マシンをazコマンドで作成する方法をまとめます。このページで紹介するのは初歩的な設定です。Windowsの設定例については全世界に対してRDPを許可する侵入されてしまう設定ですので、実務では使用しないように注意ください。

もう少し発展的な内容は「仮想マシン クイックスタート azコマンド編 (2/2)」に記載します。

指定可能なパラメタの調査

リージョンの一覧

指定可能なリージョン一覧は以下コマンドを使用します。

az account list-locations

実際に指定可能なのはregionTypeがPhysicalであるもののみです。クエリで絞り込む操作例は以下の通りです。

az account list-locations --query "[? metadata.regionType=='Physical'].name"

イメージ検索

仮想マシン作成時に指定できるOSは、公式資料の「Azure CLI を使用して Azure Marketplace イメージ情報を検索する」を参照ください。以下、公式資料の一部抜粋を載せます。

Azure Marketplaceで使用頻度が高いOSのみを表示するならば、以下のコマンドを使用します。

az vm image list --output table

実行例は以下の通りです。以下に出力されるUrnまたはUrnAliasを仮想マシン作成時に指定します。

$ az vm image list --output table
You are viewing an offline list of images, use --all to retrieve an up-to-date list
Offer                         Publisher               Sku                 Urn                                                             UrnAlias             Version
----------------------------  ----------------------  ------------------  --------------------------------------------------------------  -------------------  ---------
CentOS                        OpenLogic               7.5                 OpenLogic:CentOS:7.5:latest                                     CentOS               latest
debian-10                     Debian                  10                  Debian:debian-10:10:latest                                      Debian               latest
flatcar-container-linux-free  kinvolk                 stable              kinvolk:flatcar-container-linux-free:stable:latest              Flatcar              latest
openSUSE-Leap                 SUSE                    42.3                SUSE:openSUSE-Leap:42.3:latest                                  openSUSE-Leap        latest
RHEL                          RedHat                  7-LVM               RedHat:RHEL:7-LVM:latest                                        RHEL                 latest
SLES                          SUSE                    15                  SUSE:SLES:15:latest                                             SLES                 latest
UbuntuServer                  Canonical               18.04-LTS           Canonical:UbuntuServer:18.04-LTS:latest                         UbuntuLTS            latest
WindowsServer                 MicrosoftWindowsServer  2019-Datacenter     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest     Win2019Datacenter    latest
WindowsServer                 MicrosoftWindowsServer  2016-Datacenter     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest     Win2016Datacenter    latest
WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest  Win2012R2Datacenter  latest
WindowsServer                 MicrosoftWindowsServer  2012-Datacenter     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest     Win2012Datacenter    latest
WindowsServer                 MicrosoftWindowsServer  2008-R2-SP1         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest         Win2008R2SP1         latest

全てのOSを表示させるには–allを指定します。ただし、これでは表示される量が多くなりますので、ディストリビューションやロケーションで絞り込みます。以下は、使用可能なCentOSのイメージ一覧を表示する例です。

az vm image list --location japaneast \
  --offer CentOS \
  --all --output table 

実行例は以下の通りです。以下に出力されるUrnまたはUrnAliasを仮想マシン作成時に指定します。

$ az vm image list --location japaneast \
  --offer CentOS \
  --all --output table
Offer                                            Publisher                           Sku                                                 Urn                                                                                                                                  Version
-----------------------------------------------  ----------------------------------  --------------------------------------------------  -----------------------------------------------------------------------------------------------------------------------------------  ---------------
centos-solvers194                                ansys                               74-hpc                                              ansys:centos-solvers194:74-hpc:1.20.14                                                                                               1.20.14
centos-solvers194                                ansys                               76-hc                                               ansys:centos-solvers194:76-hc:1.20.14                                                                                                1.20.14
centos-solvers195                                ansys                               74-hpc                                              ansys:centos-solvers195:74-hpc:1.20.14                                                                                               1.20.14
centos-solvers195                                ansys                               76-hc                                               ansys:centos-solvers195:76-hc:1.20.14                                                                                                1.20.14
centos-solvers201                                ansys                               74-hpc                                              ansys:centos-solvers201:74-hpc:1.20.13                                                                                               1.20.13
centos-solvers201                                ansys                               76-hc                                               ansys:centos-solvers201:76-hc:1.20.14                                                                                                1.20.14
codiad-on-centos-75                              apps-4-rent                         codiad-on-centos-75                                 apps-4-rent:codiad-on-centos-75:codiad-on-centos-75:1.0.1                                                                            1.0.1

 <omitted>

利用規約の同意

仮想マシンを使用するためには、利用規約に同意する必要があります。同意には、az vm image terms acceptコマンドを使用します。

az vm image terms accept --urn <URN>

実行例は以下の通りです。

$ az vm image terms accept --urn procomputers:centos-8-5:centos-8-5:8.5.20211117
{
  "accepted": true,
  "id": "/subscriptions/2e2f81a9-b030-410f-9784-c582580c932e/providers/Microsoft.MarketplaceOrdering/offerTypes/Microsoft.MarketplaceOrdering/offertypes/publishers/procomputers/offers/centos-8-5/plans/centos-8-5/agreements/current",
  "licenseTextLink": "https://mpcprodsa.blob.core.windows.net/legalterms/3E5ED_legalterms_PROCOMPUTERS%253a24CENTOS%253a2D8%253a2D5%253a24CENTOS%253a2D8%253a2D5%253a24T622IBUBKL6J3MHL5NUAWG2XNZ5H5FVSJGLCOC54LB63AGIONYH5CDZVDEYDONEFK2NHKCZROAP7ZU5PLZHXJ5ZNBFEUCBOWWMC4DSY.txt",
  "marketplaceTermsLink": "https://mpcprodsa.blob.core.windows.net/marketplaceterms/3EDEF_marketplaceterms_VIRTUALMACHINE%253a24AAK2OAIZEAWW5H4MSP5KSTVB6NDKKRTUBAU23BRFTWN4YC2MQLJUB5ZEYUOUJBVF3YK34CIVPZL2HWYASPGDUY5O2FWEGRBYOXWZE5Y.txt",
  "name": "centos-8-5",
  "plan": "centos-8-5",
  "privacyPolicyLink": "https://www.procomputers.com/privacy-policy.html",
  "product": "centos-8-5",
  "publisher": "procomputers",
  "retrieveDatetime": "2022-02-15T14:25:40.0488469Z",
  "signature": "2SGZJ4N6T4QINMYRP3CCJ5AHXCI3YWG6UAOS6CIUYQEOPHPFQLBB5WZXVBUXTIHSR5E523CNZNGVZOFRZCSCHC5AL7NGE2ZA3HWZ3QQ",
  "systemData": {
    "createdAt": "2022-02-15T14:25:41.521356+00:00",
    "createdBy": "2e2f81a9-b030-410f-9784-c582580c932e",
    "createdByType": "ManagedIdentity",
    "lastModifiedAt": "2022-02-15T14:25:41.521356+00:00",
    "lastModifiedBy": "2e2f81a9-b030-410f-9784-c582580c932e",
    "lastModifiedByType": "ManagedIdentity"
  },
  "type": "Microsoft.MarketplaceOrdering/offertypes"
}

指定可能なサイズ一覧の調査

東日本リージョンで仮想マシンのサイズとして指定可能な一覧は以下のコマンドで調査できます。

az vm list-sizes \
  --location japaneast \
  --output table

実行例は以下の通りです。

$ az vm list-sizes \
  --location japaneast \
  --output table
MaxDataDiskCount    MemoryInMb    Name                    NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
24                  57344         Standard_NV6            6                1047552           389120
48                  114688        Standard_NV12           12               1047552           696320
64                  229376        Standard_NV24           24               1047552           1474560
24                  57344         Standard_NV6_Promo      6                1047552           389120
48                  114688        Standard_NV12_Promo     12               1047552           696320
64                  229376        Standard_NV24_Promo     24               1047552           1474560
1                   768           Standard_A0             1                1047552           20480
2                   1792          Standard_A1             1                1047552           71680
4                   3584          Standard_A2             2                1047552           138240
8                   7168          Standard_A3             4                1047552           291840
4                   14336         Standard_A5             2                1047552           138240

  <omitted>

比較的廉価なBシリーズに絞り込んで検索するならば、以下のようにqueryにstarts_with句を指定して検索します。

az vm list-sizes \
  --location japaneast \
  --query "[?starts_with(name,'Standard_B')]" \
  --output table

実行例は以下の通りです。

$ az vm list-sizes \
  --location japaneast \
  --query "[?starts_with(name,'Standard_B')]" \
  --output table
Name            NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb    MemoryInMb    MaxDataDiskCount
--------------  ---------------  ----------------  ----------------------  ------------  ------------------
Standard_B1ls   1                1047552           4096                    512           2
Standard_B1ms   1                1047552           4096                    2048          2
Standard_B1s    1                1047552           4096                    1024          2
Standard_B2ms   2                1047552           16384                   8192          4
Standard_B2s    2                1047552           8192                    4096          4
Standard_B4ms   4                1047552           32768                   16384         8
Standard_B8ms   8                1047552           65536                   32768         16
Standard_B12ms  12               1047552           98304                   49152         16
Standard_B16ms  16               1047552           131072                  65536         32
Standard_B20ms  20               1047552           163840                  81920         32

CentOSの構築例

リソースグループの作成

以下のコマンドでリソースグループを作成します。

az group create --name MyResourceGroup --location japaneast

利用規約の同意

使用する仮想マシンイメージの利用規約に同意します。CentOS8.5に同意する操作例は以下の通りです。

az vm image terms accept --urn procomputers:centos-8-5:centos-8-5:8.5.20211117

仮想マシンの作成

az vm createコマンドで仮想マシンを作成します。指定可能なオプションは-hでヘルプ表示できます。

$ az vm create -h

Command
    az vm create : Create an Azure Virtual Machine.
        For an end-to-end tutorial, see https://docs.microsoft.com/azure/virtual-
        machines/linux/quick-create-cli.

Arguments
    --name -n                                          [Required] : Name of the virtual machine.
    --resource-group -g                                [Required] : Name of resource group. You can

 <omitted>

公開鍵と秘密鍵を作成しつつ、仮想マシンを作成する操作例は以下の通りです。なお、この操作は公開鍵と秘密鍵が未作成である事を前提としており、~/.sshディレクトリが存在しない事が前提条件になっています。

az vm create \
  --resource-group MyResourceGroup \
  --name myCentOS \
  --image procomputers:centos-8-5:centos-8-5:8.5.20211117 \
  --size Standard_B2s \
  --admin-username azureuser \
  --authentication-type ssh \
  --generate-ssh-keys 

公開鍵が作成済の場合は–ssh-key-valuesで公開鍵のファイルパスを指定します。

az vm create \
  --resource-group MyResourceGroup \
  --name myCentOS \
  --image procomputers:centos-8-5:centos-8-5:8.5.20211117 \
  --size Standard_B2s \
  --admin-username azureuser \
  --authentication-type ssh \
  --ssh-key-values ~/.ssh/authorized_keys

実行例は以下の通りです。仮想マシンに割り当てられたグローバルIPアドレスは後の操作で使用しますので、メモに控えましょう。

admin@mac19 ~ % az vm create \
  --resource-group MyResourceGroup \
  --name myCentOS \
  --image procomputers:centos-8-5:centos-8-5:8.5.20211117 \
  --size Standard_B2s \
  --admin-username azureuser \
  --authentication-type ssh \
  --ssh-key-values ~/.ssh/authorized_keys
It is recommended to use parameter "--public-ip-sku Standard" to create new VM with Standard public IP. Please note that the default public IP used for VM creation will be changed from Basic to Standard in the future.
{
  "fqdns": "",
  "id": "/subscriptions/2e2f81a9-b030-410f-9784-c582580c932e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myCentOS",
  "location": "japaneast",
  "macAddress": "00-0D-3A-50-2D-CB",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "20.89.145.20",
  "resourceGroup": "MyResourceGroup",
  "zones": ""
}

ログイン確認

公開鍵認証を用いて、Azureに構築されたCentOSへログイン可能である事を確認します。

admin@mac19 ~ % ssh 20.89.145.20 -l azureuser
The authenticity of host '20.89.145.20 (20.89.145.20)' can't be established.
ED25519 key fingerprint is SHA256:Egb5oodG+QwrqpsbJBGEETqMB6A6PxIEd9cR1KqxPFc.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '20.89.145.20' (ED25519) to the list of known hosts.

  Welcome to CentOS-8.5-x86_64-Minimal-30GiB-VHD-20211117_174155.

  * Use "sudo su -" command in order to become root.

  For your convenience, this image is provided by ProComputers.com.
  Visit https://www.procomputers.com for more information.

  If you don't want to see this message anymore, please remove
  the content of the /etc/motd text file.

[azureuser@myCentOS ~]$ 

リソースグループの削除

リソースグループを削除します。

az group delete --name MyResourceGroup --no-wait

Windowsの構築例

リソースグループの作成

以下のコマンドでリソースグループを作成します。

az group create --name MyResourceGroup --location japaneast

利用規約の同意

利用規約の同意は不要です。

仮想マシンの作成

仮想マシンを作成する操作例は以下の通りです。–admin-passwordでパスワードを指定できますが、この操作はヒストリにパスワードが残るためセキュアではない事を理解ください(自宅専用操作です)。–admin-passwordを省略した場合は、対話形式でパスワードを問われます。対話形式ならばヒストリにパスワードは残りません。

az vm create \
  --resource-group MyResourceGroup \
  --name Windows \
  --image Win2019Datacenter \
  --size Standard_B2s \
  --public-ip-sku Standard \
  --admin-username azureuser \
  --admin-password P@ssw0rd1234

実行例は以下の通りです。仮想マシンに割り当てられたグローバルIPアドレスは後の操作で使用しますので、メモに控えましょう。

admin@mac19 ~ % az vm create \
  --resource-group MyResourceGroup \
  --name Windows \
  --image Win2019Datacenter \
  --size Standard_B2s \
  --public-ip-sku Standard \
  --admin-username azureuser \
  --admin-password P@ssw0rd1234
{
  "fqdns": "",
  "id": "/subscriptions/2e2f81a9-b030-410f-9784-c582580c932e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/Windows",
  "location": "japaneast",
  "macAddress": "00-0D-3A-50-9B-05",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.5",
  "publicIpAddress": "20.210.80.31",
  "resourceGroup": "MyResourceGroup",
  "zones": ""
}
admin@mac19 ~ %

ログイン確認

リモートデスクトップを起動し「グローバルIPアドレス」「ユーザー名」「パスワード」を入力します。

Azure Windows機の接続確認 01

パスワード認証に成功し、リモートデスクトップ接続できた事を確認します。

Azure Windows機の接続確認 02

リソースグループの削除

リソースグループを削除します。

az group delete --name MyResourceGroup --no-wait
タイトルとURLをコピーしました