XenServerで仮想マシンKickstart用ks.cfgをXenServer自身に置く方法
サーバ機がなくても自分のPCやMacに仮想マシンを作ってサーバサイドの開発ができるVagrantが鬼流行っていますが場合によっては拠点にちゃんとした開発サーバ機を置いてそこに仮想マシンを構築したりつぶしたりする方がいい場合もあるってことで、XenServerを使っております。
VagrantみたいにBoxから仮想マシンを作れるようにしておき、簡単に立てたりつぶしたりできればよかろう、ということで、XenServerのホストOS(Domain-0)から仮想マシン(Domain-U)をコマンド1本で構築できれば及第点かなあと思います。構築する仮想マシンをCentOSにするならば、RedHat系なので、anacondaによるKickstartが出来るのですが、問題は、Kickstart用の設定ファイルをどこに置くかっていうこと。それ用にhttpd立ち上げるのも面倒くさいし……
そこで、こんな方法。実は、XenServerを普通に構築すると、ホストOS側でhttpのサービスが提供されているのです!(ApacheではなくXapiがサービスしている)
なので、そのhttpサービスのドキュメントルート以下にkickstart用設定ファイルを設置すると、仮想マシンから読み込むことができます!
具体的には……
XenServerのホストOSのhttpサービスのドキュメントルートは、
/opt/xensource/www
にあります(調べた限りXenServer 5.6/6.02/6.2共通)。
[root@xs01 ~]# ll /opt/xensource/www
合計 4
-rw-r--r-- 1 root wheel 228 6月 14 2013 Citrix-index.html
lrwxrwxrwx 1 root root 41 2月 12 00:20 XenCenter.iso -> /opt/xensource/packages/iso/XenCenter.iso
lrwxrwxrwx 1 root root 33 2月 12 00:20 XenCenter.msi -> /var/xen/xc-install/XenCenter.msi
lrwxrwxrwx 1 root root 17 2月 12 00:20 index.html -> Citrix-index.html
[root@xs01 ~]#
これを提供するやつ。
そこに例えば ks.cfg なるファイルを配置すれば、
http://(xenserverのホスト)/ks.cfg
でアクセスできるというわけです。
見方を変えると、パブリックなインターネットでXenServerを立てると、この画面丸見えなんです。
「これ、ずうっと表示されていたんですか?」
「気にはなっていたが消し方がわからない」
「iptablesで外部からのHTTPアクセス止めたらどうですか?」
「昔設定したら通信が全遮断されたので全サーバで設定していない」
「」
あと、このXenServerのホストOSに組み込みのhttpサーバですが、byte-rangeリクエストしても206 Partial Contentでレスポンスしてくれない、つまり対応していません。後々地味に困ることになりますのでご注意ください。