pyvmomiでGuestOSのファイル操作をするツールを作ってみた


ネットワークが繋がっていなかったり、接続に限りがある状態で対象仮想マシンに対してファイルのアップロードやダウンロードが出来ないか確認したところ fileManager を使って出来たのでツールを作ってみました。

vmware-guest-file-operation

https://github.com/sky-joker/vmware-guest-file-operation

使い方

ファイルをダウンロード

centos という仮想マシン内にある output.txt というファイルをダウンロードして hoge.txt というファイル名で保存した時の例です。

ファイルが保存されたか確認します。

ファイルをアップロード

centos という仮想マシン内へ requirements.txt をアップロードして /root/requirements として保存した時の例です。

アップロードしたファイルが保存されたか確認します。

仕組み

fileManager オブジェクトの InitiateFileTransferFromGuest(ファイルをdownload) または InitiateFileTransferToGuest(ファイルをupload) メソッドに仮想マシンのオブジェクトやGuestOSの認証情報、ファイル情報を渡すとアクセス可能なURLを発行してくれます。
URLはvCenterのもので、やりとりするファイルはvCenter経由で行われます。
vCenter内ではGuestOSのVMware toolsと連携してファイルのやりとりが行われます。
ここでは、発行されたURLに対して requestsgetput をしてファイルのやりとりをしています。
そのため、大量に処理をするとvCenterに負荷がかかることが懸念されます。

最後に

今まで、ネットワークが繋がっていない構築中・検証環境の仮想マシンにフィアルのアップロードしたりするのが面倒でしたがひとまずこれで対応できそう 🙂
PowerCLIだと、Windows用意しなくてはいけなかったけどpythonで実装できたからLinuxでも大丈夫になった 🙂

Leave a Reply

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