我每天都在尝试将虚拟机恢复到以前的快照。
不幸的是,我还没有找到任何方法来按照我想要的方式做到这一点。

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

- 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.

我怎么能简单地做到这一点?我以为我可以做这些事情并在我的 linux VM 上放置一个 cron 来每晚重新启动。

最佳答案

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

问题是我必须启用所谓的“技术支持模式”才能运行 sshd,如 VMware KB 中所述:kb.vmware.com/kb/1017910

我使用的过程是首先通过运行来查找有问题的 VM 的 ID:

vim-cmd vmsvc/getallvms

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

最后,您可以使用 SSH 客户端通过将 VM 和快照 ID 传递给“snapshot.revert”,将 VM 远程恢复为任意快照:
ssh root@YOUR_VMWARE_HOST vim-cmd vmsvc/snapshot.revert VM_ID 0 SNAPSHOT_ID

另一件需要注意的事情是,您可以在 ESXi 服务器和运行脚本的机器之间设置公钥身份验证,这样后者就不必使用密码。

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

关于automation - ESXi 5.1 每天或每晚恢复到快照,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14661954/

10-16 17:13