M.C.P.C. (Mamesibori Creation Plus Communication)

印刷屋から五反田のWeb屋に転職したCLのブログです。

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 ~]#

f:id:C_L:20140221130124p:plain

これを提供するやつ。

そこに例えば ks.cfg なるファイルを配置すれば、

http://(xenserverのホスト)/ks.cfg

でアクセスできるというわけです。

見方を変えると、パブリックなインターネットでXenServerを立てると、この画面丸見えなんです。

「これ、ずうっと表示されていたんですか?」
「気にはなっていたが消し方がわからない」
iptablesで外部からのHTTPアクセス止めたらどうですか?」
「昔設定したら通信が全遮断されたので全サーバで設定していない」
「」

あと、このXenServerのホストOSに組み込みのhttpサーバですが、byte-rangeリクエストしても206 Partial Contentでレスポンスしてくれない、つまり対応していません。後々地味に困ることになりますのでご注意ください。