このブログで Python での Nutanix REST API を投稿しているので、その Python 実行環境の準備方法も紹介しておきます。
環境は下記です。
- Nutanix CE: ce-2019.11.22-stable
- Linux: CentOS 7
- Python: Python 3.6.8 ※CentOS 7 の Yum リポジトリにあるもの。
前提環境の準備
OS イメージの準備
CentOS 7 の Cloud Image を利用します。
https://cloud.centos.org/centos/7/images/
今回は、CentOS-7-x86_64-GenericCloud-2003.qcow2 を使用しています。Nutainx AOS のイメージ サービスに登録しておきます。
- 名前: CentOS-7-x86_64-GenericCloud-2003
- 種類: DISK
ネットワークの準備
Prism で、AOS による IP アドレス管理(IPAM)を有効にしたネットワークを作成しておきます。
今回は、nw-vlan-6-ipam という名前のネットワークを作成ずみです。
nw-vlan-6-ipam ネットワークでは、「IP アドレス管理を可能にする」を有効にしてあり、DHCP むけのネットワーク設定がされています。
そして、IP アドレス プールを作成してあります。
cloud-init スクリプトの作成
今回は、cloud-init による「Custom Script」で、Python3 や requests モジュールをインストールしてみます。(CentOS 7 はデフォルトだと Python 2 なので)
スクリプトは下記のような内容で作成しておきます。
- ユーザ nutanix を作成。パスワード「nutanix/4u」でログイン可能で、sudo でコマンド実行可能。
- このブログでのサンプル実行に必要になりそうな、RPM(git、unzip、python3 など)と、Python モジュール(requests) をインストール。
VM の作成(Prism の場合)
Prism の「仮想マシン」メニューにある「仮想マシンを作成」をクリックして、下記を入力しつつ、画面を下にスクロールしていきます。
Name: VM の名前。ここでは vm05
- vCPU(s): 1
- Memory: 1 GiB
Disks では、「Add New Disk」をクリックして下記を追加します。翻訳の具合により、「イメージ」は「画像」と表示されています。
- オペレーション:「画像サービスからクローン」を選択。
- 画像: CentOS-7-x86_64-GenericCloud-2003
「Network Adapters (NIC)」では、「Add New NIC」をクリックして、あらかじめ作成しておいたネットワーク「nw-vlan-6-ipam」を追加します。
画面の最後にある「Custom Script」のチェックをオンにして「Type Or Paste Script」を選択して、下記のように cloud-init のスクリプトを貼り付けてから、「Save」をクリックします。
作成された VM をパワーオンして少し待つと、DHCP によって IP アドレスが自動設定され、nutanix ユーザで SSH ログインできるようになります。
VM の作成(acli の場合)
Prism と同様の VM 作成は、acli でも実施できます。CVM に SSH でログインして、下記のようなコマンドラインを実行します。
$ VMNAME=vm06 $ acli uhura.vm.create_with_customize $VMNAME num_vcpus=1 memory=1G cloudinit_userdata_path=https://gist.githubusercontent.com/gowatana/8476cd2e570f8f1bd9f3d3cd7b94dc24/raw/python3-vm.yml $ acli vm.disk_create $VMNAME clone_from_image=CentOS-7-x86_64-GenericCloud-2003 $ acli vm.nic_create $VMNAME network=vlan-6-ipam $ acli vm.on $VMNAME
以上。