がらくたネット


キムチ

キムチ

kimchi Projectの紹介
プロジェクトページ
ブラウザでkvmを管理するツール
結構簡単にインストールできて、直感的に管理できる

2016/01/18確認情報
このプロジェクトはガンガン更新されているので 常に最新情報はサイトで確認するのがよい

2017/12/19
だいぶ更新されている事を確認
kimchi project site

この下で記載している手順はCentOS7では既に適用しない様子…
要調査!(笑)

インストール(CentOS7編)

2017/12/28確認手順です

  • qemu-kvmは2.1以上が必要
  • centos virtualization sigのリポジトリは必須
  • 2017/12/28時点で2.9.0-16

kimchiのプロジェクトページからrpm形式でインストール
https://github.com/kimchi-project/kimchi/releases/latest

rpmパッケージのrelease日
2017/08/162.5.0wok、kimchi
2017/03/292.4.0ginger
2017/03/292.3.0gingerbase

gingerとgingerbaseの2つとwok、kimchiの2つとの間でWEBサイトの構成に差が発生している感じ

#まずSIGのrepoを追加
yum install centos-release-qemu-ev --enablerepo=extras

# qemu-kvmをインストールするがパッケージ名が変更されている
yum install qemu-kvm-ev

# kimchi関連ダウンロード
wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.el7.centos.noarch.rpm
wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/wok-2.5.0-0.el7.centos.noarch.rpm
wget http://kimchi-project.github.io/gingerbase/downloads/latest/ginger-base.el7.centos.noarch.rpm
wget http://kimchi-project.github.io/ginger/downloads/latest/ginger.el7.centos.noarch.rpm

yum localinstall *.rpm

# 依存関係でもこれはインストールされない
yum install numpy

firewall-cmd --permanent --add-service=wokd
firewall-cmd --reload

systemctl enable wokd
systemctl enable libvirtd

systemctl start libvirtd
systemctl start wokd

で。
最終的に動作するけど、gingerとgingerbaseのロゴが表示されない…
調査中。

インストール(CentOS7 1511編)

残念なお話し(下部参照)から少し日が経ち、強力な協力者の下、CentOS7で構築できるようになった!!

ポイントは最初にCentOSのVirtualization SIG(Sprecial Interest Group)のリポジトリを追加しておくこと!!
これによって、qemu-kvmのバージョンが2.1系に更新されるのでKimchiをササっと使える環境にできる

#まずSIGのrepoを追加
yum install centos-release-qemu-ev --enablerepo=extras

#定番epel
yum install epel-release

#Kimchiに必要なパッケージ関連
yum install gcc make autoconf automake gettext-devel git \
python-cherrypy python-cheetah python-imaging \
PyPAM m2crypto python-jsonschema rpm-build \
python-psutil python-ldap python-lxml \
libxslt nginx openssl gcc-c++ open-sans-fonts \
fontawesome-fonts

yum install python-unittest2 python-ordereddict

yum install pyflakes python-pep8 python-requests

yum install libvirt-python libvirt gettext-devel \
libvirt-daemon-config-network python-imaging \
qemu-kvm python-ethtool sos python-ipaddr \
nfs-utils iscsi-initiator-utils pyparted \
python-libguestfs libguestfs-tools \
python-websockify novnc spice-html5 \
python-configobj python-magic python-paramiko

yum install rpm-python sos pyparted python-configobj

yum install libvirt-python libvirt hddtemp \
libuser-python python-augeas python-netaddr \
python-ethtool python-ipaddr python-magic \
tuned lm_sensors

yum install numpy


#kimchi本体
git clone --recursive https://github.com/kimchi-project/wok.git
cd wok
git submodule update --remote
./build-all.sh
make install
cd src/wok/plugins/kimchi
make install
cd ../ginger
make install
cd ../gingerbase
make install


#リモートisoイメージ対策
cd /etc/wok/plugins.d
ln -s /etc/kimchi/distros.d distros.d


#selinuxをdisabledにしとく
vi /etc/selinux/config

#とりあえず動作確認するにはselinuxをpermissiveにしておく
setenforce 0


#wok設定
vi /etc/wok/wok.conf

host = xxx.xxx.xxx.xxx
デフォルトだと127.0.0.1となりローカルホスト接続しか許可されないので
許可したいホストIPを記述しておく


#firewalldの定義ファイルがインストール済みなので利用して設定
firewall-cmd --add-service=wokd --permanent
firewall-cmd --reload
firewall-cmd --list-all



#自動起動設定
systemctl enable wokd
systemctl enable libvirtd


#起動
systemctl start libvirtd
systemctl start wokd


以上!でKimchiが動作
ブラウザでhttpの8000ポートに接続すればhttpsの8001にリダイレクトされて ログイン画面が表示されるはず

このままだと、ゲスト作成後VNC接続するとキーマップが日本語対応していないので下の方に記載している方法でキーマップを直すのがよい。

インストール(SL7.1編)残念版

SL7.1ベースのOSにインストールしてみた
OSは最小セットアップ+互換ライブラリ程度
後述するが残念版なので、動作しません

