VMware vSphere Automation SDK for Pythonの簡単な備忘録


VMware vSphere Automation SDK for Pythonを軽く触ったので備忘録でメモっておきます。

環境

項目 バージョン
CentOS 7.5.1804
Python 3.6.8
vCenter 6.7.0

VMware vSphere Automation SDK for Python

REST APIを使ってオンプレvCenterやNSX、VMC(VMware Cloud on AWS)を操作するサンプルなどがまとめられたリポジトリです。
提供されているSDKは lib にあります。

これを使って、今回はオンプレVCSAに簡単な操作をやってみます。

SDKのインストール

SDKをvenv環境にインストールします。

ざっくりと出来ること

vCenterへアクセスする時に生成される vcenter_client オブジェクトは以下のような事が出来ます。

venv/lib/python3.6/site-packages/com/vmware/vcenter_client.py を元に一覧を以下に出してみました。

classの中にあるclassはそれぞれのクラスメソッドの引数で必要になったオブジェクトを生成するのに必要なものです。
VMのメソッドを見てみると create 出来たり clone 出来たり list で一覧を取得したりできるようなのでVMの一覧を取得してみます。

VM一覧取得

次のコードを作成します。

create_vmc_client はVMC用のクライアントです。
一応、そういうのがあるよという程度でコメントアウトで書いておきます。
vcenter_hostname などは書き換えてください。

これを実行するとVM一覧が取得できます。

VM一覧取得(フィルター編)

listで何も引数が無いとVM一覧(最大で4000)が取得できます。
次にフィルターを設定してみます。

フィルターを設定する場合は VM.FilterSpec を生成する必要があります。

こんな感じです。

これを実行すると vm_name で指定したVM情報のサマリーが取得できます。

VMの詳細情報を取得

VMの詳細情報を取得する場合は VM.get を使用します。

こんな感じです。

これを実行すると vm_name で指定したVM情報の詳細が取得できます。

VMの電源操作(VMに対しての操作について)

VMの情報を取得したり作ったりは vcenter_client で出来ることが分かりました。
例えばVMの電源操作をしたい場合は vm_clientPower メソッドを使います。

こんな感じです。

vsphere_client.vcenter.VM の場合は vcenter_client のメソッドが使えますが vm_client のメソッドを使う場合は vsphere_client.vcenter.vm とVMを小文字にします。
これを実行すると対象のVMがリセットされます。

venv/lib/python3.6/site-packages/com/vmware/vcenter/vm_client.py を元に一覧を見てみます。

他にもハードウェア情報やToolsの情報取得やアップデートができるようです。

今回はVMを例にしてみましたが、他のオブジェクトを操作する時も同じようにやればよさそうです。

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください