前書き
2017/2/9現在、Azureの仮想マシンにNICを複数枚セットしようとすると、ポータル画面(ブラウザ)からは設定できず、PowerShellやAzureCLIなどを利用して仮想マシンを作成する必要があります。
今回は、Azure CLIを利用したNIC2枚刺しの仮想マシン作成を行います。
前提条件
・現在の最新イメージとなるCentOS7.3をインストールします。
・Azure CLIを利用できる環境が準備されていることを前提とします。
・ロケーションは、”japaneast”(東日本)とします。
・仮想マシン作成後のSSHログインは、パスワードによる認証方式で作成しています。
・IPアドレスは、パブリックIPアドレスも使用して固定化します。
準備
1.PowerShell、もしくはコマンドプロンプトを開いて、Azureにログインしましょう。
(管理者権限で実行してください)
# azure login -u <アカウント名>
パスワードを入力してログインしてください。
2.サブスクリプションをセットします。サブスクリプションが複数ある場合には、既定のサブスクリプションを確認してください。
<確認> # azure account list ★ Current 列がtrue になっているものが選択されたサブスクリプションになります。
<設定> # azure account set <サブスクリプション名>
いざ!仮想マシン作成
3.リソースグループを作成します。(ポータルから作成してもOKです)
# azure group create <リソースグループ名> --location "<場所>"
sample)azure group create test_group --location "japaneast"
4.ストレージアカウントを作成します。仮想ディスクを保持します。
# azure storage account create <ストレージアカウント名> --resource-group <リソースグループ名> --location "<場所>" --kind Storage --sku-name PLRS`
<>に囲まれた部分以外は、決め打ちで問題ないです。
ストレージアカウント名は、英数字のみです。(記号はOUT)
sample) # azure storage account create storageadmin --resource-group test_group --location "japaneast" --kind Storage --sku-name PLRS
5.仮想ネットワークを作成します。
# azure network vnet create -g <リソースグループ名> -l <場所> -n <仮想ネットワーク名> -d -a <ネットワークアドレス/マスク>
sample) # azure network vnet create -g test_group -l japaneast -n test_vnet -d -a 10.1.0.0/16
なぜか、ロケーションは””で囲まれなくなりました。-l 恐るべし
-d の後ろは、既定値を利用するため、何も指定する必要ありません。
-d をつけないと「Cannot read property 'dnsSErvers' of undefined」となり、エラーになります。
6.サブネットを2つ用意します。
# azure network vnet subnet create -g <リソースグループ名> -e <仮想ネットワーク名> -n <サブネット名> -a <ネットワークアドレス/マスク>
sample) # azure network vnet subnet create -g test_group -e test_vnet -n front_subnw -a 10.1.1.0/24
sample) # azure network vnet subnet create -g test_group -e test_vnet -n back_subnw -a 10.1.2.0/24
7.仮想NICを作成して、6.で作成したサブネットにアタッチします。
# azure network nic create -g <リソースグループ名> -l <場所> -n <仮想NIC名> -m <仮想ネットワーク名> -k <サブネット名>
sample) `# azure network nic create -g test_group -l japaneast -n testNIC1 -m test_vnet -k front_subnw`
sample) `# azure network nic create -g test_group -l japaneast -n testNIC2 -m test_vnet -k back_subnw`
8.パブリックIPアドレスを予約します。
# azure network public-ip create -g <リソースグループ名> -n <予約IPアドレス名> -l <場所>
sample) # azure network public-ip create -g test_group -n nicw_ip -l japaneast
9.仮想マシンの作成
# azure vm create --resource-group <リソースグループ名> --name <仮想マシン名> --location <場所> --os-type <OSタイプ> --nic-names <1つ目の仮想NIC名>,<2つ目の仮想NIC名> --public-ip-name <パブリックIP名> --vm-size <マシンタイプ> --storage-account-name <ストレージアカウント名> --image-urn <イメージURL> --admin-username <OS管理者名>
※ 管理者パスワードの入力を2回求められます。
※ パスワードルールを守らないと次のエラーメッセージでエラーとなります。
error: Parameter adminPassword must be at least 8 character in length, it must contain a lower case, an upper case, a number and a special character such as !@#$%^&+=
※ 仮想マシン名は、文字数字のみで、記号はOUTです。エラーになります。
****** is not a valid storage account name. Storage account name must be between 3 and 24 characters in length and use numbers and lower-case letters only.
sample) # azure vm create --resource-group test_group --name testvm --location japaneast --os-type linux --nic-names testNIC1,testNIC2 --public-ip-name nicw_ip --vm-size Standard_DS2_v2 --storage-account-name storageadmin --image-urn openlogic:CentOS:7.3:7.3.20161221 --admin-username testadmin
※ --image-urn は、# azure vm image list
にて確認できます。
あとがき
変数化しないと大変ですね。
PowerShellの方がいいかもしれません。
次回、PowerShell版作成します。
参考URL