Groove Labo
  • Home
  • About

カテゴリー

  • Active Directory (1)
  • FastCGI (2)
  • IIS (2)
  • javascript (5)
  • kickstart (1)
  • MySQL (3)
  • PHP (2)
    • CakePHP (1)
  • postfix (1)
  • Python (7)
  • Ruby on Rails (3)
  • Trac (5)
  • Webサーバー (4)
    • Apache (2)
    • lighttpd (1)
    • pound (1)
    • proxy (1)
  • はじめまして (1)
  • サーバーインフラ (6)
    • Amazon EC2 (2)
    • ZABBIX (3)
  • ソフトウェア開発 (12)
    • テスト (4)
  • ツール (9)
    • backup (1)
    • capistrano (1)
    • CMS (2)
    • couchdb (2)
    • MODx (2)
    • rsync (1)
    • tiddlywiki (1)
    • Wiki (2)
  • デザイン (1)
  • プロジェクト管理 (7)
  • 仮想環境 (5)
    • EC2 (1)
    • VMware (1)
    • Xen (3)
  • 読書 (3)

最近の投稿

  • Railsのdatetime_selectの保存の仕組みを調べてみる
  • [メモ] CentOS5 にkeepalived を設定する
  • ドッグフードを食べる – BTS & SCM
  • CakePHP で連結テーブルのモデルは先に宣言すること
  • ActiveRecord の conditions を作成するためのクラスを作ってみた

Twitter

  • blog: Trac : プラグイン一覧 http://blog.ciklone.com/2010/08/15/trac-%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%b8%80%e8%a6%a7/ 2010-08-25
  • blog: Trac プラグイン : Awesome Attachments Plugin http://bit.ly/aR3AXc 2010-08-25
  • blog: 機能紹介「ダッシュボード」 http://bit.ly/csA7pU 2010-07-01
  • More updates...

Powered by Twitter Tools

ブログロール

  • Cubo
  • OpenGroove
  • zeera document search
  • zeera document search 診断
xenでDomUをvirt-installするときのquoteの問題
投稿日 2008年6月2日 月曜日 カテゴリ Xen, kickstart 投稿者 sugimotoコメントは受け付けていません。 

CentOS 5.1にインストールしたxenでDomUをkickstartを使って自動的に作成する設定をしていたら、その問題が起きました。

>sudo /usr/sbin/virt-install
    --extra-args='ks=http://ks-server/kickstart.php?host=myhost&ip=192.168.1.151&mac=00:00:00:00:01:51'

What is the name of your virtual machine? myhost
 How much RAM should be allocated (in megabytes)? 512
 What would you like to use as the disk (path)? /var/xen/myhost.img
 How large would you like the disk (/var/xen/myhost.img) to be (in gigabytes)? 8
 Would you like to enable graphics support? (yes or no) no
 What is the install location? ftp://ftp.riken.jp/Linux/centos/4/os/i386/


Starting install...
Retrieving CentOS...                                             310 B 00:00
Retrieving vmlinuz...     100% |=========================| 1.0 MB    00:00
Retrieving initrd.img...  100% |=========================| 853 kB    00:00
Creating storage file...  100% |=========================| 8.0 GB    00:00
libvir: XML error : line 10: EntityRef: expecting ';'
libvir: XML error : line 10: EntityRef: expecting ';'
libvir: Xen Daemon error : XML description for domain is not well formed or invalid
Traceback (most recent call last):
  File "/usr/sbin/virt-install", line 633, in ?
    main()
  File "/usr/sbin/virt-install", line 578, in main
    dom = guest.start_install(conscb,progresscb)
  File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 649, in start_install
    return self._do_install(consolecb, meter)
  File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 666, in _do_install
    self.domain = self.conn.createLinux(install_xml, 0)
  File "/usr/lib/python2.4/site-packages/libvirt.py", line 503, in createLinux
    if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirt.libvirtError: virDomainCreateLinux() failed XML description for domain is not well formed or invalid

virt-install では、extra-argsに”ks=”を設定して、kickstartの設定ファイルを読み込むことができます。 このとき、リモートの設定ファイルを変更することなく設定ファイルを読み込むために、設定ファイルをPHPにして、Query Stringで設定ファイルのパラメータを変更できるようにしていました。

この場合、host/ip/macを引数として渡しています。

Googleに聞いたところ、CentOS 5.1のlibvirtに問題があるようでした。

  • ドメインXMLでfilename内のspecial characterがエスケープされない問題

ここでは、install locationにシングルクォートが入っている場合を指摘していますが、設定全体でXMLのspecial characterのエスケープがされていないため、今回のようにextra-argsにアンパサンド(&)が入っている場合も同様の問題が起こりました。

問題を回避するため、kickstartの設定をおいているサーバーのapacheの設定を修正し、kickstartの設定ファイルのURIを変更しました。

http://ks-server/kickstart/myhost/192.168.1.151/00:00:00:00:01:51 でkickstartの設定ファイルを取得する

    RewriteLogLevel 9
    RewriteLog "/var/log/apache2/www-local-rewrite.log"
    RewriteRule ^/kickstart/(.*?)/(.*?)/(.*)$ /kickstart.php?host=$1&ip=$2&mac=$3 [L]

これで自動インストールすることができました。

このバグはCentOS 5.2のlibvirtでは修正されているらしく、修正もすでに公開されています。

参考

  • ドメインXMLでfilename内のspecial characterがエスケープされない問題
  • 上の問題の修正
  • 検閲Tech: Xen DomUインストールでAnaconda Kickstartを使う

Comments are closed.

Copyright © 2004-2010 OpenGroove,Inc. All rights reserved.