この投稿は、[4枚目]Nutanix Advent Calendar 2019 の 2日目です。
なんだこれ - What's This?
前日は Excel だったので、今日は Text ファイルと bash にしました。
今回のスクリプト
acli-vnic.create.sh
環境
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
実行されるコマンドラインを確認しておきます。
スクリプトのオプションは下記です。
- VM 名リストのテキスト ファイル。空行と「#」のある行は無視される。
- AHV の仮想ネットワーク名。
- 「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 さんです。