理系学生日記

おまえはいつまで学生気分なのか

Vagrantで作ったVMをWindowsでサービス化したい(ただしプロバイダはVirtualBox限定)

Vagrant で作成した VM を作成したは良いけど、それを Windows でサービスとして動かしたいみたいなことになったときに果たしてワシはどうしたらええんや…という話があった。

Java エンジニアが多い件だったので、Daemon – Daemon : Java based daemons or services でサービスでも作るかなとも思ったのだけれど、VBoxVmService という良さげなフリーソフト見つけたので、これを導入したらサービス化できた。 サービス化したことで何ができるようになったかというと、普通 Windows だとユーザがログインしないと VM 動かせないみたいなかんじのところ、PC をパワーオンしたら勝手に VM が起動されて、その VM の中で動作するデーモンとかに外部からアクセスできるようになる。

それで VBoxVmService についてですけど、VBox という名前の通り、VirtualBox にしか使えないっぽい。なので、Vagrant のプロバイダとして Virtual Box を使っていることが前提になる。 VBoxVmService をダウンロードしたら、なんか VBoxVmService.ini っていうファイルができるので、その ini ファイルの中の VBOX_USER_HOME とか、VmName とかを自分の環境に合うように書き換える。その後、コマンドプロンプトで

|cmd| VmServiceControl.exe -i ||< ってやったら Windows 上でサービスが構成されるので、あとは OS 再起動したら、バックグラウンドで勝手に VM が立ち上がって、やりたいことが実現される感じになります。便利。