LoginSignup
0
0

More than 1 year has passed since last update.

vcsimの小ネタ: vCenterをコピーして再現

Posted at

govcに引き続き、vcsimの小ネタを紹介します。

はじめに

vcsim はシングルバイナリのvCenterシミュレーターで、vCenterを操作するシステム、ツールのテストをローカル環境でも手軽に行えます。

デフォルトでもホスト、分散スイッチ、VM等を作ってくれますが、「運用しているvCenterと全く同じ構成で検証したい」という場面もあると思います。今回は、vCenterの構成を記録してvcsim上で再現する方法を紹介します。

バージョン

$ vcsim version
Build Version: 0.27.4
Build Commit: 285e80cd
Build Date: 2022-02-11T04:56:04Z

$ govc version
govc 0.27.4

環境の再現

govc object.save で記録したリソースをvcsim起動時に読み込むことで再現できます。

vCenterリソースの記録

まずは実際のvCenterのリソースを記録します。

$ govc about
FullName:     VMware vCenter Server 7.0.3 build-18700403
Name:         VMware vCenter Server
Vendor:       VMware, Inc.
Version:      7.0.3
Build:        18700403
OS type:      linux-x64
API type:     VirtualCenter
API version:  7.0.3.0
Product ID:   vpx
UUID:         dbbe889e-ee2f-402b-95ba-aef9308c696f

# 中身確認
$ govc find .
/
/DC0
/DC0/vm
/DC0/host
/DC0/datastore
/DC0/network
/DC0/network/VM Network
/DC0/network/DVS0-DVUplinks-26
/DC0/network/DC0_DVPG0
/DC0/network/DVS0
/DC0/datastore/datastore1
/DC0/host/192.168.1.200
/DC0/host/DC0_C0
/DC0/host/DC0_C0/Resources
/DC0/host/192.168.1.200/Resources
/DC0/host/192.168.1.200/192.168.1.200
/DC0/vm/vCLS
/DC0/vm/myvm
/DC0/vm/VMware vCenter Server

# 記録
$ govc object.save -d my_vcenter
Saved 71 total objects to "my_vcenter", including:
DistributedVirtualPortgroup: 2
Folder: 6
ResourcePool: 2
VirtualMachine: 2

各リソースの情報がxml形式で保存されています。

$ ls my_vcenter
0000-ServiceInstance-ServiceInstance.xml
0001-AlarmManager-AlarmManager.xml
0002-AuthorizationManager-AuthorizationManager.xml
0003-ClusterProfileManager-ClusterProfileManager.xml
...

vcsimで読み込み

先ほど作ったディレクトリを、vcsim起動時に読み込ませます。

$ vcsim -load my_vcenter

実際のvCenterと同じリソースが作成されていることが確認できます。

$ govc about -u https://user:pass@127.0.0.1:8989/sdk
FullName:     VMware vCenter Server 7.0.3 build-18700403
Name:         VMware vCenter Server
Vendor:       VMware, Inc.
Version:      7.0.3
Build:        18700403
OS type:      linux-x64
API type:     VirtualCenter
API version:  7.0.3.0
Product ID:   vpx
UUID:         dbbe889e-ee2f-402b-95ba-aef9308c696f

$  govc find -u https://user:pass@127.0.0.1:8989/sdk
/
/DC0
/DC0/vm
/DC0/vm/myvm
/DC0/vm/VMware vCenter Server
/DC0/vm/vCLS
/DC0/host
/DC0/host/192.168.1.200
/DC0/host/192.168.1.200/192.168.1.200
/DC0/host/192.168.1.200/Resources
/DC0/host/DC0_C0
/DC0/host/DC0_C0/Resources
/DC0/datastore
/DC0/datastore/datastore1
/DC0/network
/DC0/network/VM Network
/DC0/network/DVS0-DVUplinks-26
/DC0/network/DC0_DVPG0
/DC0/network/DVS0

見たところ記録されるのはmoidを持つリソースだけのようなので、タグ等は再現できませんでした。

# vCenter
$ govc tags.ls
my_tag  my_category

# vcsim (なにも表示されない)
$ govc tags.ls -u https://user:pass@127.0.0.1:8989/sdk

おわりに

以上、vcsimでvCenterを再現する方法でした。vCenter操作ツール等を、実際の環境を壊す心配なく検証できるので安心ですね。

vcsimの小ネタもいくつかあるので随時紹介したいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0