NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

acli で vNIC 追加自動化くん。(Test / Bash 編)

この投稿は、[4枚目]Nutanix Advent Calendar 2019 の 2日目です。

なんだこれ - What's This?

前日は Excel だったので、今日は Text ファイルと bash にしました。

今回のスクリプト

acli-vnic.create.sh

gist.github.com

環境

Nutanix CE ce-2019.02.11-stable です。

CVM$ ncli cluster version

    Cluster Version           : ce-2019.02.11-stable
    Changeset ID              : d42f99
    Changeset Date            : 2019-02-11 19:27:33 -0800

    ncli Version              : ce-2019.02.11-stable
    Changeset ID              : d42f99
    Changeset Date            : 2019-02-11 19:27:33 -0800

vNIC 作成時に指定する AHV の仮想ネットワークは、作成ずみです。

CVM$ acli net.list
Network name  Network UUID                          Type      Identifier  Subnet
pvs-stream    6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  kBridged  100
vlan-0        43b5a979-2ff1-42bb-aca6-eda452f29ccd  kBridged  0

検証環境の準備

Citrix 環境が自宅にないため、似た構成の VM を作成しました。

CVM に SSH でログインして、下記のようなコマンドラインで VM を作成します。

CVM$ for n in {01..50}; do echo acli vm.create gowatana-CitrixPVS$n; done
acli vm.create gowatana-CitrixPVS01
acli vm.create gowatana-CitrixPVS02
acli vm.create gowatana-CitrixPVS03
acli vm.create gowatana-CitrixPVS04
acli vm.create gowatana-CitrixPVS05
... 省略
acli vm.create gowatana-CitrixPVS48
acli vm.create gowatana-CitrixPVS49
acli vm.create gowatana-CitrixPVS50

VM を作成します。

CVM$ for n in {01..50}; do acli vm.create gowatana-CitrixPVS$n; done
gowatana-CitrixPVS01: pending
gowatana-CitrixPVS01: complete
gowatana-CitrixPVS02: pending
gowatana-CitrixPVS02: complete
gowatana-CitrixPVS03: pending
gowatana-CitrixPVS03: complete
gowatana-CitrixPVS04: pending
gowatana-CitrixPVS04: complete
gowatana-CitrixPVS05: pending
gowatana-CitrixPVS05: complete
... 省略
gowatana-CitrixPVS48: pending
gowatana-CitrixPVS48: complete
gowatana-CitrixPVS49: pending
gowatana-CitrixPVS49: complete
gowatana-CitrixPVS50: pending
gowatana-CitrixPVS50: complete

vNIC#1 を作成します。

CVM$ for n in {01..50}; do acli vm.nic_create gowatana-CitrixPVS$n network=vlan-0; done
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
... 省略
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete

スクリプトの実行

vNIC#2 を追加する VM のリストファイルを作成します。

cat << EOF > /tmp/vm_list_pvs-stream.txt
# VM List
gowatana-CitrixPVS26
gowatana-CitrixPVS27
gowatana-CitrixPVS28
gowatana-CitrixPVS29
gowatana-CitrixPVS30
gowatana-CitrixPVS31
gowatana-CitrixPVS32
gowatana-CitrixPVS33
gowatana-CitrixPVS34
gowatana-CitrixPVS35
gowatana-CitrixPVS36
gowatana-CitrixPVS37
gowatana-CitrixPVS38
gowatana-CitrixPVS39
gowatana-CitrixPVS40
gowatana-CitrixPVS41
gowatana-CitrixPVS42
gowatana-CitrixPVS43
gowatana-CitrixPVS44
gowatana-CitrixPVS45
gowatana-CitrixPVS46
gowatana-CitrixPVS47
gowatana-CitrixPVS48
gowatana-CitrixPVS49
gowatana-CitrixPVS50
EOF

スクリプトを curl でダウンロードします。

CVM$ curl -o /tmp/acli-vnic.create.sh https://gist.githubusercontent.com/gowatana/1862de67dd3620bcdbb84a52c7becaba/raw/acli-vnic.create.sh

実行されるコマンドラインを確認しておきます。
スクリプトのオプションは下記です。

  1. VM 名リストのテキスト ファイル。空行と「#」のある行は無視される。
  2. AHV の仮想ネットワーク名。
  3. 「print」。実際は、なにか文字列を指定すると acli コマンド表示するだけになる。
