VMware Fusionのヘッドレス運用

Snow Leopard Server (Mac OS X 10.6 Server) 上でVMware Fusionを使って、Cent OSをヘッドレスで運用できるように設定してみました。公式にはサポートされていない方法だと思われるのですが、備忘録がわりにまとめます。

マシン : Mac mini サーバーモデル
メモリ : 4GB
HDD : 500GB * 2 (RAID 1運用)
OS : Mac OS X Server 10.6.6
Guest OS : Cent OS 5.5 64bit
ヘッドレス運用でログインしないでも、仮想PC上のCent OSが動作して、Cent OS上のサービスが動くように設定するのが目的です。
まず、普通にVMware上にCent OSをインストールします。特別なことは特にしません。VMware Toolsもインストールします。次に、仮想PCをサスペンドします。
VMwareには、コマンドラインから仮想PCを動かしたりサスペンドしたりすることができる「vmrun」というプログラムが付属しています。このプログラムは、「/Library/Application Support/VMware Fusion」ディレクトリにインストールされます。
ヘッドレスで、仮想PCを動かすには、次のコマンドがマシン起動時に動くようにします。

vmrun -T fusion start 仮想PCのvmxファイルへのパス nogui 

vmxファイルは、Mac上では普通には表示されませんが、仮想PCのファイルを右クリックして、コンテキストメニューから「パッケージの内容を表示」を選択すると表示されます。
このコマンドをマシン起動時に動くようにするため、「/Library/Launch Daemons」ディレクトリに、「private.myserver.plist」などの名前でファイルを作成し、次の内容を入力します。
— ここから —

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>private.myserver </string>
<key>ProgramArguments</key>
<array>
<string>/Library/Application Support/VMware Fusion/vmrun</string>
<string>-T</string>
<string>fusion</string>
<string>start</string>
<string>仮想PCのvmxファイルへのパス</string>
<string>nogui</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>admin</string>
</dict>
</plist>

— ここまで —
次に、ターミナルで次のように入力して、ファイルの所有者とグループを変更します。

sudo chown root:wheel /Library/LaunchDaemons/private.myserver.plist

ファイル名やPlistファイルの中の「Label」の値は、適時環境に合わせて変更してください。
後は、再起動すればログインしないでもVMwareが実行されて仮想PCが動作します。動いているかどうかは、仮想PC上のサーバーにsshなどで接続して試してください。
あと、一つ注意点があります。VMwareを実行しているサーバーをシャットダウンするときは、必ず、その前に仮想PCをサスペンドするか、シャットダウンしてください。そのまま、VMwareを実行しているサーバーをシャットダウンすると、仮想PCが強制的に電源を切られた状態になります。Tomcat上で動いているプログラムの場合、pidファイルが残ってしまい、起動しなくなります。(もちろん、pidファイルを消せば起動します)
私の場合は、忘れやすいので、スティッキーズで大きく、デスクトップに「仮想PCをサスペンドすること」と書いておいています。
UPDATE
signal.suspendOnHUPという設定とsignal.powerOffOnTERMという設定を使えばシャットダウン時に安全に仮想PCがシャットダウンするようになるようですが、まだ、検証していません。

投稿者プロフィール

林 晃
林 晃アプリ開発者
アールケー開発代表。Appleプラットフォーム向けのアプリ開発が好きなアプリ開発者。アプリの受託開発、技術書執筆、技術指導・セミナー講師。3DCGコンテンツ作成にも取組中です。

基礎から学ぶARKit


「基礎から学ぶARKit」を執筆しました。本書はARKitを使ったARアプリの開発方法を解説した技術書です。

ARKitを使ってARアプリを作るときの流れや基本的なAPIの使い方などをサンプルアプリを作りながら学べます。

詳細

基礎から学ぶMetal


「基礎から学ぶMetal」を執筆しました。本書はMetalを使ってGPUプログラミングを行うための最初のステップを解説するMetalの解説書です。

私が初めてGPUプログラミングを行ったとき、どこから手をつけて、学んでいけば良いのか分からず呆然としました。もし、あのとき、これを教えてくれればという部分を解説しました。本書で解説している部分はMetalの基礎となる部分で、Metalを使うときに必ず触れることになる部分です。

詳細

関連記事

  1. File Manager由来のAPIがDeplecatedになっていた…

  2. [お知らせ] C言語逆引きハンドブックのPDF版の販売が始まりました

  3. Mac用Subversionクライアントから3つピックアップ

  4. Outlook 2007 が突然起動しなくなってしまったときの解決方法…

  5. Swift 3のセミナー資料作成

  6. ArduinoにLCDを追加

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事