webブラウザ経由でKVM環境を操作するフロントエンドツール。
kimchiはIBMが開発に着手し、エンタープライズの利用実績を歴てからOSS化された。
OpenStack/oVirt程の機能は無いが、RPMインストールで簡単に構築できる上、
ゲストOS作成・KVMコンソール操作・ストレージ管理が一括で出来る為、
クラスタを組まないKVM環境の管理ツールには十分な機能を備えている。
1. インストール
ソースコードからビルドする方法もあるが、
KVM管理ツールとしてkernelに近い箇所を操作する事から、RPMインストールが推奨されている。
また、kimchiでスナップショットなど最近の機能を使う都合上、
CentOS7の標準libvirt/Qemuライブラリでは動作しない為、
仮想基盤リポジトリを追加して高機能版のQemuをインストールする。
QEMU v2.12リポジトリ追加
# yum install centos-release-qemu-ev # yum install qemu-kvm-ev libvirt
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" # yum install kimchi-2.5.0-0.el7.centos.noarch.rpm wok-2.5.0-0.el7.centos.noarch.rpm
2. 設定変更
kimchiはwebコンソールのユーザ管理にLDAPを用いる事が出来るが、
参照先となるLDAP環境と検索フィルター設定も必要なので、Linuxユーザを用いたPAM認証を実装する。
PAM認証経由でlibvirtを操作する都合上、ログインユーザにsudo権限が必要なので注意。
kimchiの設定ファイルにはロギングなど他の設定項目も含まれている為、必要に応じて変更する。
# vi /etc/wok/wok.conf --- [authentication] method = pam # ldap_server = "localhost" # ldap_search_base = "ou=People, dc=wok, dc=org" # ldap_search_filter = "uid=%(username)s" # ldap_admin_id = "foo@foo.com, bar@bar.com"
3. テンプレート
kimchiはインストールするディストリビューションイメージを指定したJSON形式のテンプレートと、
作成対象のゲストOSスペックを定義したテンプレートの2種類が存在する。
ディストリビューションの方はサンプルだけでも動くが、標準外のOSを用いる場合には自力で修正する。
作成するゲストOSを定義するテンプレートは、下記とlibvirtの設定を参考に修正を行う
VPSで良くあるCPU2コア・MEM1GB・HDD50GB・NIC1本は次の通りとなる。
# vi /etc/kimchi/template.conf --- [main] networks = default, [memory] current = 1024 maxmemory = 1024 [storage] [[disk.0]] size = 50 format = qcow2 pool = default [graphics] type = vnc listen = 127.0.0.1 [processor] vcpus = 2 maxvcpus = 2