これ書いたの2年前。
PowerCLIとかperlとかいろいろありげにゃんだが、コンソールで動かす必要があるにゃらpythonベースがよくね?とかいういい加減にゃ感触でpyvisdk。よく考えたらリモートから叩くにゃら何でも良かったのだが。
とりあえずそこいらのLinuxにinst。
sudo aptitude install python-setuptools python2.6-dev
sudo easy_install setuptools_git
wget https://github.com/xuru/pyvisdk/tarball/master
python ./bootstrap.py
./bin/buildout
sudo python setup.py install
sudo easy_install importlib
こう・・・かぁ?
にゃんかエラーに随時対処するとこうにゃったんだがにゃんかもっとeasyにinstできる気がする(笑)
で
import pyvisdk
vim = pyvisdk.new()
vms = vim.getVirtualMachines()
for vm in vms:
print vm.name
にゃ.pyを作って、
python a.py --server HOSTNAME --username root --password PASS
すれば動くよ!ってことにゃんだが、またいろいろとハマり所が。
まずUTF-8。どこに含まれてるのかよく分からんが落ちる。
import sys
print sys.getdefaultencoding()
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()
import site
を先頭に追加して
python -S a.py --server HOSTNAME --username root --password PASS
すればとりあえず動く。
例としては、コンソールからの書き換えが難しいvmの注釈の変更とかが、
import pyvisdk
from pyvisdk.do import *
vim = pyvisdk.new()
vm = vim.getVirtualMachine("vm name")
spec = VirtualMachineConfigSpec(vim,annotation="abc")
vm.ReconfigVM_Task(spec)
こんにゃんでできる。
調子の怪しい、時々readに異様に時間のかかる部分のあるSAS HDDを、RAID1にゃら大丈夫だろうと一時利用してたのだが、置いたファイルを読もうとしたら失敗する。
chkdsk /rすると
ステージ 4: ユーザー ファイル データの不良クラスターを検査しています ...
A disk read error occurredc0000010
といったエラーが出るがそのまま終了し、fixされにゃい。
どこをどういう処理してるのかわからにゃいが全然RAID1が役立ってにゃい。
一応そこいらのLSI RAID板にゃんだが、エラーも出てにゃいし、こういう壊れ方もあるのかーという。
今更だが最近いろいろとローカルPC以外で動いてるソフトの画面ばっかり触ってるので。
RDPの鯖側で
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList" /v fDisabledAllowList /t REG_DWORD /d 1 /f
しておいて
.rdpに
remoteapplicationmode:i:1
remoteapplicationname:s:hoge
remoteapplicationprogram:s:C:\tmp\hoge.exe
等と記載して接続すると、RemoteAPPとして動いてくれる。Xと同じようにゃ感覚。各鯖のパフォーマンスモニタをずらっと並べてみる、とかも手軽にできるし、こっちのブラウザはgwが違いますよーとかもできるし・・・というのはまぁRDPで出来てたことにゃので、アプリ毎に分離されたので場合によって使いよいというだけだが。
一部の動画サイトとかを除けばブラウザ等の外部接続環境は全部これでやったらいいんじゃにゃいかしら。
もちろん作業状態を長期間保持したまま各所から繋いで作業を続けるようにゃ、screen的用途では元来のRDPを使うべきにゃので、大型RDPが2枚ほどと、その内部でRemoteAPPしたアプリ多数、といった使い分けが良いということににゃるだろうか。