NTNX>日記

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

Nutanix AHV に手軽に Linux VM を用意する。(REST API & Python3)

このブログで 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

f:id:gowatana:20200830145408p:plain

ネットワークの準備

Prism で、AOS による IP アドレス管理(IPAM)を有効にしたネットワークを作成しておきます。

今回は、nw-vlan-6-ipam という名前のネットワークを作成ずみです。

f:id:gowatana:20200830145517p:plain

nw-vlan-6-ipam ネットワークでは、「IP アドレス管理を可能にする」を有効にしてあり、DHCP むけのネットワーク設定がされています。

f:id:gowatana:20200830145714p:plain

そして、IP アドレス プールを作成してあります。

f:id:gowatana:20200830150110p:plain

cloud-init スクリプトの作成

今回は、cloud-init による「Custom Script」で、Python3 や requests モジュールをインストールしてみます。(CentOS 7 はデフォルトだと Python 2 なので)

スクリプトは下記のような内容で作成しておきます。

  • ユーザ nutanix を作成。パスワード「nutanix/4u」でログイン可能で、sudo でコマンド実行可能。
  • このブログでのサンプル実行に必要になりそうな、RPM(git、unzip、python3 など)と、Python モジュール(requests) をインストール。

gist.github.com

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」をクリックします。

f:id:gowatana:20200830151708p:plain

作成された 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

以上。

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