web-dev-qa-db-ja.com

VirtualBox。マシンの起動とインストーラーの実行をスクリプト化する方法(Windows)

VBoxManageを使用してvirtualBoxでVMを開始および停止できることがわかります。これが必要なツールかどうかはわかりません。

私はそのスクリプトを書こうとしています

  1. VM(Windowsのさまざまなフレーバー)を起動します
  2. カスタムソフトウェア(私の場合はインストーラー)を実行し、この結果を記録します
  3. vMのパワー

私はWebサービスとAPIの存在を知っていますが、ポイント2についてはオンラインで多くを見つけることができませんでした。

私はこれについていくつかの方向性を本当に感謝します。つまり、vboxmanageを使用してVMを起動および停止してから、他の方法でインストーラーを実行する必要がありますか?または、COM APIを使用する必要があります。使用する場合は、手順2の実行方法に関するサンプルのアイデアはありますか?

VirtualBoxにまったく精通していません。しかし、私はコードを書くことができます。

更新:VagrantまたはPuppetを見るべきですか?ご想像のとおり、これはインストーラー用のテストスイートであり、再利用できると便利です。

ありがとう

1
Miau

VMで開始できます

VBoxManage startvm <vm>

で電源を切ります

VBoxManage controlvm <vm> poweroff 

ゲストでコマンドを実行するには、

VBoxManage guestcontrol execute ...

これはコマンドラインプログラムで正常に機能し、出力をホストにリダイレクトできます。ただし、これが通常のWindowsMSIインストーラーパッケージのようなGUIアプリケーションでどの程度うまく機能するかはわかりません。また、「結果の記録」については少しあいまいですが、インストーラーは、VMの電源を切る前にネットワーク共有に送信できるログファイルを書き込みますか?

VMのスナップショットを撮り、後で見ることもできます

3
Peter Hahndorf

はい、あなたが説明したことを正確にスクリプト化することは可能です。伝えられるところでは、Windowsホスト環境からこれを行うことは可能ですが、私の経験では、これらの機能はLinuxでのみ完全に機能します。 (スクリプトはOS Xでも正常に機能しますが、RDP認証を取得できないため、リモートシステムでのスクリプトはあまり面白くありません。)

さまざまなフープジャンプを追加すると、ゲストの追加をリモートで更新したり、ソフトウェアをインストール/削除したり、Powershellスクリプトを実行したり、WUInstallを使用してWindowsを更新したりすることもできます。それは本当にかなり滑らかです。

エリック

1
ericjray