ESXi 5.1每天或每晚都恢复为快照

mim*_*ipc 3 automation snapshot esxi revert

我正在尝试将虚拟机每天或晚上恢复到以前的快照.不幸的是,我没有找到任何方法以我想要的方式这样做.

以下是我尝试过但不适合的一些事情:

- snapshot.action=autoRevert --> The VM has to HALT, REBOOT doesn't work the same. I don't want to power on my VM manually.

- snapshot.action=autoRevert on a running snapshot. I tried this, thinking it might work and resolve the first issue. But when i HALT my VM, the snapshot is reverted but the VM is placed in a suspended state...

- PowerCLI script : I don't want to have a Windows machine running just for this little thing.

- NonPersistent disk : same thing as the first issue : VM needs to HALT, not REBOOT.
Run Code Online (Sandbox Code Playgroud)

我怎么能这么做呢?我以为我可以做那些事情并在我的linux VM上放置一个cron来重启每晚.

Bil*_*gee 8

过去,我已经设置了脚本,可以通过ESXi主机上的SSH服务器将VM恢复为特定的快照.启用sshd后,您可以通过SSH远程运行vim-cmd.这是在ESXi 4.x上,但我认为在较新版本中也可以这样做.

问题在于我必须启用所谓的"技术支持模式"来运行sshd,如VMware KB中所述:kb.vmware.com/kb/1017910

我使用的过程是首先运行以下命令查找有问题的VM的ID:

vim-cmd vmsvc/getallvms
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过将其ID传递给此命令来查看VM的快照树(此示例使用ID为80的VM):

vim-cmd vmsvc/get.snapshotinfo 80
Run Code Online (Sandbox Code Playgroud)

最后,您可以使用SSH客户端通过将VM和快照ID传递给'snapshot.revert'来远程将VM还原为任意快照:

ssh root@YOUR_VMWARE_HOST vim-cmd vmsvc/snapshot.revert VM_ID 0 SNAPSHOT_ID
Run Code Online (Sandbox Code Playgroud)

另外需要注意的是,您可以在ESXi服务器和运行脚本的计算机之间设置公钥认证,以便后者不必使用密码.

这种方法的唯一烦恼是我没有立即看到在重新启动之间保留ESXi服务器上的authorized_keys文件的方法 - 如果必须重新启动ESXi服务器,则必须在公钥验证之前重建其authorized_keys文件会再次运作.