######◆AzureでもAWSCLIのようなコマンドラインツールがあり、それを「AzureCLI」と言っています。ここでは「AzureCLI」ととりあえず使えるまでを行います
#◆環境
AzureでVMを単純に作っただけのものを使います。
項目 | 内容 |
---|---|
OS | Windows 10 |
サイズ | Standard_D2_V2 |
NSG | default-allow-rdp |
S/W | AzureCLI |
#◆「AzureCLI」のインストール
これをやらないとAzureのコマンドが使えません。
【1】MSから「AzureCLI」をダウンロード
ダウンロード先 : https://aka.ms/InstallAzureCliWindows
【2】「AzureCLI」を使用するサーバにダウンロードしたMSIを転送する
【3】「AzureCLI」をダブルクリックしインストール開始
【4】以下のコマンドを実行しインストール確認を行う
az --version
PS C:\Users\defaultuser0> az --version
azure-cli (2.0.14)
<略>
Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe'
#◆「Azure」へのログイン
入れただけではコマンドが使用できてもどのサブスクリプションの環境であるかが判断できません。以下のコマンドを実行して自分の環境で操作できるようにします
【1】AzureCLI環境
az login
PS C:\Users\defaultuser0> az login
To sign in, use a web browser to open the page
※以下のURLと「Code」を取得しておく
https://aka.ms/devicelogin and enter the code 「Code」 to authenticate.
[
{
"cloudName": "AzureCloud",
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"isDefault": true,
"name": "\XXXXX\XXXXX\XXXXX\XXXXX\XXXXX",
"state": "Enabled",
"tenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"user": {
"name": "XXXXXXXX@XXXXXXXX",
"type": "user"
}
}
]
PS C:\Users\defaultuser0> az vm list -o table
【3】取得したURLにアクセスしコードを入力する
※ログインが終わったら画面を閉じてよい
【4】AzureCLIよりコマンドを実行する
※本当に使えるようになっているかの確認です
az vm list -o table
PS C:\Users\defaultuser0> az vm list -o table
Name ResourceGroup Location
------------- --------------- ----------
XXXXXXXXXXXXX XXXXXXXX japaneast
PS C:\Users\defaultuser0>
以上!
次はコマンドです
#AzureCLIを使う以上最低限必要になるコマンド
今回導入した「AzureCLI」を使った以下の環境の作成をします!
【以降で扱うコマンドのリスト】
No | 内容 | コマンド |
---|---|---|
1 | リソースグループ・作成 | az group create [Option] |
2 | リソースグループ・一覧 | az group list -o table |
3 | リソースグループ・詳細 | az group show --name [RGNAME] |
4 | 仮想ネットワーク・作成 | az network vnet create [option] |
5 | 仮想ネットワーク・一覧 | az network vnet list -o table |
6 | 仮想ネットワーク・詳細 | az network vnet show --resource-group [RGNAME] --name [VNETNAME] |
7 | ネットワークセキュリティグループ・作成 | az network nsg create [option] |
8 | ネットワークセキュリティグループ・一覧 | az network nsg list -o table |
9 | ネットワークセキュリティグループ・詳細 | az network nsg show --resource-group [RGNAME] --name [NSGNAME] |
10 | ルール・作成 | az network nsg rule create [option] |
11 | ルール・一覧 | az network nsg rule list [option] |
12 | サブネットとルール関連付け・作成 | az network vnet subnet update [option] |
13 | 仮想マシン・作成 | az vm create [option] |
14 | 仮想マシン・一覧 | az vm list -o table |
15 | 仮想マシン・詳細 | az vm show --resource-group [RGNAME] --name [VMNAME] |
16 | 全リソース・一覧 | az resource list -o table |
【コマンド実行して作る環境】
■1 リソースグループの作成
オプションで指定した内容に従いリソースグループを作成する
az group create [option]
option------------------------------------------
--name / リソースグループの名前
--location / リソースグループの場所
-------------------------------------------------
PS C:\Users\defaultuser0> az group create `
>> --location japaneast `
>> --name Hogehoge-RG
<略(showコマンド実行結果と同じ内容)>
PS C:\Users\defaultuser0>
■2 リソースグループ一覧
サブスクリプション内に作成されているリソースグループを一覧表示させる
az group list -o table
PS C:\Users\defaultuser0> az group list -o table
Name Location Status
--------------------------------------- -------------- ---------
Hogehoge-RG japaneast Succeeded
PS C:\Users\defaultuser0>
■3 リソースグループ詳細
特定のリソースグループの詳細を確認する
az group show --name [RGNAME]
PS C:\Users\defaultuser0> az group show -name hogehoge-RG
{
"id": "/・・・/Hogehoge-RG",
"location": "japaneast",
"managedBy": null,
"name": "Hogehoge-RG",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
PS C:\Users\defaultuser0>
■4 VNET(仮想ネットワーク)の作成
オプションで指定した内容に従いVNETを作成する
またオプション付与でサブネットも同時に作成する
az network vnet create [option]
option---------------------------------------------------------
--name [VNETNAME] // 仮想ネットワーク名
--resource-group [RGNAME] // リソースグループ
--location [LOCATION] // リージョン
--address-prefix [IPADDRESS] // アドレス範囲
--subnet-name [SNNAME] // サブネット名
--subnet-prefix [IPADDRESS] // サブネットIP
---------------------------------------------------------------
PS C:\Users\defaultuser0> az network vnet create `
>> --name hogehoge-VNET `
>> --resource-group hogehoge-RG `
>> --location japaneast `
>> --address-prefix ・・・ `
>> --subnet-name hogehoge-SN `
>> --subnet-prefix ・・・/24
<略(showコマンド実行結果と同じ内容)>
PS C:\Users\defaultuser0>
■5 仮想ネットワーク一覧
サブスクリプション内に作成されている仮想ネットワークを一覧表示させる
az network vnet list -o table
PS C:\Users\defaultuser0> az network vnet list -o table
Location Name ProvisioningState ResourceGroup ResourceGuid
---------- ----------------- ------------------- ------------------------------------ ------------------------------------
japaneast hogehoge-VNET Succeeded hogehoge-RG d76fa574-3da3-46e0-9959-f37f82cf3d40
PS C:\Users\defaultuser0>
■6 仮想ネットワーク詳細
特定の仮想ネットワークの詳細を確認する
az network vnet show --resource-group [RGNAME] --name [VNETNAME]
PS C:\Users\defaultuser0> az network vnet show --resource-group hogehoge-RG --name hogehoge-VNET
{
"newVNet": {
"addressSpace": {
"addressPrefixes": [
"・・・"
]
},
"dhcpOptions": {
"dnsServers": []
},
"etag": ""・・・\"",
"id": "・・・",
"location": "japaneast",
"name": "hogehoge-VNET",
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"resourceGuid": "・・・",
"subnets": [
{
"addressPrefix": "・・・",
"etag": "・・・"",
"id": "・・・/hogehoge-SN",
"ipConfigurations": null,
"name": "hogehoge-SN",
"networkSecurityGroup": null,
"privateAccessServices": null,
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"resourceNavigationLinks": null,
"routeTable": null
}
],
"tags": {},
"type": "Microsoft.Network/virtualNetworks",
"virtualNetworkPeerings": []
}
}
■7 NSG(ネットワークセキュリティグループ)の作成
オプションで指定した内容に従いNSGを作成する
az network nsg create [option]
option---------------------------------------------------------
--name [name] // NSG名
--resource-group [rg] // リソースグループ
--location [ex)japaneast] // リージョン
---------------------------------------------------------------
PS C:\Users\defaultuser0> az network nsg create `
>> --resource-group hogehoge-RG `
>> --name hogehoge-NSG
<略(showコマンド実行結果と同じ内容)>
PS C:\Users\defaultuser0>
■8 ネットワークセキュリティグループ一覧
サブスクリプション内に作成されているNSGを一覧表示させる
az network nsg list -o table
PS C:\Users\defaultuser0> az network nsg list -o table
Location Name ProvisioningState ResourceGroup ResourceGuid
---------- --------------------------------------- ------------------- ------------------------------------ ------------------------------------
japaneast hogehoge-NSG Succeeded hogehoge-RG XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
PS C:\Users\defaultuser0>
■9 ネットワークセキュリティグループ詳細
指定したNSGの詳細な情報を表示する(デフォルトルールも表示される)
az network nsg show --resource-group [RGNAME] --name [NSGNAME]
PS C:\Users\defaultuser0> az network nsg show --resource-group hogehoge-RG --name hogehoge-NSG
{
"defaultSecurityRules": [
{
"access": "Allow",
"description": "Allow inbound traffic from all VMs in VNET",
"destinationAddressPrefix": "VirtualNetwork",
"destinationPortRange": "*",
"direction": "Inbound",
"etag": "・・・"",
"id": "・・・/Microsoft.Network/
"name": "AllowVnetInBound",
"priority": 65000,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"sourceAddressPrefix": "VirtualNetwork",
"sourcePortRange": "*"
},
{
"access": "Allow",
"description": "Allow inbound traffic from azure load balancer",
"destinationAddressPrefix": "*",
"destinationPortRange": "*",
"direction": "Inbound",
"etag": "W/\"e7c99659-7e06-44ef-9c49-e6ade0c90e56\"",
"id": "/subscriptions/8d5fb7b6-d8be-4816-a6b6-8e60f85921ae/resourceGroups/hogehoge-RG/providers/Microsoft.Network/
"name": "AllowAzureLoadBalancerInBound",
"priority": 65001,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"sourceAddressPrefix": "AzureLoadBalancer",
"sourcePortRange": "*"
},
{
"access": "Deny",
"description": "Deny all inbound traffic",
"destinationAddressPrefix": "*",
"destinationPortRange": "*",
"direction": "Inbound",
"etag": "W/\"e7c99659-7e06-44ef-9c49-e6ade0c90e56\"",
"id": "/subscriptions/8d5fb7b6-d8be-4816-a6b6-8e60f85921ae/resourceGroups/hogehoge-RG/providers/Microsoft.Network/
"name": "DenyAllInBound",
"priority": 65500,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
},
{
"access": "Allow",
"description": "Allow outbound traffic from all VMs to all VMs in VNET",
"destinationAddressPrefix": "VirtualNetwork",
"destinationPortRange": "*",
"direction": "Outbound",
"etag": "W/\"e7c99659-7e06-44ef-9c49-e6ade0c90e56\"",
"id": "/subscriptions/8d5fb7b6-d8be-4816-a6b6-8e60f85921ae/resourceGroups/hogehoge-RG/providers/Microsoft.Network/
"name": "AllowVnetOutBound",
"priority": 65000,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"sourceAddressPrefix": "VirtualNetwork",
"sourcePortRange": "*"
},
{
"access": "Allow",
"description": "Allow outbound traffic from all VMs to Internet",
"destinationAddressPrefix": "Internet",
"destinationPortRange": "*",
"direction": "Outbound",
"etag": "W/\"e7c99659-7e06-44ef-9c49-e6ade0c90e56\"",
"id": "/subscriptions/8d5fb7b6-d8be-4816-a6b6-8e60f85921ae/resourceGroups/hogehoge-RG/providers/Microsoft.Network/
"name": "AllowInternetOutBound",
"priority": 65001,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
},
{
"access": "Deny",
"description": "Deny all outbound traffic",
"destinationAddressPrefix": "*",
"destinationPortRange": "*",
"direction": "Outbound",
"etag": "W/\"e7c99659-7e06-44ef-9c49-e6ade0c90e56\"",
"id": "/subscriptions/8d5fb7b6-d8be-4816-a6b6-8e60f85921ae/resourceGroups/hogehoge-RG/providers/Microsoft.Network/
"name": "DenyAllOutBound",
"priority": 65500,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
}
],
"etag": "W/\"e7c99659-7e06-44ef-9c49-e6ade0c90e56\"",
"id": "/subscriptions/8d5fb7b6-d8be-4816-a6b6-8e60f85921ae/resourceGroups/hogehoge-RG/providers/Microsoft.Network/netw
"location": "japaneast",
"name": "hogehoge-NSG",
"networkInterfaces": null,
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"resourceGuid": "f3cda1a1-eeea-462b-8157-5cfd6484cc88",
"securityRules": [],
"subnets": null,
"tags": null,
"type": "Microsoft.Network/networkSecurityGroups"
}
PS C:\Users\defaultuser0>
■10 NSGルールの作成
オプションで指定した内容に従いNSGのルールを作成する。
az network nsg rule create [option]
option---------------------------------------------------------------------------------
--name [name] // ルール名
--nsg-name [NSGNAME] // ルールを作成するNSG名
--priority [100 ~ 4096] // 優先度
--resource-group [RGNAME] // リソースグループ名
--access [Allow/Deny] // アクション
--description [・・・] // 説明
--direction [Inbound/Outbound] // 向き先
--protocol [Any/TCP/UDP] // プロトコル(Any/TCP/UDP)
--destination-address-prefix [xx.xx.xx.xx/xx] // 宛先IP
--destination-port-range [ * or 0~65535] // 宛先ポート範囲(*,0-65535)
--source-address-prefix [xx.xx.xx.xx/xx] // ソースIP
--source-port-range [ * or 0~65535] // 送信元ポート範囲(*,0-65535)
---------------------------------------------------------------------------------------
PS C:\Users\defaultuser0> az network nsg rule create `
>> --name hogerule2 `
>> --nsg-name hogehoge-NSG `
>> --priority 2001 `
>> --resource-group hogehoge-RG `
>> --access allow `
>> --description TESTRuleAllowRDP `
>> --direction Inbound `
>> --protocol TCP `
>> --destination-address-prefix XX.XX.XX.0/24 `
>> --destination-port-range 2456 `
>> --source-address-prefix * `
>> --source-port-range 3565
<略(showコマンド実行結果と同じ内容)>
PS C:\Users\defaultuser0>
■11 NSGルール一覧
特定のNSGに付与されているルールの一覧を表示する
az network nsg rule list [option]
option---------------------------------------------------------------------------------
--name [name] // ルール名
--resource-group [RGNAME] // リソースグループ名
---------------------------------------------------------------------------------
PS C:\Users\defaultuser0> az network nsg rule list `
>> --resource-group hogehoge-RG `
>> --nsg-name hogehoge-NSG -o table
Access Description DestinationAddressPrefix DestinationPortRange Direction Name Priority Protocol ProvisioningState ResourceGroup SourceAddressPrefix SourcePortRange
-------- ---------------- -------------------------- ---------------------- ----------- --------- ---------- ---------- ------------------- --------------- --------------------- -----------------
Allow TESTRuleAllowRDP XX.XX.XX.0/24 2456 Inbound hogerule2 2001 Tcp Succeeded hogehoge-RG * 3565
PS C:\Users\defaultuser0>
■12 サブネットとNSGの関連付け
サブネットにNSGを関連付ける
az network vnet subnet update [option]
option---------------------------------------------------------------------------------
--name [name] // サブネット名
--resource-group [RGNAME] // リソースグループ名
--vnet-name [VNETNAME] // 優先度
--network-security-group [NSGNAME] // 関連付けるNSG名
---------------------------------------------------------------------------------
PS C:\Users\defaultuser0> az network vnet subnet update `
>> --vnet-name hogehoge-VNET `
>> --name hogehoge-SN `
>> --resource-group hogehoge-RG `
>> --network-security-group hogehoge-NSG
{
"addressPrefix": "XX.XX.XX.XX/24",
"etag": "・"・・・\"",
"id": "・・・": null,
"name": "hogehoge-SN",
"networkSecurityGroup": {
"defaultSecurityRules": null,
"etag": null,
"id": "・・・/Microsoft.Network/netwo
"location": null,
"name": null,
"networkInterfaces": null,
"provisioningState": null,
"resourceGroup": "hogehoge-RG",
"resourceGuid": null,
"securityRules": null,
"subnets": null,
"tags": null,
"type": null
},
"privateAccessServices": null,
"provisioningState": "Succeeded",
"resourceGroup": "hogehoge-RG",
"resourceNavigationLinks": null,
"routeTable": null
}
PS C:\Users\defaultuser0>
■13 VMの作成
VMを作成する
az vm create [option]
option----------------------------------------------------------------------------
--name [VMNAME] // 作成するVMの名前
--resource-group [RGNAME] // 所属するリソースグループ
--location [LOCATIONNAME] // 所属するリージョン
--size [VMSIZE] // VMサイズ
--admin-password [PASS] // ログインユーザパスワード
--admin-username [USER] // ログインユーザのアカウント名
--image [IMGFILENAME] // OSイメージファイル
--subnet [SUBNETNAME] // 所属するサブネット名
--vnet-name [VNETNAME] // 所属するVNET名
--public-ip-address [IPADDRESS] // PublicIPの付与(つけない場合はオプションなしもしくは""で指定)
--nics [NICNAME Or ""] // NICの付与(つけない場合はオプションなしもしくは""で指定)
--private-ip-address [IPADDRESS] // PryvateIP(つけない場合はオプションなしもしくは""で指定)
--NSG [NSGNAME Or ""] // NSGの付与(つけない場合はオプションなしもしくは""で指定)
#以下の内容でVMを作成
リージョン:東日本
リソースグループ:hogehoge-RG
サブネット:hogehoge-SN
NSG:hogehoge-NSG
PublicIP:自動割り当て
PrivateIP:自動割り当て
サイズ:Standard_D2_V2
OS:Win2k16DC
PS C:\Users\defaultuser0> az vm create `
>> --name hogehoge-VM `
>> --resource-group hogehoge-RG `
>> --location japaneast `
>> --size Standard_D2_V2 `
>> --admin-password 1p2a3ss4w506rD `
>> --admin-user testuser `
>> --image Win2016Datacenter `
>> --vnet-name hogehoge-VNET `
>> --subnet hogehoge-SN
{\ Finished ..
"fqdns": "",
"id": "/subscriptions/8d5fb7b6-d8be-4816-a6b6-8e60f85921ae/resourceGroups/hogehoge-RG/providers/Microsoft.Compute/virtualMachines/hogehoge-VM",
"location": "japaneast",
"macAddress": "00-0D-3A-51-57-C8",
"powerState": "VM running",
"privateIpAddress": "10.204.1.4",
"publicIpAddress": "13.71.133.176",
"resourceGroup": "hogehoge-RG"
■14 VM一覧
サブスクリプション内に作成されているVMを一覧表示させる
az vm list -o table
Name ResourceGroup Location
------------------ ------------------------------------ ----------
hogehoge-VM HOGEHOGE-RG japaneast
■15 VM詳細
オプションで指定したリソースグループ内のVMの詳細を表示する
az vm show --resource-group [RGNAME] --name [VMNAME]
PS C:\Users\defaultuser0> az vm show --resource-group HOGEHOGE-RG --name hogehoge-VM
{
"availabilitySet": null,
"diagnosticsProfile": null,
"hardwareProfile": {
"vmSize": "Standard_D2_V2"
},
"id": "・・・/virtualMachines/hogehoge-VM",
"identity": null,
"instanceView": null,
"licenseType": null,
"location": "japaneast",
"name": "hogehoge-VM",
"networkProfile": {
"networkInterfaces": [
{
"id": "・・・/hogehoge-VMVMNic",
"primary": null,
"resourceGroup": "hogehoge-RG"
}
]
},
"osProfile": {
"adminPassword": null,
"adminUsername": "testuser",
"computerName": "hogehoge-VM",
"customData": null,
"linuxConfiguration": null,
"secrets": [],
"windowsConfiguration": {
"additionalUnattendContent": null,
"enableAutomaticUpdates": true,
"provisionVmAgent": true,
"timeZone": null,
"winRm": null
}
},
"plan": null,
"provisioningState": "Succeeded",
"resourceGroup": "HOGEHOGE-RG",
"resources": null,
"storageProfile": {
"dataDisks": [],
"imageReference": {
"id": null,
"offer": "WindowsServer",
"publisher": "MicrosoftWindowsServer",
"sku": "2016-Datacenter",
"version": "latest"
},
"osDisk": {
"caching": "ReadWrite",
"createOption": "fromImage",
"diskSizeGb": 127,
"encryptionSettings": null,
"image": null,
"managedDisk": {
"id": "・・・/disks/hogehoge-VM_OsDisk_1_7e7b978bcc164ee0b9f00cb275b06d30",
"resourceGroup": "hogehoge-RG",
"storageAccountType": "Standard_LRS"
},
"name": "hogehoge-VM_OsDisk_1_7e7b978bcc164ee0b9f00cb275b06d30",
"osType": "Windows",
"vhd": null
}
},
"tags": {},
"type": "Microsoft.Compute/virtualMachines",
"vmId": "b13a8f27-7d34-42d0-af80-1a7ee049e381"
}
PS C:\Users\defaultuser0>
■16 全リソースチェック
--リソースグループ別--
az resource list --resource-group [RGNAME] -o table```
--全リソース--
az resource list -o table```
PS C:\Users\defaultuser0> az resource list --resource-group hogehoge-RG -o table
Name ResourceGroup Location Type Status
----------------------------------------------------- ---------------- -------------- ------------------------------------------------ --------
hogehoge-NSG hogehoge-RG japaneast Microsoft.Network/networkSecurityGroups
hogehoge-VM_OsDisk_1_7e7b978bcc164ee0b9f00cb275b06d30 HOGEHOGE-RG japaneast Microsoft.Compute/disks
hogehoge-VM hogehoge-RG japaneast Microsoft.Compute/virtualMachines
hogehoge-VMVMNic hogehoge-RG japaneast Microsoft.Network/networkInterfaces
hogehoge-VMNSG hogehoge-RG japaneast Microsoft.Network/networkSecurityGroups
hogehoge-VMPublicIP hogehoge-RG japaneast Microsoft.Network/publicIPAddresses
hogehoge-VNET hogehoge-RG japaneast Microsoft.Network/virtualNetworks
PS C:\Users\defaultuser0>
終わり
ここまでである程度の確認はできるけどもっと深くってこともできる。。。
JMESPath。。。