概要
Azureで1台のVMにNICを2枚挿したかった。
バージョン情報
- azure-cli 2.0.54-1
- Ubuntu 18.04.1 LTS
vmの立ち上げ
まずは適当な名前でVMを生成。
RESOURCE_GROUP=your_resource_group_name $ az vm create \ --resource-group $RESOURCE_GROUP \ --name example-vm \ --image UbuntuLTS \ --generate-ssh-keys \ --output json \ --verbose
生成されたVMにsshしてネットワークインターフェースを確認する。
$ ssh {VM生成時に表示されたip_address} $ ip a
下記が認識されている。
- lo
- eth0
これにeth1を追加したい。
Subnetの生成
NICを繋げるSubnetを作る。既にexample-vmSubnetという名前で自動生成されているが、2枚目は別のSubnetに繋ぐことにする。
現状のSubnetの情報について見ておく。
$ az network vnet subnet list \ --resource-group $RESOURCE_GROUP \ --vnet-name example-vmVNET
"addressPrefix": "10.0.0.0/24" "name": "example-vmSubnet"
ネットワーク自体の範囲は下記のようになっている。
$ az network vnet list \ --output table \ --query '[*].{name:name,addressSpace:addressSpace.addressPrefixes[0]}' Name AddressSpace ---------------- -------------- example-vmVNET 10.0.0.0/16
10.0.0.0/16の範囲に収まって、且つ10.0.0.0/24と重複しないサブネットを生成すれば良さそう。
じゃ、NIC2は10.0.1.0/24にしとけばいいか。
$ az network vnet subnet create \ --address-prefixes "10.0.1.0/24" \ --name example-vmSubnet2 \ --resource-group $RESOURCE_GROUP \ --vnet-name example-vmVNET
createした結果を確認。
$ az network vnet subnet list \ --resource-group $RESOURCE_GROUP \ --vnet-name example-vmVNET \ --query '[*].{name:name,addressPrefix:addressPrefix}' \ --output table Name AddressPrefix ----------------- --------------- example-vmSubnet 10.0.0.0/24 example-vmSubnet2 10.0.1.0/24
よさげ。
NICの生成
続いてNICの生成。
VMをexample-vmで立ち上げたの、NICの名前はexample-vmVMNicで既に1つ生成されているはず。
example-vmVMNic2という名前で2つ目を作る。
最低限の構成として下記の指定で生成できる。subnetには先ほど生成したものと指定しておく。
$ az network nic create \ --name example-vmVMNic2 \ --resource-group $RESOURCE_GROUP \ --vnet-name example-vmVNET \ --subnet example-vmSubnet2
NICをVMに追加
生成したNICをVMに追加する。
VMが起きていると変更ができないのでdeallocateする。
$ az vm deallocate \ --resource-group $RESOURCE_GROUP \ --name example-vm
NICを追加する。
$ az vm nic add \ --nics example-vmVMNic2 \ --resource-group $RESOURCE_GROUP \ --vm-name example-vm
VMを再度立ち上げる。
$ az vm start \ --resource-group $RESOURCE_GROUP \ --name example-vm
立ち上がったVMのIP確認。
$ az network public-ip show \ --resource-group $RESOURCE_GROUP \ --name example-vmPublicIP \ --query '{ipAddress:ipAddress}'
表示されたIPにsshしてネットワークの確認。
$ ssh {ip_address} $ ip a
下記の3つが認識されていれば成功。
1: lo 2: eth0 3: eth1
改定履歴
Author: Masato Watanabe, Date: 2019-03-01, 記事投稿