Oracle Solaris 11 Express がキタ

とうとう来ましたよ! SPARC 版は OpenSolaris や OpenIndiana 含めて Solaris10 u9 で (まともなリリースが) 止まってたので、ほんと待ちわびてました。

ということで、さっそく家のサーバを入れなおしました。 image-update してもいいけど、せっかく rpool とは別に zpool を用意してあるので、zpool export して新規にインストールです。

インストール

...うーん、すごいすんなり行きました。すんなりすぎて書くことがありません。

ichii386@oscar% uname -a
SunOS oscar 5.11 snv_151a i86pc i386 i86pc Solaris
ichii386@oscar% cat /etc/release
                      Oracle Solaris 11 Express snv_151a X86
     Copyright (c) 2010, Oracle and/or its affiliates.  All rights reserved.
                           Assembled 04 November 2010

気づいたことをメモ。

  • 使ったのはテキストインストーラで、OpenSolaris のときみたく GUI が動く環境は不要
    • gdm はそもそもインストールされない。 svcs -a | grep graphical も空っぽ
  • rpool が rpool1 になった
  • インストール時に作ったユーザは sudoers に入るが Primary Administrator ではない
  • time-slider 依存の zfs-auto-snapshot が動かない動きました
    • dbus かなんかのエラー。GNOME 入れる気はしないしなぁ。
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Connection ":1.4" is not allowed
to own the service "org.opensolaris.TimeSlider" due to security policies in the configuration file
    • 追記: svcadm refresh dbus; svcadm restart dbus したらエラー出なくなりました
      • ふとちゃんと見直したら /etc/dbus-1/system.d/time-slider.conf があるので動きそうなもんだよな、と。

VirtualBox もバッチリ

host os との組み合わせで不安な仮想マシン周りですが、 VirtualBox はさっき拾ってきた 3.2.10 で問題なく動きました。

ただし、 gdm などの GUI はインストールされてないので、 vm の起動は VBoxManage などを使わないといけません。でも設定項目とかどういう選択肢があるのか調べるのめんどいですよね。そういうのはやっぱり GUI で誰かが頑張ってるのを使いたいところ。

そこで、ぜんぜん使ってなかった virtualbox webservice を使ってみることにしました。

phpVirtualBox

virtualbox webservice 自体は soap のサービスでしか無いので、これのクライアントが必要です。なんと php で出来てるクライアント web アプリがあるそうで、 virtualbox.org のトップに動線貼ってあって感動した。

以下に使えるようにするまでの手順を書きます。

  • virtualbox を誰で起動してたのか調べる
    • 以下が正しい調べ方な気はしないですが、とりあえず自分のアカウントで vm 作ってたんだろうな、という気はする
ichii386@oscar% VBoxManage list --long systemproperties|grep folder
Default machine folder:          /export/home/vbox/Machines
Default hard disk folder:        /export/home/vbox/HardDisks
ichii386@oscar% ls -la /export/home/vbox/Machines/
total 6
drwxr-xr-x 3 ichii386 staff 3 Jul 15 11:34 .
drwxr-xr-x 4 ichii386 staff 4 Jul 15 11:34 ..
drwxr-xr-x 3 ichii386 staff 5 Nov 17 23:18 win7
  • webservice の起動ユーザをいじる
    • "# setprop config/user = astring: root" のところを自分のアカウント名に変えた
ichii386@oscar% pfexec svccfg -s svc:/application/virtualbox/webservice:default editprop
ichii386@oscar% pfexec svcadm refresh virtualbox/webservice
ichii386@oscar% pfexec svcadm enable virtualbox/webservice
  • 確認
ichii386@oscar% netstat -an -f inet -P tcp | grep 18083
127.0.0.1.18083            *.*                0      0 65928      0 LISTEN
ichii386@oscar% ps -ef|grep vboxweb
ichii386  4642  4567   0 01:11:05 pts/1       0:00 grep vboxweb
ichii386  4478     9   0 00:16:52 ?           0:02 /opt/VirtualBox/vboxwebsrv --host localhost --port
ichii386@oscar% telnet localhost 18083
Trying ::1...telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to oscar.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 500 Internal Server Error
Server: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 495
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://
schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema" xmlns:vbox="http://www.virtualbox.org/"><SOAP-ENV:Body><SOAP-ENV:Fa
ult><faultcode>SOAP-ENV:Client</faultcode><faultstring>HTTP GET method not implemented</faultstring><
/SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>Connection to oscar closed by foreign host.

これで webservice は動いてるようです。

ichii386@oscar% pfexec pkg install web/php-52 web/server/apache-22/module/apache-php5 web/server/apache-22
  • /etc/apache2/2.2/conf.d と php.ini を適当にいじる
    • とりあえず DocumentRoot を /home/apache/htdocs とかにしておきます
  • phpVirtualBox をダウンロード
ichii386@oscar% cd /home/apache/src
ichii386@oscar% wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-0.5.zip
ichii386@oscar% unzip phpvirtualbox-0.5.zip
ichii386@oscar% vim phpvirtualbox-0.5/.htaccess
(なんか適当に)
ichii386@oscar% cd ../htdocs
ichii386@oscar% pfexec ln -s ../src/phpvirtualbox-0.5 vbox

ドキドキしながら http://oscar.local/vbox/ を叩く。

  • が、エラー。どうも認証でこけてるっぽい??
  • ./phpvirtualbox-0.5/config.php にパスワード設定するところがある
    • 超絶気持ち悪いけど、自分だったり root だったりの生パスワード書いてもうまくいかない
  • VRDPAuth がどうこうしてるみたいなので、めんどいから null にしてしまおう
    • このへん Solaris 版の情報って少ないですよね
ichii386@oscar% VBoxManage setproperty websrvauthlibrary null

もいちどやってみたら、動いたようです。最初の画面が表示されるまでちょっと時間かかるかも。

見たとおりですが、VirtualBox 上では Windows7 が動いています。ホストは zfs で i/o 性能がいいので、 vm の起動もサクサクです。手元の iMacVMWare Fusion を使っていたときは、起動するたびに i/o wait で死んでたから超快適。今はいつも動かしっぱなしになっています。

ちなみに Windows7 への接続は、 VirtualBox のではなく windows 自体のリモートデスクトップサーバに接続するようにしてます。さらに windows 版の iTunes いれて、ついでに入ってくる Bonjour サービスのおかげで DHCP 環境でも oscar-win7.local でアクセスできて超快適です。