3

昼夜を問わず、仮想マシンを以前のスナップショットに戻そうとしています。残念ながら、これを希望どおりに行う方法は見つかりませんでした。

ここに私が試したいくつかのことがありますが、それは合いませんでした:

- 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 を配置して、毎晩再起動できると考えました。

4

1 に答える 1

8

過去に、ESXi ホストの SSH サーバー経由で VM を特定のスナップショットに戻すスクリプトをセットアップしました。sshd を有効にすると、SSH 経由で vim-cmd をリモートで実行できます。これは ESXi 4.x で行われましたが、新しいバージョンでも同じことができると思います。

問題は、VMware KB: kb.vmware.com/kb/1017910に記載されているように、いわゆる「テクニカル サポート モード」を有効にして sshd を実行する必要があったことです。

私が使用した手順は、最初に次のコマンドを実行して問題の 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

注意すべきもう 1 つの点は、ESXi サーバーとスクリプトを実行しているマシンとの間に公開鍵認証を設定できることです。これにより、スクリプトがパスワードを使用する必要がなくなります。

このアプローチの唯一の煩わしさは、再起動間で ESXi サーバーに authorized_keys ファイルを保存する方法がすぐにわからなかったことです。再び動作します。

于 2013-02-04T00:13:48.083 に答える