概要
環境
- macOS 10.14.4
- golang 1.11.5
- Ruby 2.6.2p47
vcsim インストール
go get -u github.com/vmware/govmomi/vcsim
govc
がない場合は動作確認で使うのでインストールしておきましょう
go get -u github.com/vmware/govmomi/govc
vcsim 起動
$GOPATH/bin
には PATH
を通しているものとします
vcsim
これで localhost:8989
で起動します
環境変数
govc
を使って動作確認してみます
vcsim
を起動すると環境変数を設定するように言われるので素直に設定します
export GOVC_URL=https://user:pass@127.0.0.1:8989/sdk GOVC_SIM_PID=62667 GOVC_INSECURE=1
GOVC_INSECURE=1
を忘れずに入れましょう
動作確認
まずは govc
を使って確認してみます
リソースの一覧を表示
govc find
vCenter の情報を表示
govc about
VM の一覧を取得
govc find vm
govc find . -type m
VM の詳細を取得
govc vm.info DC0_H0_VM0
VM のシャットダウン
govc vm.power -off DC0_H0_VM0
ちなみに -on
で VM を起動できます
VM の設定変更
govc vm.change -vm DC0_H0_VM0 -name=DC0_H0_VM2
ホストの一覧を取得
govc find . -type h
その他 govc
の使い方はこちらを参照してください
rbvmomi で動作確認
せっかくなので Ruby からも動作確認してみました
bundle init
vim Gemfile
gem "rbvmomi"
bundle install --path vendor
vim app.rb
require 'rbvmomi'
vim = RbVmomi::VIM.connect(
host: 'localhost',
port: '8989',
user: 'user',
password: 'pass',
insecure: 'true'
)
# List vms
dc = vim.serviceInstance.find_datacenter('DC0') || fail('datacenter not found')
dc.vmFolder.childEntity.grep(RbVmomi::VIM::VirtualMachine).find do |x|
puts x.name
end
# Search a vm
vm = dc.find_vm('DC0_H0_VM0') || fail('VM not found')
# ReconfigVM_Task
# pp vm.config
spec = {}
spec['name'] = 'DC0_H0_VM2'
ret = vm.ReconfigVM_Task(spec: spec).wait_for_completion
bundle exec ruby app.rb
という感じで使えます
Tips 使える関数の一覧
curl -sk https://user:pass@127.0.0.1:8989/about
で vcsim
で使える SOAP API の一覧が確認できます
さすがにすべての API をサポートしているわけではなさそうです
最後に
vcsim を使ってみました
vCenter 環境を簡単に構築できない場合に便利かなと思います
govmomi
のレポジトリで管理されているので p-r などは govmomi
自体に送ることになります
0 件のコメント:
コメントを投稿