まずは準備
epelとsl-rollingリポジトリが必要な事がポイント

yum install epel-release
yum install libvirt

#wok用
yum install gcc make autoconf automake gettext-devel git \
python-cherrypy python-cheetah python-imaging \
PyPAM m2crypto python-jsonschema rpm-build \
python-psutil python-ldap python-lxml \
libxslt nginx openssl gcc-c++ open-sans-fonts \
numpy fontawesome-fonts --enablerepo=sl-rolling 


#テストと開発用
yum install python-unittest2 python-ordereddict --enablerepo=sl-rolling
yum install pyflakes python-pep8 python-requests --enablerepo=sl-rolling

#kimchi用
yum install libvirt-python libvirt gettext-devel \
libvirt-daemon-config-network python-imaging \
qemu-kvm python-ethtool sos python-ipaddr \
nfs-utils iscsi-initiator-utils pyparted \
python-libguestfs libguestfs-tools \
python-websockify novnc spice-html5 \
python-configobj python-magic python-paramiko --enablerepo=sl-rolling

#gingerbase用
yum install rpm-python sos pyparted python-configobj --enablerepo=sl-rolling

#ginger用
yum install libvirt-python libvirt hddtemp \
libuser-python python-augeas python-netaddr \
python-ethtool python-ipaddr python-magic \
tuned lm_sensors --enablerepo=sl-rolling

そしてkimchi本体

cd /usr/local/src
git clone --recursive https://github.com/kimchi-project/wok.git
cd wok
git submodule update --remote
./build-all.sh

make install
cd src/wok/plugin/kimchi
make install
cd ../ginger
make install
cd ../gingerbase
make install

これで、関連一式がインストールされる
これREADMEに書いてあるのだが、最初は1個づつダウンロードしてはコンパイルしてたし…

OS側の調整

vi /etc/selinux/config
SELINUX=disabled

vi /etc/wok/wok.conf
host = xxx.xxx.xxx.xxx

firewall-cmd --add-port=8000/tcp --permanent
firewall-cmd --add-port=8001/tcp --permanent
firewall-cmd --add-port=64667/tcp --permanent
firewall-cmd --reload

selinuxの設定変更を有効にするために再起動

wokサービスを起動してブラウザで https://[ipアドレス]:8001/に接続してみる

以下の「残念なお話し」に続く…

残念なお話し

SL7.1で前述の通りインストールはできた
kimchi自体も稼働する

しかし。ISOディレクトリにisoを保存して ゲスト作成にすすむと

サポートされない設定: memory hotplug isn't supported by this QEMU binary
として作成できない

どうも、libvirtのバージョンが古いらしい
CentOS7.2ではlibvirt-1.2.17-13.el7_2.2があっていける感じ。
SL7.1にはそれがない。

2016/01/25 追記8-O

memory hotplugのサポートはqemuバージョンが2.1以上だそうだ
という訳でqemuをソースからコンパイルインストールすれば動くみたい

iso認識の追加

kimchiでisosプールにファイルを保存した場合の認識リスト追加方法
kimchiはisoファイルの情報を確認してる
Volume IDを利用して振り分けてる

Volume IDの確認

isoinfo -d -i <filename.iso>

vi /usr/lib/python2.7/site-packages/wok/plugins/kimchi/isoinfo.py

#CentOS 7系とScientific Linux 6系と7系を追加

    ('centos', lambda m: m.group(1),
        ('CentOS (\d+) (x86_64|i686)')),
    ('scientific', lambda m: m.group(1),
        ('Scientific-(\d+\.\d+)-(x86_64|i686)')),
    ('scientific', lambda m: m.group(1),
        ('Scientific (\d+\.\d+) (x86_64|i686) DVD')),

こんな具合にすることで認識リストが追加される
尚、追加しなくてもOSインストールイメージとしては利用OK

ゲストのキーマップ

Kimchiからゲストを作成して、VNC接続するとキーマップが日本語以外になっててコロンとかが入力できないww
次のようにkimchiのソースを修正するか、仮想ゲストを作成してから
コンソールでvirsh edit <Guest Name>してgraphics設定部分を追記するとOK

cd /usr/lib/python2.7/site-packages/wok/plugins/kimchi/xmlutils
vi graphics.py

変更前
    graphics = E.graphics(type=params['type'], autoport='yes',
変更後
    graphics = E.graphics(type=params['type'], autoport='yes', keymap='ja',
   

python -c "import graphics"
python -O -c "import graphics"
systemctl stop wokd
systemctl start wokd

macvtapの話

kimchiではWeb管理画面から、仮想化用インターフェースとしてmacvtapが選択できる
ホストのインターフェースを利用してブリッジとして動作するネットワーク
WebGUIから簡単に設定できるので重宝するのだが、問題点が1つ
ホストとゲスト間はこのインターフェースでは通信ができないという事
macvtapはkernelの機能でこの制限がある
これが嫌なら、macvlanを使ってホスト側の設定を変更するか
旧来のBridgeインターフェースをホスト側に設定しておく必要がある