CVM$ bash /tmp/acli-vnic.create.sh /tmp/vm_list_pvs-stream.txt pvs-stream print
---
Create vNIC: gowatana-CitrixPVS26 Sun Dec  1 04:19:32 UTC 2019
acli vm.nic_create gowatana-CitrixPVS26 network=pvs-stream
---
Create vNIC: gowatana-CitrixPVS27 Sun Dec  1 04:19:32 UTC 2019
acli vm.nic_create gowatana-CitrixPVS27 network=pvs-stream
---
Create vNIC: gowatana-CitrixPVS28 Sun Dec  1 04:19:32 UTC 2019
acli vm.nic_create gowatana-CitrixPVS28 network=pvs-stream

... 省略

---
Create vNIC: gowatana-CitrixPVS47 Sun Dec  1 04:19:32 UTC 2019
acli vm.nic_create gowatana-CitrixPVS47 network=pvs-stream
---
Create vNIC: gowatana-CitrixPVS48 Sun Dec  1 04:19:32 UTC 2019
acli vm.nic_create gowatana-CitrixPVS48 network=pvs-stream
---
Create vNIC: gowatana-CitrixPVS49 Sun Dec  1 04:19:32 UTC 2019
acli vm.nic_create gowatana-CitrixPVS49 network=pvs-stream
---
Create vNIC: gowatana-CitrixPVS50 Sun Dec  1 04:19:32 UTC 2019
acli vm.nic_create gowatana-CitrixPVS50 network=pvs-stream

実際に vNIC#2 を作成します。

CVM$ bash /tmp/acli-vnic.create.sh /tmp/vm_list_pvs-stream.txt pvs-stream
---
Create vNIC: gowatana-CitrixPVS26 Sun Dec  1 04:19:58 UTC 2019
NicCreate: pending
NicCreate: complete
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:d8:4a:83              43b5a979-2ff1-42bb-aca6-eda452f29ccd  vlan-0
50:6b:8d:fc:43:6f              6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  pvs-stream
---
Create vNIC: gowatana-CitrixPVS27 Sun Dec  1 04:19:59 UTC 2019
NicCreate: pending
NicCreate: complete
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:4e:4f:3b              43b5a979-2ff1-42bb-aca6-eda452f29ccd  vlan-0
50:6b:8d:e0:e8:18              6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  pvs-stream
---
Create vNIC: gowatana-CitrixPVS28 Sun Dec  1 04:20:00 UTC 2019
NicCreate: pending
NicCreate: complete
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:b4:30:70              43b5a979-2ff1-42bb-aca6-eda452f29ccd  vlan-0
50:6b:8d:ff:c2:54              6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  pvs-stream

... 省略

---
Create vNIC: gowatana-CitrixPVS47 Sun Dec  1 04:20:29 UTC 2019
NicCreate: pending
NicCreate: complete
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:f7:a4:07              43b5a979-2ff1-42bb-aca6-eda452f29ccd  vlan-0
50:6b:8d:4f:30:70              6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  pvs-stream
---
Create vNIC: gowatana-CitrixPVS48 Sun Dec  1 04:20:30 UTC 2019
NicCreate: pending
NicCreate: complete
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:97:a0:a9              43b5a979-2ff1-42bb-aca6-eda452f29ccd  vlan-0
50:6b:8d:bd:e0:b9              6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  pvs-stream
---
Create vNIC: gowatana-CitrixPVS49 Sun Dec  1 04:20:31 UTC 2019
NicCreate: pending
NicCreate: complete
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:74:9f:86              43b5a979-2ff1-42bb-aca6-eda452f29ccd  vlan-0
50:6b:8d:41:0f:0d              6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  pvs-stream
---
Create vNIC: gowatana-CitrixPVS50 Sun Dec  1 04:20:33 UTC 2019
NicCreate: pending
NicCreate: complete
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:02:7e:59              43b5a979-2ff1-42bb-aca6-eda452f29ccd  vlan-0
50:6b:8d:46:23:73              6a31eaba-bbec-4ca8-80ee-dcfc0a09ec49  pvs-stream

以上。

明日の [4枚目]Nutanix Advent Calendar 2019 Advent Calendar 2019 - Adventar は interto さんです。

©2019 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。