NTNX>日記

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

Nutanix AHV の VM からディスク イメージを作成する。(Python)

Nutanix AHV の VM から、イメージサービスに Disk イメージを登録してみます。前回は Bash スクリプトだったので、今回は Nutanix REST API v2 + Python です。今回も、Nutanix CE は ce-2018.05.01-stable を利用しています。

スクリプトの準備

下記のような Python スクリプトを作成しました。

gist.github.com

Prism へのログイン情報を記載したファイルを用意しておきます。

gist.github.com

スクリプトの実行

今回の環境です。

$ python -V
Python 2.7.5
$ cat /etc/oracle-release
Oracle Linux Server release 7.5

スクリプトを実行します。ログイン情報を記載したファイルと、対象 VM の UUID(これは事前に Prism などから確認)を指定しています。

$ python create_image_from_vm.py ./prism-config.json 8276ddce-4dc0-4b16-9240-9058dc3384d6
---
Create Image: vm03_scsi.0_20181227002044
Task UUID   : b7d055e3-df0a-40f6-97db-9a98d0766465
{
  "image_type": "DISK_IMAGE",
  "name": "vm03_scsi.0_20181227002044",
  "vm_disk_clone_spec": {
    "disk_address": {
      "vmdisk_uuid": "830da3dd-1b6e-4718-a88c-35b9e0f3285a",
      "device_index": 0,
      "device_bus": "scsi"
    }
  }
}
---
Create Image: vm03_scsi.1_20181227002044
Task UUID   : 52b6dfb5-6918-4f8e-9ea2-db03a744ee31
{
  "image_type": "DISK_IMAGE",
  "name": "vm03_scsi.1_20181227002044",
  "vm_disk_clone_spec": {
    "disk_address": {
      "vmdisk_uuid": "2fd1d0e5-923a-4780-87c4-e63a915ac426",
      "device_index": 1,
      "device_bus": "scsi"
    }
  }
}

ディスク イメージが作成されました。今回は SCSI 接続の vDisk が 2つある VM だったので、イメージも 2つ作成されています。

f:id:gowatana:20181227002349p:plain

長いイメージ名だと判別が困難なので、イメージ作成のタイムスタンプが注釈(annotation)に追加されるようにしてみました。vDisk が 1つの VM から 2回イメージ作成をすると、下記のようになります。

f:id:gowatana:20190317123552p:plain

以上。

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