Yes, it is. You may use Karesansui for business or personal use for free.
Karesansui is mainly under GPL and LGPL. See here for details.
Karesansui is aimed to support virtual servers so it does not support full-virtualization now. We are planning to support it in future. While it is not supported by Karesansui, you may setup full-virtualized guests using command line.
Yes, it only supports Xen now. But we are planning to support KVM in near future.
We prepared and install pack so you should be able to install Karesansui easily. Please follow our Tutorial.
We are working hard. Please take a look at our Karesansui's full ajax web control panel.
Yes! Thank you! Take the Get Karesansui Badge if you like it.
No. Nothing. It's GPL/LGPL so there's no problem.
No. Karesansui uses the database to keep information for its user interface. Guests don't stop if when the database stops, but you will have problems to access Karesansui control panel.
We use TightVNC Java applet for guest console. So you need Java installed for your browser.
First, Check if you can access your host. From your client's console, type
> ping {Karesansui server IP address or name}
Next, Check if the VNC port is open on your Karesansui host.
# netstat -nalt
If all above are OK, then try to connect the guest from the client, using standard VNC viewer applications.
Select 'Display' from guest device tab, and set 'VNC Keymap'. Choose appropriate keymap.
Go and ask your question in the Karesansui Forum . Somebody may answer you.
You need to change "args" parameter in "[handler_*" catetories of log.conf. The following example shows how you can change those settings.
In case that you want to change the maximum size of log file from 5 Mbytes to 10 Mbytes:
(before) args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
(after) args=('/var/log/karesansui/application.log', 'a', (10 *1024 *1024), 5)
In case that you want to change the name of log file from application.log to server.log:
(before) args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
(after) args=('/var/log/karesansui/server.log', 'a', (5 *1024 *1024), 5)
In case that you want to change the maximum number of rotated log files from 5 to 10:
(before) args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
(after) args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 10)
It is possible that logging is limited by specific log level. Please check the level in category of "[logger_*".
Avaliable Log Levels (* The former level includes the latter.) - DEBUG : All messages. debug-level message. - INFO : Informational message. - WARNING : Warning conditions. This is recommended during operation. - ERROR : Error conditions. - CRITICAL : Critical and fatal conditions. - EXCEPTION : Application error message. Notice: You must restart the Web service, or lighttpd, for the changes to take effect.
Karesansui supports all the format that is avaliable in Python logging. So please check Python official site for details.
The path of the log file is set as a value of "args" parameter in "[handler_*" categories of log.conf.
Karesansui outputs the following multiple log files:
| General Log | /var/log/karesansui/application.log |
| Error Trace Log | /var/log/karesansui/error.log |
| Executed SQL Log | /var/log/karesansui/sql.log |
Access Karesansui on host A, click "Options" which are in the header, and display "About Karesansui" screen. Take a memo of the version information.

Download the same version of the Karesansui you checked in Step 1, and install it into host B.
warning: While the install process, you will be asked about the database location. Specify the same location of host A, and DO NOT CHECK the "Initilize database" checkbox.

Look in /etc/opt/karesansui/application.conf of the host B, and find "application.uniqkey". The value is the unique key of host B. We use this in Step4, so take a memo of the unique key. example) application.uniqkey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Access host A, and click "Add" at the top page to add a host. Input required fields and press "Add".
Some explaination:
- Host Name (required): The host name to display on Karesansui control panel. There are no restrictions for this name so choose the name you like.
Example)Host B
- FQDN (required): FQDN of host B to access from the client. Input a FQDN or an IP address.
Example)hostb.karesansui-project.info / 192.168.0.1
- UUID (required) : Input the Karesansui unique key of Host B you checked in Step 3.
- Note : Space for a memo.
- Tags : Tags to put on this host.
Access host A Karesansui control panel, and click host B icon (usually the N/A icon are displayed) to display details. Find "Link to host" in "Other Information" and click to see the host B control panel. Basic authorization may be required at this step. If you see host B name in the control panel header, host was successfully added. *A
*A :
Host name should appear in the right of this image.
Some parts of Karesansui are GPL, and some are LGPL, but the core architecture is LGPL, to reduce problems for re-using. All source code has license notice, so you should clearly know what license to follow.
For exception, some Karesansui files some don't have license notice for technical problems. The files under template/default/include coming with the source tree are LGPL. Other files under template/default are GPL. This DOES NOT mean that your original files you put in template/default should be GPL, or template/default/include should be LGPL. This DOES NOT mean that files somebody put in template/default or template/default/include without any notice will become GPL or LGPL. We can only mention about files we distribute, so consult the original author for such files.
The Karesansui source tree includes other open source projects work, which may come with its own distribution rule. Please consult each license notice for these projects.
coming soon...
(Translation based on http://karesansui-project.info/wiki/karesansui/Ja_install?version=48)

On Karesansui, we call the machine which hosts virtual machines "host", and the virtual machine instance which runs in the host "guest".
| Catogory | Feature | Detail | Check |
| Common | Login | Login based on basic authentication. | x |
| Common | Logout | Logout. | x |
| Common | "My Account" Settings | Edit account information which are logged in now. | x |
| Common | Tags | Group guests using tags. Future support for other resources are planned. | x |
| Security | SSL settings | Enable/disable SSL for the Karesansui web interface server. | x |
| Security | Access policies | Access policy settings for Karesansui web interface | x |
| Security | VNC password settings | Sets/changes passwords for VNC connection to each individual guest | x |
| Security | Whitelist | Set whitelist of commands allowed to execute.(no web interface for this function) | x |
| Other | Karesansui | Display Karesansui version | x |
| General | Display hosts | Display hosts. Version 1 doesn't fully support multiple hosts. | x |
| General | Karesansui settings (web server) | Set Karesansui parameters. | x |
| General | Karesansui settings (mail server) | Set Karesansui parameters. | x |
| General | Tree navigation view for hosts and guests | Tree navigation view for hosts and guests. | x |
| Host | List of guests | Display list of guests. | x |
| Host | Host information | Display information about the host. | x |
| Host | Create guests | Create a guest. | x |
| Host | Copy guests | Copy a guest under management. | x |
| Host | Delete guests | Delete a guest under management. | x |
| Host | Edit | Edit host information. | x |
| Host | Jobs | Search and view jobs which are executed on the host. | x |
| Host | Add/edit/delete networks | Manage virtual network. | x |
| Host | Add/edit/delete firewall rules | Manage host firewall settings. | x |
| Host | Start/stop firewalls | Start/stop host firewall | x |
| User management | Create/edit/delete user | Manage users. | x |
| Edit tags | Create/edit/delete tags | Manage tags. | x |
| Guest | Information | Display information about guest. | x |
| Guest | Start | Start (boot up) guests. | x |
| Guest | Pause/resume guests. | Pause/resume a guest. | x |
| Guest | Force shutdown | Force guest to shutdown. | x |
| Guest | Shutdown | Standard guest shutdown. | x |
| Guest | Create/edit/delete snapshot | Manage snapshots. | x |
| Guest | Apply snapshost | Apply snapshots to a managed guest. | x |
| Guest | Add/edit/delete storage (HDD) | Manage storage (Virtual HDD.) | x |
| Guest | Add/edit/delete network interfaces | Manage network interfaces (NIC). | x |
| Guest | Add/edit/delete displays (VNC) | Manage virtual display (VNC). | x |
| Guest | Change CPU numbers | Change the number of CPUs for a guest. | x |
| Guest | Change RAM size | Change RAM size for a guest. | x |
| Guest | Jobs | Search/view jobs which are executed on a specified guest. | x |
| Guest | Console | Access guest consoles through the web interface. | x |
There are several ways to get the source.
The source code is provided as RPM package included in Karesansui install-pack(tarball).
You can download the install-pack from here.
The latest code can be download from git repository in "sourceforge.jp".
$ git clone git://git.sourceforge.jp/gitroot/karesansui/karesansui.git
log.conf
TODO
application.conf
Additional library search path for Python. Separate by commas (,) to specify two or more.
ex.) application.search.path=/opt/hde/lib/python,/opt/pysilhouette/lib/python,/opt/karesansui/lib/python
Location of the log config files to write.
More information about log config files are [[|here]].
ex.) application.log.config=/etc/opt/karesansui/log.conf
Prefix of the URI for Karesansui web interface
Prefix is a string between the curly braces below.
http://example.com{/karesansui/v1}/
We encourage to set "/v1" at the end.
ex.) application.url.prefix=/karesansui/v1
Default locale for Karesansui web interface.
ja_JP and en_US are available now.
For user logged in, user's locale setting have priority over this.
ex.) application.default.locale=en_US
Set Karesansui theme.
"default" is provided by the default installation.
ex.) application.template.theme=default
Directory where Karesansui stores temporary files.
ex.) application.tmp.dir=/tmp
Directory where Karesansui stores job commands.
Karesansui process owner user must be able to write to this directory.
ex.) application.bin.dir=/opt/karesansui/bin
Template directory for various setting files.
ex.) application.generate.dir=/opt/karesansui/karesansui/templates/default/_generate
Mail address which Karesansui uses for notification, etc..
ex.) application.mail.email=karesansui@example.com
Mail server port which Karesansui uses for notification, etc..
ex.) application.mail.port=25
Name of the mail server which Karesansui uses.
ex.) application.mail.server=localhost
Whether Karesansui use web proxy for outer connection or not.
1=Enable
0=Diable
ex.) application.proxy.status=0
Proxy server which Karesansui uses.
ex.) application.proxy.server=localhost
Proxy server port which Karesansui uses.
ex.) application.proxy.port=9080
Proxy user which Karesansui uses.
ex.) application.proxy.user=bar
Proxy password which Karesansui uses.
ex.) application.proxy.password=foo
Where to put Lighttpd config file which will be used when you access Karesansui web inteface through Lighttpd.
ex.) lighttpd.etc.dir=/etc/opt/hde/lighttpd/conf.d/karesansui
Some examples:Database bind for Karesansui. Specify in the style defined in RFC-1738.
For detail information, consult SQLAlchemy documentation Database Engines
MySQL
mysql://localhost/{{databasename}}
mysql://{{username}}:{{password}}@{{hostname}}/{{databasename}}
mysql://{{username}}:{{password}}@{{hostname}}:{{port}}/{{databasename}}
PostgreSQL
postgres://{{username}}:{{password}}@{{hostname}}:{{port}}/{{databasename}}
SQLite (Must be able to read/write by Karesansui process)
sqlite:////{{Absolute path}}/{{filename}}
sqlite:///{{Relative path}}/{{filename}}
ex.) database.bind=sqlite:////var/opt/karesansui/karesansui.db
Connection pool size. Ignored on SQLite.
ex.) database.pool.size=1
Connection pool max size.
ex.) database.pool.max.overflow=10
ex.) pysilhouette.conf.path=/etc/opt/pysilhouette/silhouette.conf
Karesansui works with 5 processes.
If you have installed Karesansui using the installer, start up configuration is automatically done.
Daemon from libvirtd, the abstract layer for virtualization.
Caution) If the original libvirtd which comes with the Linux distribution is running, hde-libvirtd fails to start up correctly. You must disable libvirtd first (possibly using "/sbin/chkconfig libvirtd off" command) before starting hde-libvirtd.
ex.) Starting: /etc/init.d/hde-libvirtd start Stopping: /etc/init.d/hde-libvirtd stop ex.) Automatic startup settings: chkconfig hde-libvirtd on Check startup settings: chkconfig --list hde-libvirtd
Web server to be used to access Karesansui web interface. (Lighttpd)
ex.) Starting: /etc/init.d/hde-lighttpd start Stopping: /etc/init.d/hde-lighttpd stop ex.) Automatic startup settings: chkconfig hde-lighttpd on Check startup settings: chkconfig --list hde-lighttpd
Job management service (Pysilhouette).
ex.) Starting: /etc/init.d/silhouetted start Stopping: /etc/init.d/silhouetted stop ex.) Automatic startup settings: chkconfig silhouetted on Check startup settings: chkconfig --list silhouetted
iscsi-initiator-utils
cyrus-sasl-md5
gnutls-utils
PyXML
Use karesansui-checkenv which are placed in the installation folder to get diagonistics output for solving troubles.
ex.) # ./karesansui-checkenv @==========================================@ @ Karesansui Environment Check Program @ @==========================================@ Checking if Karesansui RPM packages are installed completely... OK Checking if Karesansui config parameters are enough... OK Checking if Karesansui modules can be imported... OK Checking whether Karesansui group exists or not... OK Checking if Karesansui configuration file can be loaded... OK Checking if sqlalchemy modules can be imported... OK Checking if pysilhouette modules can be imported... OK Checking if pysilhouette config parameters are enough... OK Checking if pysilhouette configuration file can be loaded... OK Checking if Database API modules for Karesansui can be imported... sqlite Checking whether we are able to connect to database for Karesansui... sqlite:////var/opt/karesansui/karesansui.db Checking permission of SQLite database for Karesansui... OK Checking if Database API modules for pysilhouette can be imported... sqlite Checking whether we are able to connect to database for pysilhouette... sqlite:////var/opt/pysilhouette/pysilhouette.db Checking permission of SQLite database for pysilhouette... OK Checking permission of Karesansui files/directories... OK Checking if Karesansui services are running... OK Everything is gonna be alright!! You can now login through following url. https://karesansui-project.info/karesansui/v1/ http://karesansui-project.info/karesansui/v1/
A TODO
(Translation based on http://karesansui-project.info/wiki/karesansui/Ja_tutorial?version=77)
On this tutorial, we will go through brief instruction from Karesansui installation (using packages), to boot guest.

Use CentOS 5.4 or later to create host environment.
Just do usual installation, but be careful of the points below.
(Required) On software setup, check "Virtualization", "KVM".
(Not required but encouraged) Use LVM. It's easy to add storage in future. (It will be LVM-ready if you use the default partition offered by the installer)


Karesansui requires the following packages. Please make sure that these packages are installed.
Download the newest release from the Download Page.

Installing Karesansui is very easy.
The installation steps will be as follow:
# tar xzvf karesansui-1.1.0-1-install-pack.tar.gz # cd Karesansui # ./karesansui-install
Here is the detailed instructions.
Push 'OK' button to display the next page.

Setting up Karesansui administrator account.
| Hostname | FQDN of this Host OS |
| Password | administrator's password. Requires this password at login. |
| Password (again) | the same password as 'Password' for confirmation |
| Mail address | administrator's e-mail address. Requires this password at login. |
| Language | language that administrator uses. |

Setting up TLS certificates for libvirt remote SSL connection.
| Country | country ISO 2 letter code |
| State or Province Name | your state or province name |
| Locality Name | your location (e.g. town) |
| Origanization Name | your organization (e.g. company name) |
| Common Name | FQDN of this Host OS |
| Initialize SSL certificates settings? | initialize SSL keys and certificates |

Setting up Karesansui database.
In case of using MySQL or PostgreSQL as database, you need to create a database for Karesansui in advance and make sure to connect the database.
| Database path | a database for Karesansui |
| Database pysilhouette path | a database for pysilhouette job management daemon |
| Initialize database | initialize database |
| MySQL | mysql://username:password@hostname/database?charset=utf8 |
| PostgreSQL | pgsql://username:password@hostname/database |
| SQLite | sqlite:////var/opt/karesansui/karesansui.db |

Press 'OK' button to proceed installation, then the software installation will start.
Press 'Back' or 'Cancel' to abort installation.


When the installation process has finished successfully, the following screen will be displayed.
An error occurred and installation failed, then the error message will be displayed.
See log file for error details and resolve the error, then please install again.

Done. You can now login through following url. Your login credential is 'taizo@karesansui-project.info'. https://karesansui.example.com/karesansui/v1/ http://karesansui.example.com/karesansui/v1/ See '/root/karesansui-install.log' for detail.In the case that the KVM hypervisor is running on your machine, network device configuration files will be modified by installer. So you should reload network.
# /etc/init.d/network restart
Try the URL displayed on the "Finish" screen (like "https://{hostname}/karesansui/v1/").
Please input e-mail address and password in user authentication dialog, then login to the Management Console.

If you see the screen like this, then the installation had all succeeded.

Here is an example of installing CentOS 5.4(i386) to guest.
We describe two ways to do that.
http://<Web site name>/centos/5/os/i386/ ftp://<FTP site name>/Linux/centos/5/os/i386/
# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/pubCheck to be sure that you can login to localhost as AnonymousFTP user.
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quitIf you fail to login, SELinux may work.
# echo 0 >/selinux/enforce
In the case that the KVM hypervisor is running on your machine, you can install from CD-ROM ISO image.
If you doesn't have CD-ROM ISO image but DVD-ROM, 'dd' command can create CD-ROM ISO image.# dd if=/dev/cdrom of=/iso/centos54-i386.iso dd: reading `/dev/cdrom': Input/output error 269860+0 records in 269860+0 records out
First, please click the host icon image on top window.
And click the 'Create' in 'Guests' tab, then 'Create guest' window as follow will be displayed.

Here we describe the ways to specify values for each item.
| Kernel image | the URL of CentOS 5.4's kernel image path (ex: case of Xen=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/vmlinuz', case of KVM=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/vmlinuz') |
| initrd image | the URL of CentOS 5.4's initrd image path (ex: case of Xen=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/initrd.img', case of KVM=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/initrd.img') |
As for other items, you can see the details clicking "?" displayed at the right of each item.
| Kernel image | case of Xen=>'/var/ftp/pub/images/xen/vmlinuz', case of KVM=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrd image | case of Xen=>'/var/ftp/pub/images/xen/initrd.img', case of KVM=>'/var/ftp/pub/isolinux/initrd.img' |
As for other items, you can see the details clicking "?" displayed at the right of each item.
Fill up all items, please click the "Create" button at the bottom of "Create guest" window.
Then, the message that the creation job is accepted will be displayed.
So the icon image that stands for new guest will appear in "Guests" window.

Please click the new guest icon, and then click the "Console" tab.
The console window of guest will be displayed. In this window, you can install CentOS 5.4 into guest as into real machine.

In the guest installation,
| Web site name | Web site name that provides OS image |
| CentOS directory | image path on this site(ex: /Linux/centos/5/os/i386) |
| FTP site name | FTP site name that provides OS image |
| CentOS directory | image path on this site(ex: /Linux/centos/5/os/i386) |
In the guest installation,
| FTP site name | IP address of host (NOT loopback address) |
| CentOS directory | /pub/ |
This is the end of the tutorial. You can now do basic operation about virtualization.
Target users for this document
Users who are using SQLite with 1.0.0 and 1.0.1.
Affected area
The job manager (Pysilhouette)
Issue which was fixed in 1.0.2
Installer was causing the job manager (Pysilhouette) to lookup SQLite database path, even the user specified other database path (like MySQL or PostgreSQL), so multi-host configuration was not supported.
1.0.2 fixes these problems, but some manual configuration are needed for updates.
1. Database Creation
Create database for the job manager (Pysilhouette).
Example)
For PostgreSQL
# createdb -U username -W pysilhouette --encoding=utf8
For MySQL
# mysql -u username -p -e 'CREATE DATABASE pysilhouette DEFAULT CHARACTER SET utf8;'
Important)
Create database with UTF-8 charsets.
2. Download the new package and deploy.
# rm -rf Karesansui # tar zxvf karesansui-<version>-install-pack.tar.gz # cd Karesansui
3. Check current database path
Get current Pysilhouette database path.
sqlite:////var/opt/pysilhouette/pysilhouette.db
4. Update Karesansui
Update Karesansui and change Pysilhouette database path.
Update Karesansui as the steps in the tutorial
# ./karesansui-install
Uncheck "Initialize database", or you will lose your current database settings.
5. Installation Environment Check
Execute ./karesansui-checkenv to check if there are any errors.
Check if the output message "Checking whether we are able to connect to database for XXXXX... " describes your new database path.
# ./karesansui-checkenv
6. Migrate Database
Copy SQLite database to MySQL or PostgreSQL database.
# cd /opt/pysilhouette/share/doc/pysilhouette-0.6.2/tool/ # export PYTHONPATH=/opt/hde/lib/python:/opt/karesansui/lib/python:/opt/pysilhouette/lib/python:$PYTHONPATH # ./sqlite2other.py --input=<old database path> --output=<new database path>
SQLite : sqlite:////var/opt/karesansui/pysilhouette.db MySQL : mysql://username:password@hostname:port/pysilhouette?charset=utf8 PostgreSQL : postgres://username:password@hostname:port/pysilhouetteWarning)
Take a memo of the outputted "copy num" number. We use it later. (copy num - xxx) sqlite2other.py only supports SQLite -> MySQL or SQLite -> PostgreSQL migration.Example)
# ./sqlite2other.py --input=sqlite:////var/opt/pysilhouette/pysilhouette.db --output=mysql://username:password@localhost/pysilhouette?charset=utf8 Cleanup Database [OK] copy num - 3
Information)
For details about database path format, consult the reference
7. Change Auto Increment Counter Value
Change the auto increment counter value of Pysilhouette.
Access Pysilhouette database an execute the SQL below.
Put the "copy-num" value we got above into <copy num value>.
For PostgreSQL:
select setval('jobgroup_id_seq', <copy num value>);
select setval('job_id_seq', <copy num value>);
Example)
# psql pysilhouette -U username -h localhost -c "select setval('jobgroup_id_seq', 3);"
# psql pysilhouette -U username -h localhost -c "select setval('job_id_seq' 3);"
For MySQL:
ALTER TABLE jobgroup AUTO_INCREMENT = <copy num value>;
ALTER TABLE job AUTO_INCREMENT = <copy num value>;
Example)
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE jobgroup AUTO_INCREMENT = 3;"
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE job AUTO_INCREMENT = 3;"
Information)# ./sqlite2other.py --input=<old database path> --output=<new database path> Cleanup Database [OK] copy num - 3 <-- "copy-num" value
# /etc/init.d/hde-lighttpd stop # /etc/init.d/silhouetted restart # /etc/init.d/hde-lighttpd start
In version 1.1, the path of some configuration files and disk image files has changed.
This document describes how to migrate these files and settings.
_*We recommend to back up the important data to other physical machine in advance.*_
1. Stop Daemon
Stop the daemon processes.# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop
2. Download the new package and deploy.
# rm -rf Karesansui # tar zxvf karesansui-<version>-install-pack.tar.gz # cd Karesansui
3. Update Karesansui
# ./karesansui-install
_*You must not choise the database initialization.*_
4. Installation Environment Check
Execute ./karesansui-checkenv to check if there are any errors.
# ./karesansui-checkenv
このチュートリアルでは、パッケージング済みのKaresansuiを利用したインストールから、実際にゲスト上にOSインストールし動作させるまでを紹介します。

ホスト、ゲストともにCentOS 5.5 64bitを用いたときのチュートリアルです。
CentOS 5.5以降のISOイメージを利用しホストOSを作成します。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) ソフトウェアのセットアップで「仮想化」「KVM」にチェックを入れてください。
(必須ではありません) ストレージ拡張を容易に行えるため、LVMを利用することを推奨しています。
注)デフォルトパーティションを利用するとデフォルトでLVMになります。


Karesansuiは、これらのインストールパッケージと依存関係があります。別途インストールする必要があります。
# rpm -e --nodeps kvm-qemu-img
ダウンロードページ から最新のkaresansui-2.0.0-x-install-pack.tar.gzをダウンロードします。

# tar xzvf karesansui-2.0.0-1-install-pack.tar.gz # cd Karesansui # ./karesansui-install
インストールスクリプト実行後の画面の流れは下記の通りです。
「OK」ボタンを押して、そのまま次の画面へ進みます。

Karesansuiの管理画面にログインする管理者の設定を行います。各項目の説明は下記の通りです。
| ホスト名(FQDN) | このホストOSのFQDNを入力します。 |
| メールアドレス | 管理者のメールアドレスを入力します。管理画面へのアクセスに必要です。 |
| パスワード | 管理者の認証パスワードを入力します。 管理画面へのアクセスに必要です。 |
| パスワード(再入力) | 上記パスワードを再入力します。 |
| 言語 | 管理者の利用する言語を選択します。管理画面で表示される言語です。 |

Karesansuiで使用する仮想マシン制御の抽象化サービス(libvirt)にSSL接続するための鍵と証明書の設定を行います。
各項目の説明は下記の通りです。
| 国名 | 国名のコードを大文字のアルファベット2文字で入力します。 |
| 都道府県名 | 都道府県名をローマ字で入力します。 |
| 市町村名 | 市町村名をローマ字で入力します。 |
| 組織名 | 会社名や団体名などの組織名を入力します。 |
| サーバー名とドメイン名(FQDN) | このホストOSのFQDNを入力します。 |

Karesansuiが利用するデータベースに関する設定を行います。
MySQLやPostgreSQLを利用する場合は、あらかじめデータベースを作成し、ホストOSから接続可能なことを確認してください。作成方法はリファレンスのMySQL, PostgreSQLを使用する場合の手順 を参照してください。
| Karesansui データベースパス | Karesansuiが利用するデータベースを指定します。 |
| pysilhouette データベースパス | pysilhouetteが利用するデータベースを指定します。 |
| データベースを初期化する | データベースに初期データを投入する場合は選択します。 |
| MySQL | mysql://username:password@hostname/database?charset=utf8 |
| PostgreSQL | postgres://username:password@hostname:port/database |
| SQLite | sqlite:////var/opt/karesansui/karesansui.db |

インターネットへアクセスするためのHTTPプロキシ設定を行います。
| プロキシを利用する | プロキシを利用して接続する場合は選択します。 |
| ホスト名(FQDN) | プロキシサーバーのホスト名を指定します。ホストは接続可能なものでなければなりません。 |
| ポート番号 | 上記プロキシサーバーのポート番号を指定します。 |
| ユーザー名 | プロキシサーバーでユーザー認証が必要な場合は、そのユーザー名を指定します。 |
| パスワード | プロキシサーバーの認証パスワードを入力します。 |
| パスワード(再入力) | 上記パスワードを再入力します。 |

通知メールなどのメールの送信に利用するSMTPサーバーに関する設定を行います。
| ホスト名(FQDN) | SMTPサーバーのホスト名を指定します。ホストは接続可能なものでなければなりません。 |
| ポート番号 | 上記SMTPサーバーのポート番号を指定します。 |

インストールを続行したい場合は、「OK」を押し、ソフトウェアのインストールを始めます。
これまでの入力に誤りがある場合やインストールを中断したい場合は、「戻る」、「取り消し」を押してください。

ソフトウェアのインストールの進捗状況が表示されます。
ソフトウェアのインストール、鍵・証明書の生成、設定ファイルの書き込み、データベースの初期化、サービスの有効化 の順に進捗します。

インストールが正常に完了すると、下記画面のようにメッセージが表示されます。
インストールの途中でエラーになると、エラー原因のメッセージが表示されます。エラーメッセージはインストールログにも出力されますので、ログを確認した後、エラー原因を解消し再度インストールを行ってください。

終了しました。 下記サイトにアクセスしログインしてください。ログインIDは'taizo@karesansui-project.info'です。 https://karesansui.example.com/karesansui/v2/ http://karesansui.example.com/karesansui/v2/ 詳細は、/root/karesansui-install.log を参照してください。KVMを仮想化ハイパーバイザーに利用している場合は、ネットワーク設定ファイルの変更も行われますので
# /etc/init.d/network restart
インストール完了後に表示された 'https://{ホスト名}/karesansui/v2/' に接続すると、認証ダイアログが表示されますので、インストール時に指定した管理者のメールアドレスとパスワードを入力します。

認証をパスして、以下のような画面が表示されればインストールは成功です。

以降は、ゲストに CentOS 5.5(i386) をインストールする場合を例に、2通りの方法を説明します。
ホストOSが既にインターネットに繋がっている場合は、外部サーバー上にある、カーネルイメージ、および、OSイメージを取得してインストールを行います。プロキシサーバー経由でのインストールはできませんので、その場合はFTPサーバーを利用してください。
ホストOSから CentOS 5.5 のOSイメージのURLに接続可能であるかどうかを確認してください。http://<OSイメージ配布サイトのFQDN>/Linux/centos/5/os/i386/ ftp://<OSイメージ配布サイトのFQDN>/Linux/centos/5/os/i386/
ホストOSがインターネットに繋がっていない場合は、CentOS 5.5(i386)のDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
CentOS 5.5(i386)のDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
KVMを仮想化ハイパーバイザーに利用している場合は、OSインストールDVDのISOイメージからインストールすることも可能です。
ISOイメージがなくOSのDVDがある場合は、下記の方法でOSインストールDVDのISOイメージを生成することができます。DVDをドライブに入れ、下記コマンドを実行します。# dd if=/dev/cdrom of=/iso/centos55-i386.iso dd: reading `/dev/cdrom': Input/output error 269860+0 records in 269860+0 records out
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法を、前述のインストールのタイプごとに示します。
| カーネルイメージ | 接続可能な外部のWebサーバーまたはFTPサーバー上のカーネルイメージのURL (例:Xenの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/vmlinuz',KVMの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/vmlinuz') |
| initrdイメージ | 接続可能な外部のWebサーバーまたはFTPサーバー上のinitrdイメージのURL (例:Xenの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/initrd.img',KVMの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/initrd.img') |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
| ISOイメージ | ISOイメージの絶対パス(例:/iso/centos55-i386.img) |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のCentOS 5.5 のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では前述のカーネルイメージで指定したプロトコル(「HTTP」または「FTP」)を選択し、「HTTP」の場合は「HTTP Setup」、「FTP」の場合は「FTP Setup」で接続先を設定してください。
| Web site name または FTP site name | OSイメージ配布サイトのFQDN |
| CentOS directory | 上記サイト上のパス(例:/Linux/centos/5/os/i386) |
OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| CentOS directory | /pub/ |
「Installation Method」の選択の必要はありません。
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
ホスト、ゲストともにRed Hat Enterprise Linux 5.5 64bit( 以下、RHEL 5.5(64bit) )を用いたときのチュートリアルです。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) Red Hat Network で、「RHEL Virtualization (v. 5 for 64-bit x86_64)」チャネルを追加し、下記コマンドであらかじめkvmをインストールしてください。# yum install kvm
Karesansuiのインストールは、CentOS 5.5の場合と同じです。
CentOS 5.5のチュートリアル を参照してください。
RHEL 5.5(64bit)のDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
RHEL 5.5(64bit)のDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法は、以下の通りです。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のRHEL 5.5(64bit)のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| RHEL directory | /pub/ |
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
ホスト、ゲストともにCentOS 5.5 64bitを用いたときのチュートリアルです。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) ソフトウェアのセットアップで「仮想化」「KVM」にチェックを入れてください。
(必須ではありません) ストレージ拡張を容易に行えるため、LVMを利用することを推奨しています。
注)デフォルトパーティションを利用するとデフォルトでLVMになります。
Karesansuiのインストールは、CentOS 5.5の場合と同じです。
CentOS 5.5のチュートリアル を参照してください。
CentOS 5.5 64bitのDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
CentOS 5.5 64bitのDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法は、以下の通りです。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のRHEL 5.5(64bit)のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| CentOS directory | 上記サイト上のパス(例:/Linux/centos/5/os/x86-64) |
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
ホスト、ゲストともにCentOS 5.5 32bitを用いたときのチュートリアルです。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) ソフトウェアのセットアップで「仮想化」「KVM」にチェックを入れてください。
(必須ではありません) ストレージ拡張を容易に行えるため、LVMを利用することを推奨しています。
注)デフォルトパーティションを利用するとデフォルトでLVMになります。
Karesansuiのインストールは、CentOS 5.5の場合と同じです。
CentOS 5.5のチュートリアル を参照してください。
CentOS 5.5 32bitのDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
CentOS 5.5 32bitのDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法は、以下の通りです。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のRHEL 5.5(32bit)のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| CentOS directory | 上記サイト上のパス(例:/Linux/centos/5/os/x86-64) |
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
Karesansuiは商用、非商用を問わずだれでも無料で利用することができます。
GPLとLGPLで構成するライセンスになっています。詳細はこちらを参照してください。
現時点では対応していませんが、コミュニティで検討されています。
Karesansui(Xen)としては対応してませんが、直接コマンドを実行することで動作させることができます。
Karesansui(Xen)で完全仮想化をできないよう制限していることはありません。
現在サポートしているのはXenだけですが、近い将来 KVM にも対応する予定です。
Version 1.1でKVMに対応し、現在KVMとXenに対応しています。
インストールパックを用意していますので、簡単にインストールが可能です。初めての方はチュートリアルをご覧ください。
Karesansuiを使えば複雑な操作から解放されるはずです。Karesansuiは誰でも簡単に仮想化ができるアプリケーションを目指して日々開発しています。
是非、是非じゃんじゃんご紹介ください。バナーも提供中 です!
まったく問題ありません。KaresansuiはGPL・LGPLで配布されていますので、利用することによる制限はありません。
対応を予定しています。今しばらくお待ちください。
version 1.0.1で対応しました。
現在リリースされている 1.0.0では不具合によりエラーが発生します。
メーリングリストに回避方法があります。
[karesansui-users-jp:13]
次期マイナーバージョンアップで修正予定です。
Version 1.0.1で対応しました。
対応を予定しています。今しばらくお待ちください。
Version 1.0.1で対応しました。
データベースが停止していてもゲストやホストに影響が出ることはありません。ただしブラウザからの操作はできなくなります。
コンソールの表示には、オープンソースのTightVNC のJava appletを利用していますので、Javaが必要となります。
以下を試してみてください。通信ができるかどうかを確認します。クライアントのコンソールから以下のコマンドを発行します。
> ping {Karesansuiサーバー名}
次にKaresansuiサーバーでVNCポート番号が開いているか確認します。
# netstat -nalt
上記が正常な場合にはクライアントにVNCビューアを入れて接続してみてください。
「ゲスト」のデバイスタブから「Display」を選択し、「VNCキーマップ」を選択してください。日本語106/109キーボードは「ja」を選択してください。
フォーラム にて聞いてみてください。有志の方や開発者が答えてくれるはずです。
log.conf内の "[handler_*"カテゴリにある "args" を変更します。以下に変更例を記載します。
ログファイルサイズ 5M を 10Mにする場合
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/application.log', 'a', (10 *1024 *1024), 5)
ログファイル名をapplication.log を server.log にする場合
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/server.log', 'a', (5 *1024 *1024), 5)
ログローテートを5から10にする場合
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 10)
ログレベルによってログの出力を制限している可能性があります。 "[logger_*"カテゴリのlevelを確認してください。
ログレベル一覧(※上は下を包括します。) - DEBUG : 全て出力 - INFO : 一般情報のみ出力 - WARNING : 警告のみ出力(運用時の推奨設定) - ERROR : エラーのみ出力 - CRITICAL : 深刻なエラーのみ出力 - EXCEPTION : システム的なエラーのみ出力 補足 : ログ設定の変更時はウェブサーバーの再起動が必要です。
Python loggingで利用できるすべての形式に対応していますので詳しくはそちらを参照ください。
log.conf内の "[handler_*"カテゴリにある "args" に定義されています。
Karesansuiのログは複数のファイルで構成されています。
Karesansui全体のログ : /var/log/karesansui/application.log Karesansuiで発生したエラーのプログラムトレースログ : /var/log/karesansui/error.log Karesansuiが発行したSQL関連のログ : /var/log/karesansui/sql.log
A. プロキシサーバーの設定が正しく行われていない可能性があります。「トップ画面」「設定タブ」からプロシキサーバーの設定を確認してみてください。
例)(Bad Request) [400] ('Cannot retrieve repository metadata (repomd.xml) for repository: karesansui-base. Please verify its path and try again',)
KaresansuiはRESTfulアーキテクチャ(オーバーライドPOST対応)を採用しているため、管理画面のエラーはすべてHTTPレスポンスコードで判断されます。
以下に使用しているレスポンスコードの一部を記載します。
- 2xx : 正常に処理が終了した際に使用されるHTTPレスポンスコードです。 - Karesansuiでは、正常な動作になります。 - 3xx : リクエストの転送に使用されるHTTPレスポンスコードです。 - Karesansuiでは、正常な動作になります。 - 4xx : クライアント(主にブラウザ)からのリクエストに問題があった場合に使用されるHTTPレスポンスコードです。 - Karesansuiでは、主に不正なリクエストや存在しないURLアクセス時に使用されます。 - 5xx : サーバーエラー時に使用されるHTTPレスポンスコードです。 - Karesansuiでのエラーになりますので、エラーを解決する必要があります。
ゲストの作成画面で入力をするカーネルイメージ・initrdイメージですが、よくわからないという方も多いと思います。
以下に簡単な説明とインストール検証済みディストリビューションの入力例を記載しておきます。
カーネルイメージとはその名の通りLinuxカーネル本体です。
今回入力で利用するカーネルイメージは初期インストール時のブート(テキストベースのインストール前作業)に利用されます。
initrdとは、Linuxがブートする際に、一時利用されるファイルシステムのイメージを指します。
今回入力で利用するカーネルイメージは「カーネルイメージ」でブートした際に利用されます。
カーネルイメージ
http://<ミラーサーバー>/Linux/centos/5.3/os/i386/images/xen/initrd.img
initrdイメージ
http://<ミラーサーバー>/Linux/centos/5.3/os/i386/images/xen/vmlinuz
ヒント
ゲストインストール時に必要なインストールイメージパス例
http://<ミラーサーバー>/Linux/centos/5.3/os/i386/
カーネルイメージ
http://<ミラーサーバー>/Linux/fedora/releases/10/Fedora/i386/os/images/pxeboot/initrd-PAE.img
initrdイメージ
http://<ミラーサーバー>/Linux/fedora/releases/10/Fedora/i386/os/images/pxeboot/vmlinuz-PAE
ヒント
ゲストインストール時に必要なインストールイメージパス例
「http://<ミラーサーバー>/Linux/fedora/releases/10/Fedora/i386/os/」 です。
補足
Fedora 11 previewもインストール可能なことを確認しています。
Karesansuiは、設定ファイルと定数ファイルで初期値等を決めています。
設定ファイルの説明はこちらです
パッケージでインストールした場合は、「/opt/karesansui/lib/python/karesansui/lib/const.py」に配置されています。
さまざまな設定がありますが、よく使う設定を1つ紹介します。
- ゲストOS追加時に設定される、コンソール(VNC)のキーボード配列を変更したい場合は、DEFAULT_KEYMAPを変更します。
注)設定後はウェブサーバーを再起動してください。
Karesansuiを利用してゲストを作成した場合、特定のディレクトリに保存・管理されています。
パッケージインストールを行っている場合
| xen用のゲスト設定 | /etc/opt/hde/xen/<ドメイン名> |
| libvirt用のゲスト設定 | /etc/opt/hde/libvirt/qemu/<ドメイン名>.xml |
| ゲストのネットワーク設定 | /etc/opt/hde/libvirt/qemu/networks/ |
| ゲストインストール時に一度だけ利用されるイメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/boot/ |
| ゲストのディスクイメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/disk/*.img |
| ゲストの本体イメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/images/<ドメイン名>.img |
| ゲストのスナップショットイメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/snapshot/ |
ゲストのバックアップが必要な場合は、上記をバックアップすることで最低限のバックアップが可能です。
注)Karesansuiのバックアップは含みません。
■ログの設定
パッケージからのインストールの場合、「/etc/opt/karesansui/log.conf(以後log.conf)」ファイルにログの設定がされています。
設定方法はPython logging を参照ください。
ログ関連のFAQは こちらから
ホストAのKaresansuiにアクセスし、ヘッダーの「オプション」「Karesansui について」画面を表示し、バージョン情報を取得します。

Step 1で調べたバージョンと同じKaresansuiをダウンロードし、インストールを行います。
注)ホストBのデータベースは、ホストAと同じデータベースを指定し、「データーベースを初期化する」のチェックボックスを外します。

/etc/opt/karesansui/application.conf ファイルの application.uniqkey がホストBのユニークキーになります。 Step4で使用しますのでメモしておいてください。 設定されている値 例) application.uniqkey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ホストAの管理画面にアクセスし、トップ画面にある「追加」アクションを押下します。 ホストの追加画面で、入力項目を入力し「追加」を押下します。
入力項目の補足 :
- ホスト名(必須) : 管理画面に表示するホスト名です。特に指定はありませんので、わかりやすい名前を入力してください。
例)ホストB
- FQDN(必須) : ホストBにアクセスできるFQDN・ドメイン名またはIPアドレスを入力します。
例)hostb.karesansui-project.info or 192.168.0.1
- UUID(必須) : Step 3で調べたユニークキーを入力します。
- ノート(任意) : メモ書きです。
- タグ(任意) : カンマ区切りでタグを入力します。
ホストAの管理画面にアクセスし、Step 4で追加したホストBのアイコン(通常は N/Aアイコンが表示されています。)を選択し、詳細を表示させます。 「その他の情報」「ホストのトップページへのリンク」のリンクをクリックし、ホストの移動を行います。 注)この際、再度Basic認証ダイアログが表示されることがあります。 移動後、ヘッダーのホスト名がホストBのものになっていればホストの追加は完了です。※A
※A :
画像の右がホスト名になります。
Karesansuiの一部はLGPL、一部はGPLです。 コア部分のソースコードは利用制約の少ないLGPLライセンスを採用していますので、 再利用時のライセンスによる問題を軽減します。
すべてのソースコードにライセンスが明記されていますので、迷うことなく利用することができるはずです。
ただし、例外としていくつかのファイルには技術的な問題でライセンス表記をしていません。
ソースツリーに含まれるtemplate/default/include以下のファイルはLGPLです。その他のtemplate/default以下のファイルはGPLです。
これは、あなたがあなたの書いたオリジナルのファイルをtemplate/defaultにファイルを置く場合GPLを付さないといけないということは意味しません。また、template/default/includeにファイルを置く場合はLGPLを付さないといけないということは意味しません。
また、template/defaultやtemplate/default/includeに誰かがファイルを置き、それがライセンス表記されていなかったら、GPLやLGPLが付されたということにはなりません。
私たちは私たちが配布しているファイルについてのみ言及することができますので、それ以外のファイルについては著作者に問い合わせてください。
ソースツリーはKaresansui以外のオープンソースプロジェクトの成果物を含んでいます。それらはKaresansuiとは異なるライセンスポリシーで配布されていることがあるので、それぞれのライセンス表記をご確認下さい。
Karesansuiで実行される更新系処理のほとんどはジョブマネジャーを経由して実行されます。
Karesansuiは、 Pysilhouette を採用しています。
逐次的に登録されたジョブ(コマンド)を実行する機能を有するジョブマネジャーです。
主にウェブアプリケーションのバックグラウンド処理を実現するために開発されています。
※ PysilhouetteはKaresansui Projectによって運営/管理されています。
Karesanuiパッケージに含まれるPysilhouetteを想定して説明します。
Comming soon.
こちらを参照してください。
Pysilhouetteのログは5つで構成されています。
pysilhouette全体のログ : /var/log/pysilhouette/application.log pysilhouetteで発生したエラーのプログラムトレースログ : /var/log/pysilhouette/error.log pysilhouetteが発行したSQL関連のログ : /var/log/pysilhouette/sql.log pysilhouetteサービスが出力する標準エラー出力ログ : /var/log/pysilhouette/stderr.log pysilhouetteサービスが出力する標準出力ログ : /var/log/pysilhouette/stdout.log
ウェブサービスに必要以上の権限を付加することによるセキュリティリスクを考慮したためです。
※Karesansuiでは仮想マシンを立ち上げるサーバーのことを「ホスト」、ホスト上で動作する仮想マシンのことを「ゲスト」と呼びます。
| 分類 | 機能 | 説明 | 対応 |
| 共通 | ログイン | Basic認証でログインします。 | ○ |
| 共通 | ログアウト | ログアウトします。 | ○ |
| 共通 | プロキシ | ネットワーク関連で利用するProxyを設定することができます。 | ○ |
| 共通 | マイアカウント設定 | 現在ログインしているアカウント情報を更新することができます。 | ○ |
| 共通 | タグ | ゲストのグルーピングができます。今後さまざまなリソースをタグによってグルーピングすることができるようになります。 | ○ |
| セキュリティ | SSL接続設定 | SSLの有効・無効を設定できます。 | ○ |
| セキュリティ | アクセスポリシー | Karesansuiへのアクセスポリシーを設定できます。 | ○ |
| セキュリティ | VNCへのパスワード設定 | ゲストへVNC接続する際に利用する、パスワードを設定することができます。 | ○ |
| セキュリティ | ホワイトリスト | 実行可能なジョブコマンドをホワイトリスト形式で制限することができます。(画面からの設定はできません。) | ○ |
| その他 | Karesansui | Karesansuiのバージョン情報を表示します。 | ○ |
| 全体 | 一覧ページ | ホストの一覧を表示します。 | ○ |
| 全体 | Karesansui設定(ウェブサーバー) | Karesansuiの設定ができます。プロキシの設定は Version 1.0 では現在使用されていません。 | ○ |
| 全体 | Karesansui設定(メールサーバー) | Karesansuiの設定ができます。設定は Version 1.0 では現在利用されていません。 | ○ |
| 全体 | ホスト、ゲストのツリーナビゲーション | Karesansuiで管理しているホスト、ゲストをツリー形式で表示します。 | ○ |
| 全体 | 複数のホストを管理 | Karesansuiで管理されているホストを複数管理することができます。 | ○ |
| ホスト | ゲストの一覧ページ | ゲストの一覧を表示します。 | ○ |
| ホスト | 情報ページ | ホストの情報を表示します。 | ○ |
| ホスト | ゲストの作成 | ゲストの作成ができます。 | ○ |
| ホスト | ゲストのコピー | 現在管理されているゲストのコピーができます。 | ○ |
| ホスト | ゲストの削除 | 現在管理されているゲストの削除ができます。 | ○ |
| ホスト | 編集 | ホストの情報を編集します。 | ○ |
| ホスト | ジョブ一覧 | ホストで実行されたジョブ情報を検索、表示できます。 | ○ |
| ホスト | ネットワークの追加・編集・削除 | 仮想ネットワークを管理できます。 | ○ |
| ホスト | ファイアーウォールの追加・編集・削除 | ファイアーウォールの管理ができます。 | ○ |
| ホスト | ファイアーウォールの起動・停止 | ファイアーウォールの起動、停止ができます。 | ○ |
| 管理 | ユーザ作成・編集・削除 | ユーザの管理ができます。 | ○ |
| 管理 | タグ作成・編集・削除 | タグの管理ができます。 | ○ |
| ゲスト | 情報ページ | ゲストの情報を表示します。 | ○ |
| ゲスト | 起動 | ゲストの起動ができます。 | ○ |
| ゲスト | 一時停止・復帰 | ゲストの一時停止、復帰ができます。 | ○ |
| ゲスト | 強制シャットダウン | 強制的にゲストを停止できます。 | ○ |
| ゲスト | シャットダウン | 通常の手順でゲストを停止できます。 | ○ |
| ゲスト | スナップショットの作成・編集・削除 | スナップショットの管理ができます。 | ○ |
| ゲスト | スナップショットの適応 | 指定したスナップショットを管理しているゲストに適応できます。 | ○ |
| ゲスト | ストレージ(HDD)の追加・編集・削除 | ストレージ(HDD)の管理ができます。 | ○ |
| ゲスト | ネットワーク(NIC)の追加・編集・削除 | ネットワーク(NIC)の管理ができます。 | ○ |
| ゲスト | ディスプレイ(VNC)の追加・編集・削除 | ディスプレイ(VNC)の管理ができます。 | ○ |
| ゲスト | CPU数の変更 | CPU数の変更できます。 | ○ |
| ゲスト | メモリの変更 | メモリサイズの変更ができます。 | ○ |
| ゲスト | ジョブ一覧 | 対象のゲストで実行されたジョブ情報を検索、表示できます。 | ○ |
| ゲスト | コンソール | ブラウザからグラフィカル(GUI)な画面でゲストを操作することができます。 | ○ |
Karesansuiのソースコードを取得するには、いくつかの方法があります。
ソースコードは、Karesansuiのインストールパック(tarball)の中に、RPMパッケージとしても提供されています。
Karesansuiのインストールパックは、ダウンロードページ から最新のKaresansui-1.x.tar.gz を選択してダウンロードできます。
最新のソースコードは、sourceforge.jpのgitリポジトリから取り寄せることもできます。
gitがインストールされていない場合は、あらかじめgitをインストールした後、以下のコマンドでダウンロードすることができます。
$ git clone git://git.sourceforge.jp/gitroot/karesansui/karesansui.git
Pythonの追加サーチパスを設定します。
※複数指定する場合はカンマ(,)で区切ります
例) application.search.path=/opt/hde/lib/python,/opt/pysilhouette/lib/python,/opt/karesansui/lib/python
ログ出力設定ファイルパスを設定します。
ログ出力設定ファイルついてはこちらを参照してください。
例) application.log.config=/etc/opt/karesansui/log.conf
URIのプレフィックスを設定します。
以下の{}内を設定します。
http://example.com{/karesansui/v1}/
※v1はKaresansuiのメジャーバージョンを指定しておくことを推奨します。
例) application.url.prefix=/karesansui/v1
Karesansuiが使用するデフォルトのロケールを設定します。
※現在、ja_JPとen_USに対応しています。
※ログインしている場合は、ログインユーザのロケールが優先されます。
例) application.default.locale=ja_JP
Karesansuiのテーマを設定します。
※初期インストール時はdefaultに設定されています。
例) application.template.theme=default
Karesansuiが一時的に作成するファイル等々をおくディレクトリパスを設定します。
例) application.tmp.dir=/tmp
Karesansuiが使用するジョブコマンドのディレクトリパスを設定します。
※Karesansuiの実行ユーザ権限で書き込みができる必要があります。
例) application.bin.dir=/opt/karesansui/bin
各種設定ファイルのテンプレートディレクトリを設定します。
例) application.generate.dir=/opt/karesansui/karesansui/templates/default/_generate
Karesansuiで利用するメールアドレスを設定します。
例) application.mail.email=karesansui@example.com
Karesansuiで利用するメールサーバのポート番号を設定します。
例) application.mail.port=25
Karesansuiで利用するメールサーバ名を設定します。
例) application.mail.server=localhost
Karesansuiでプロキシサーバを利用するかを設定します。
1=有効
0=無効
例)application.proxy.status=0
Karesansuiで利用するプロキシサーバ名を設定します。
例) application.proxy.server=localhost
Karesansuiで利用するプロキシサーバのポート番号を設定します。
例) application.proxy.port=9080
Karesansuiで利用するプロキシサーバにログインするユーザ名を設定します。
例) application.proxy.user=bar
Karesansuiで利用するプロキシサーバにログインするパスワードを設定します。
例)application.proxy.password=foo
KaresansuiをLighttpdで動作させる場合に利用する設定ファイルを置くディレクトリを設定します。
例) lighttpd.etc.dir=/etc/opt/hde/lighttpd/conf.d/karesansui
Karesansuiで利用するデータベースのバインドを設定します。
RFC-1738で定義されているスタイルで設定してください。
さらに詳しい設定についてはSQLAlchemyのサポートデータベース を参照してください。
MySQL mysql://localhost/<データベース名> mysql://<ユーザ名>:<パスワード>@<ホスト名>/<データベース名> mysql://<ユーザ名>:<パスワード>@<ホスト名>:<ポート番号>/<データベース名> PostgreSQL postgres://<ユーザ名>:<パスワード>@<ホスト名>:<ポート番号>/<データベース名> SQLite※Karesansuiの実行権限で読み取り・書き込み可能である必要があります。 sqlite:////<絶対パス>/<ファイル名>-絶対パスで定義 sqlite:///<相対パス>/<ファイル名>-相対パスで定義 例) database.bind=sqlite:////var/opt/karesansui/karesansui.db
コネクションプールの利用可否を設定します。
0=利用しない
1=利用する
例)database.pool.status=0
通常時のコネクションプール数を設定します。
※SQLiteでは利用できません。設定は無視されます。
例)database.pool.size=1
コネクションプールの最大数を設定します。
例)database.pool.max.overflow=10
Karesansuiで使用するPysilhouetteソフトウェアの設定ファイルパスを設定します。
※Karesansuiの実行ユーザ権限で読み取り可能である必要があります。(書き込み・実行権限は必要ありません。)
例)pysilhouette.conf.path=/etc/opt/pysilhouette/silhouette.conf
Karesansuiが利用するyumのキャッシュディレクトリを設定します。
注)wwwhde(hde-lighttpdサービス)ユーザの書き込み権限が必要です。
例)application.updater.yum.cachedir=/var/opt/karesansui/cache/yum
Karesansui経由で実行されたyumのログファイルを設定します。
例)application.updater.yum.log.file=/var/log/karesansui/yum.log
Karesansui用のyumリポジトリ名を設定します。
例)application.updater.yum.target.repos=karesansui-base
Karesansuiには主に5つのサービスを利用しています。
注)インストーラーでインストールしている場合はインストール時に自動起動設定が行われていますので再度行う必要はありません。
仮想化制御を抽象化したライブラリ(libvirtd) デーモンです。
注)ディストリビューションのlibvirtdが起動していると正常に起動することができません。
必ずlibvirtdは停止させた上でhde-libvirtdを起動してください。
起動、停止方法の例 起動 : /etc/init.d/hde-libvirtd start 停止 : /etc/init.d/hde-libvirtd stop 自動起動設定の例 設定 : chkconfig hde-libvirtd on 設定確認 : chkconfig --list hde-libvirtd
Webインターフェース用のWebサーバー(Lighttpd)
起動、停止方法の例 起動 : /etc/init.d/hde-lighttpd start 停止 : /etc/init.d/hde-lighttpd stop 自動起動設定の例 設定 : chkconfig hde-lighttpd on 設定確認 : chkconfig --list hde-lighttpd
ジョブ管理サービス
起動、停止方法の例 起動 : /etc/init.d/silhouetted start 停止 : /etc/init.d/silhouetted stop 自動起動設定の例 設定 : chkconfig silhouetted on 設定確認 : chkconfig --list silhouetted
以下のソフトウェアが不足する可能性がありますので事前にインストールしておく必要があります。
パッケージ名iscsi-initiator-utils cyrus-sasl-md5 gnutls-utils PyXMLyumからのインストール
# yum install iscsi-initiator-utils # yum install cyrus-sasl-md5 # yum install qemu # yum install gnutls-utils # yum install PyXMLrpmからのインストール
# rpm -ivh iscsi-initiator-utils # rpm -ivh cyrus-sasl-md5 # rpm -ivh qemu # rpm -ivh gnutls-utils # rpm -ivh PyXML
正常にインストールしたにも関わらず、正常に動作しない場合は、インストールしたディレクトリ内にある karesansui-checkenv を実行してください。現在のシステム環境情報が表示され問題を解決に導きます。
実行結果例
# ./karesansui-checkenv @==========================================@ @ Karesansui Environment Check Program @ @==========================================@ KaresansuiのRPMパッケージが正常にインストールされているかをチェック... OK Karesansuiの設定パラメータをチェック... OK Karesansuiのpythonモジュールをインポートできるかチェック... OK Karesansuiのグループが存在するかをチェック... OK Karesansuiの設定ファイルがロードできるかをチェック... OK sqlalchemyモジュールをインポートできるかチェック... OK pysilhouetteモジュールをインポートできるかチェック... OK pysilhouetteの設定パラメータをチェック... OK pysilhouetteの設定ファイルがロードできるかをチェック... OK KaresansuiのデータベースAPIモジュールをインポートできるかチェック... sqlite データベース Karesansui に接続できるかをチェック... sqlite:////var/opt/karesansui/karesansui.db KaresansuiのSQLiteデータベースのパーミッションをチェック... OK pysilhouetteのデータベースAPIモジュールをインポートできるかチェック... sqlite データベース pysilhouette に接続できるかをチェック... sqlite:////var/opt/pysilhouette/pysilhouette.db pysilhouetteのSQLiteデータベースのパーミッションをチェック... OK Karesansuiのファイル/ディレクトリのパーミッションをチェック... OK Karesansuiのpythonモジュールをインポートできるかチェック... OK 全てのチェックをクリアしました。 下記サイトにアクセスしログインしてください。 https://karesansui-project.info/karesansui/v1/ http://karesansui-project.info/karesansui/v1/
Karesansuiの画面は4つのパーツで構成されています。

A: ヘッダー
B:メイン
C:ドメインツリー
D:ログメッセージ
¶A:ロゴ
クリックするとトップページへ移動します。
B:パンくず
KaresansuiはTOP, ホスト、ゲストの3つの画面を遷移して操作します。
この部分には現在どの画面にいるか表示されます。
また、リンクをクリックすることでその画面へ遷移します。
C:ログインユーザ名表示
ログインしているサーバーのホスト名や、ログインしているユーザーのメールアドレスが表示されます。
D:メニュー
ログインしているユーザーの情報を編集したり、Karesansuiからログアウトすることができます。
E:通知アイコン
実行中のジョブがあることや、サーバーとAJAX通信中であることを点滅して示すアイコンです。
¶A:タブ
クリックすると、その内容にメイン画面が遷移します。
B:ボタン
クリックすると、追加や変更などを行うことができます。
暗い色になっているボタンは押しても実行することができません。
C:タグ
ホスト一覧やゲスト一覧の画面に表示されます。ホストやゲストに登録されたタグを使って
アイコンの表示を絞り込むことができます。
D:ホスト(ゲスト)アイコン
一度目のクリックで下の詳細表示画面に詳細が表示されます。
その際、背景に緑色の枠が表示されます。
二度目のクリックで選択したホスト(ゲスト)の画面に遷移します。
ホスト(ゲスト)の編集で、表示するアイコンを変更することができます。
E:詳細表示
ジョブの登録者や登録時間、ホストのメモリ総量やディスク使用量など、細かい情報を表示します。
F:更新アイコン
クリックすると、メイン画面の内容を更新します。
¶A:ツリー
ホストと、その上に作られているゲストをツリー状に表示します。
各リンクをクリックすることでそのホストやゲストの画面に遷移します。
また、ホストの横にある▼のアイコンを押すことで開閉することができます。
B:更新アイコン
クリックするとツリーの内容を更新します。
¶A:ログメッセージ
直近5件のジョブの進捗や結果などの情報を表示します。
B:更新アイコン
クリックするとログメッセージの内容を更新します。
このチュートリアルでは、パッケージング済みのKaresansuiを利用したインストールから、実際にゲスト上にOSインストールし動作させるまでを紹介します。

ホスト、ゲストともにCentOS 5.4 32bitを用いたときのチュートリアルです。
CentOS 5.4以降のISOイメージを利用しホストOSを作成します。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) ソフトウェアのセットアップで「仮想化」「KVM」にチェックを入れてください。
(必須ではありません) ストレージ拡張を容易に行えるため、LVMを利用することを推奨しています。
注)デフォルトパーティションを利用するとデフォルトでLVMになります。


Karesansuiは、これらのインストールパッケージと依存関係があります。別途インストールする必要があります。
# rpm -e --nodeps kvm-qemu-img
ダウンロードページ から最新のkaresansui-1.1.0-x-install-pack.tar.gzをダウンロードします。

# tar xzvf karesansui-1.1.0-1-install-pack.tar.gz # cd Karesansui # ./karesansui-install
インストールスクリプト実行後の画面の流れは下記の通りです。
「OK」ボタンを押して、そのまま次の画面へ進みます。

Karesansuiの管理画面にログインする管理者の設定を行います。各項目の説明は下記の通りです。
| ホスト名(FQDN) | このホストOSのFQDNを入力します。 |
| パスワード | 管理者の認証パスワードを入力します。 管理画面へのアクセスに必要です。 |
| パスワード(再入力) | 上記パスワードを再入力します。 |
| メールアドレス | 管理者のメールアドレスを入力します。管理画面へのアクセスに必要です。 |
| 言語 | 管理者の利用する言語を選択します。管理画面で表示される言語です。 |

Karesansuiで使用する仮想マシン制御の抽象化サービス(libvirt)にSSL接続するための鍵と証明書の設定を行います。
各項目の説明は下記の通りです。
| 国名 | 国名のコードを大文字のアルファベット2文字で入力します。 |
| 都道府県名 | 都道府県名をローマ字で入力します。 |
| 市町村名 | 市町村名をローマ字で入力します。 |
| 組織名 | 会社名や団体名などの組織名を入力します。 |
| サーバー名とドメイン名(FQDN) | このホストOSのFQDNを入力します。 |

Karesansuiが利用するデータベースに関する設定を行います。
MySQLやPostgreSQLを利用する場合は、あらかじめデータベースを作成し、ホストOSから接続可能なことを確認してください。作成方法はリファレンスのMySQL, PostgreSQLを使用する場合の手順 を参照してください。
| Karesansui データベースパス | Karesansuiが利用するデータベースを指定します。 |
| pysilhouette データベースパス | pysilhouetteが利用するデータベースを指定します。 |
| データベースを初期化する | データベースに初期データを投入する場合は選択します。 |
| MySQL | mysql://username:password@hostname/database?charset=utf8 |
| PostgreSQL | postgres://username:password@hostname:port/database |
| SQLite | sqlite:////var/opt/karesansui/karesansui.db |

インストールを続行したい場合は、「OK」を押し、ソフトウェアのインストールを始めます。
これまでの入力に誤りがある場合やインストールを中断したい場合は、「戻る」、「取り消し」を押してください。

ソフトウェアのインストールの進捗状況が表示されます。
ソフトウェアのインストール、鍵・証明書の生成、設定ファイルの書き込み、データベースの初期化、サービスの有効化 の順に進捗します。

インストールが正常に完了すると、下記画面のようにメッセージが表示されます。
インストールの途中でエラーになると、エラー原因のメッセージが表示されます。エラーメッセージはインストールログにも出力されますので、ログを確認した後、エラー原因を解消し再度インストールを行ってください。

終了しました。 下記サイトにアクセスしログインしてください。ログインIDは'taizo@karesansui-project.info'です。 https://karesansui.example.com/karesansui/v1/ http://karesansui.example.com/karesansui/v1/ 詳細は、/root/karesansui-install.log を参照してください。KVMを仮想化ハイパーバイザーに利用している場合は、ネットワーク設定ファイルの変更も行われますので
# /etc/init.d/network restart
インストール完了後に表示された 'https://{ホスト名}/karesansui/v1/' に接続すると、認証ダイアログが表示されますので、インストール時に指定した管理者のメールアドレスとパスワードを入力します。

認証をパスして、以下のような画面が表示されればインストールは成功です。

以降は、ゲストに CentOS 5.4(i386) をインストールする場合を例に、2通りの方法を説明します。
ホストOSが既にインターネットに繋がっている場合は、外部サーバー上にある、カーネルイメージ、および、OSイメージを取得してインストールを行います。プロキシサーバー経由でのインストールはできませんので、その場合はFTPサーバーを利用してください。
ホストOSから CentOS 5.4 のOSイメージのURLに接続可能であるかどうかを確認してください。http://<OSイメージ配布サイトのFQDN>/Linux/centos/5/os/i386/ ftp://<OSイメージ配布サイトのFQDN>/Linux/centos/5/os/i386/
ホストOSがインターネットに繋がっていない場合は、CentOS 5.4(i386)のDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
CentOS 5.4(i386)のDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
KVMを仮想化ハイパーバイザーに利用している場合は、OSインストールDVDのISOイメージからインストールすることも可能です。
ISOイメージがなくOSのDVDがある場合は、下記の方法でOSインストールDVDのISOイメージを生成することができます。DVDをドライブに入れ、下記コマンドを実行します。# dd if=/dev/cdrom of=/iso/centos54-i386.iso dd: reading `/dev/cdrom': Input/output error 269860+0 records in 269860+0 records out
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法を、前述のインストールのタイプごとに示します。
| カーネルイメージ | 接続可能な外部のWebサーバーまたはFTPサーバー上のカーネルイメージのURL (例:Xenの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/vmlinuz',KVMの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/vmlinuz') |
| initrdイメージ | 接続可能な外部のWebサーバーまたはFTPサーバー上のinitrdイメージのURL (例:Xenの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/initrd.img',KVMの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/initrd.img') |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
| ISOイメージ | ISOイメージの絶対パス(例:/iso/centos54-i386.img) |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のCentOS 5.4 のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では前述のカーネルイメージで指定したプロトコル(「HTTP」または「FTP」)を選択し、「HTTP」の場合は「HTTP Setup」、「FTP」の場合は「FTP Setup」で接続先を設定してください。
| Web site name または FTP site name | OSイメージ配布サイトのFQDN |
| CentOS directory | 上記サイト上のパス(例:/Linux/centos/5/os/i386) |
OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| CentOS directory | /pub/ |
「Installation Method」の選択の必要はありません。
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
ホスト、ゲストともにRed Hat Enterprise Linux 5.4 64bit( 以下、RHEL 5.4(64bit) )を用いたときのチュートリアルです。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) Red Hat Network で、「RHEL Virtualization (v. 5 for 64-bit x86_64)」チャネルを追加し、下記コマンドであらかじめkvmをインストールしてください。# yum install kvm
Karesansuiのインストールは、CentOS 5.4の場合と同じです。
CentOS 5.4のチュートリアル を参照してください。
RHEL 5.4(64bit)のDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
RHEL 5.4(64bit)のDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法は、以下の通りです。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のRHEL 5.4(64bit)のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| RHEL directory | /pub/ |
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
ホスト、ゲストともにCentOS 5.4 64bitを用いたときのチュートリアルです。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) ソフトウェアのセットアップで「仮想化」「KVM」にチェックを入れてください。
(必須ではありません) ストレージ拡張を容易に行えるため、LVMを利用することを推奨しています。
注)デフォルトパーティションを利用するとデフォルトでLVMになります。
Karesansuiのインストールは、CentOS 5.4の場合と同じです。
CentOS 5.4のチュートリアル を参照してください。
CentOS 5.4 64bitのDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
CentOS 5.4 64bitのDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法は、以下の通りです。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のRHEL 5.4(64bit)のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| CentOS directory | 上記サイト上のパス(例:/Linux/centos/5/os/x86-64) |
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
ホスト、ゲストともにCentOS 5.4 32bitを用いたときのチュートリアルです。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) ソフトウェアのセットアップで「仮想化」「KVM」にチェックを入れてください。
(必須ではありません) ストレージ拡張を容易に行えるため、LVMを利用することを推奨しています。
注)デフォルトパーティションを利用するとデフォルトでLVMになります。
Karesansuiのインストールは、CentOS 5.4の場合と同じです。
CentOS 5.4のチュートリアル を参照してください。
CentOS 5.4 32bitのDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
CentOS 5.4 32bitのDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法は、以下の通りです。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のRHEL 5.4(32bit)のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| CentOS directory | 上記サイト上のパス(例:/Linux/centos/5/os/x86-64) |
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
対象者
利用しているデータベースが、SQLite以外の方が対象です。
影響範囲
ジョブマネージャー(Pysilhouette)全体
今回の不具合について
インストーラーに不具合があり、どのデータベースパスを入力しても、ジョブマネージャー(Pysilhoutte)がSQLiteを選択してしまいます。
その結果、ネットワーク接続に対応していないSQLiteですと、マルチホストに対応することができなくなります。
この不具合の修正版を1.0.2でリリースしましたが、手動で行わなければならない作業がいくつかあります。
以下の手順でアップデートしてください。
1. データベースの作成
移行先のPysilhouetteデーターベースを作成してください。
PostgreSQLの場合
# createdb -U username -W pysilhouette --encoding=utf8
MySQLの場合
# mysql -u username -p -e 'CREATE DATABASE pysilhouette DEFAULT CHARACTER SET utf8;'
注意)
UTF-8でデータベースを作成してください。
2. 新パッケージをダウンロードし、伸長する
# rm -rf Karesansui # tar zxvf karesansui-<バージョン>-install-pack.tar.gz # cd Karesansui
3. 現在のデータベースパスの確認
現在のPysilhouetteのデータベースパスを取得しておきます。
sqlite:////var/opt/pysilhouette/pysilhouette.db
4. Karesansuiをアップデートする
Karesansuiをアップデートし、Pysilhouetteのデータベースを変更します。
チュートリアル を参考にKaresansuiをアップデートしてください。
# ./karesansui-install
「データベースを初期化する」のチェックを外してください! Karesansuiのデータベースが初期化されてしまいます!
5. インストールチェック
./karesansui-checkenvを実行しエラーがないか確認します。
また、「データベース pysilhouette に接続できるかをチェック... 」が指定したデータベースパスになっているか確認してください。
# ./karesansui-checkenv
6. データベースの移行
データベースをSQLiteからMySQLまたはPostgreSQLへコピーをします。
# cd /opt/pysilhouette/share/doc/pysilhouette-0.6.2/tool/ # export PYTHONPATH=/opt/hde/lib/python:/opt/karesansui/lib/python:/opt/pysilhouette/lib/python:$PYTHONPATH # ./sqlite2other.py --input=<移行元データベースパス> --output=<移行先データベースパス>
SQLite : sqlite:////var/opt/karesansui/pysilhouette.db MySQL : mysql://username:password@hostname:port/pysilhouette?charset=utf8 PostgreSQL : postgres://username:password@hostname:port/pysilhouette注意)
コマンドの実行結果で画面に出力される「copy num」の数値はあとで使用しますので、保管してください。 (copy num - xxx) のxxxの部分 sqlite2other.py は SQLite -> MySQL or PostgreSQLの移行のみサポートしています。例)
# ./sqlite2other.py --input=sqlite:////var/opt/pysilhouette/pysilhouette.db --output=mysql://username:password@localhost/pysilhouette?charset=utf8 Cleanup Database [OK] copy num - 3
参考)
データベースパスの書式の詳細な説明は、リファレンス を参考にしてください。
7. 自動インクリメントの変更
Pysilhouetteデータベースの自動インクリメントの値を変更します。
Pysilhouetteデータベースにアクセスして、下記のSQLを実行してください。
SQLの<copy numの数字>の部分は、「4. データベースの移行」の手順で実行した
./sqlite2other.pyで出力されるcopy numの数字に置き換えて実行してください。
PostgreSQLの場合
select setval('jobgroup_id_seq', <copy numの数字>);
select setval('job_id_seq', <copy numの数字>);
例)
# psql pysilhouette -U username -h localhost -c "select setval('jobgroup_id_seq', 3);"
# psql pysilhouette -U username -h localhost -c "select setval('job_id_seq' 3);"
MySQLの場合
ALTER TABLE jobgroup AUTO_INCREMENT = <copy numの数字>;
ALTER TABLE job AUTO_INCREMENT = <copy numの数字>;
例)
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE jobgroup AUTO_INCREMENT = 3;"
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE job AUTO_INCREMENT = 3;"
参考)# ./sqlite2other.py --input=<移行元データベースパス> --output=<移行先データベースパス> Cleanup Database [OK] copy num - 3 <-- 置き換える数字
# /etc/init.d/hde-lighttpd stop # /etc/init.d/silhouetted restart # /etc/init.d/hde-lighttpd start
概要
1.1では、ゲストOSの各種データのファイル・ディレクトリ構成が変更されました。下記手順でアップグレードを行うことで、各種ソフトウェアの更新を行うとともに、ファイル・ディレクトリ配置の変換も行います。
なお、アップグレードを行う場合は、重要なデータは別のサーバーへバックアップしてから行うことをお薦めします。
以降では、CentOS 5.3 (i386) を例に説明します。
# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop
1. ダウンロードした1.1のインストールパックを任意のディレクトリに展開します。
# tar zxvf karesansui-1.1.0-xxx-install-pack.tar.gz
2. 展開されたインストールパックに含まれるインストーラを実行します。
# cd Karesansui
# ./karesansui-install
3. インストーラの案内にしたがって、項目を入力します。
このとき、データベース設定の画面でデーターベース初期化を選択しますと、それまでのデータが消去されてしまいますのでアップグレードを行いたい場合は、選択しないようご注意下さい。
4.インストーラの実行が終了後
各種ソフトウェア更新と既存データの移行は完了です。以下のコマンドで、Karesansuiの実行環境に問題ないか確認してください。
# ./karesansui-checkenv
(http://karesansui-project.info/wiki/karesansui/En_wiki_policy?version=3 に基づく翻訳)
comming soon.
Yes, it is. You may use Karesansui for business or personal use for free.
Karesansui is mainly under GPL and LGPL. See here for details.
Karesansui is aimed to support virtual servers so it does not support full-virtualization now. We are planning to support it in future. While it is not supported by Karesansui, you may setup full-virtualized guests using command line.
Yes, it only supports Xen now. But we are planning to support KVM in near future.
We prepared and install pack so you should be able to install Karesansui easily. Please follow our Tutorial.
We are working hard. Please take a look at our Karesansui's full ajax web control panel.
Yes! Thank you! Take the Get Karesansui Badge if you like it.
No. Nothing. It's GPL/LGPL so there's no problem.
No. Karesansui uses the database to keep information for its user interface. Guests don't stop if when the database stops, but you will have problems to access Karesansui control panel.
We use TightVNC Java applet for guest console. So you need Java installed for your browser.
> ping {Karesansui server IP address or name}
bq. Next, Check if the VNC port is open on your Karesansui host.# netstat -nalt
If all above are OK, then try to connect the guest from the client, using standard VNC viewer applications.
Select 'Display' from guest device tab, and set 'VNC Keymap'. Choose appropriate keymap.
Try the following instructions. First check if acpid is running. On the guest console, do as shown below.
# ps auxww | grep acpid root 34 0.0 0.0 0 0 ? S< 10:50 0:00 [kacpid] 68 2420 0.0 0.0 12320 876 ? S 10:51 0:00 hald-addon-acpi: listening on acpi kernel interface /proc/acpi/event root 4082 0.0 0.0 65372 868 pts/0 S+ 12:15 0:00 grep acpid
If /usr/sbin/acpid is not installed, install it. If /usr/sbin/acpid is not running, start it.
# rpm -q acpid 2>/dev/null || yum -y install acpid # /etc/init.d/acpid start # chkconfig acpid on
if acpid fails with error like "acpid: can't open /proc/acpi/event: Device or resource busy", try as following.
# /etc/init.d/haldaemon stop # /etc/init.d/acpid start # /etc/init.d/haldaemon start # chkconfig acpid on
Check if acpid is running on guest again.
# ps auxww | grep acpi root 34 0.0 0.0 0 0 ? S< 10:50 0:00 [kacpid] root 4107 0.0 0.0 3800 576 ? Ss 12:18 0:00 /usr/sbin/acpid 68 4122 0.0 0.0 12320 880 ? S 12:18 0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket root 4142 0.0 0.0 65372 876 pts/0 S+ 12:20 0:00 grep acpi
After acpid is started, try to shutdown/stop the guest.
Go and ask your question in the Karesansui Forum . Somebody may answer you.
Change "args" in the "[handler_*" category of log.conf
ex) Change log file size from 5M -> 10M
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/application.log', 'a', (10 *1024 *1024), 5)
ex) Change log file name from application.log -> server.log
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/server.log', 'a', (5 *1024 *1024), 5)
Change log rotate files from 5 -> 10
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 10)
May be the message is filtered by the log level. Check the level in "[logger_*" category of log.conf.
Log levels (From high to low. Higher level include lower level.) - DEBUG : Log all - INFO : General information - WARNING : Log warnings (recommended) - ERROR : Log errors - CRITICAL : Log severe errors - EXCEPTION : Log system errors After changing log.conf, restart the web server.
We use python logging. Check python logging instructions.
Where defined in "args" of "[handler_*" category of log.conf.
Karesansui writes log in several files.
General log of Karesansui: /var/log/karesansui/application.log Program trace for errors: /var/log/karesansui/error.log SQL committed by Karesansui: /var/log/karesansui/sql.log
A. May be the proxy server is not properly set. Check the proxy settings in "Top" - "Settings".
ex) (Bad Request) [400] ('Cannot retrieve repository metadata (repomd.xml) for repository: karesansui-base. Please verify its path and try again',)
A. We offer Karesansui package downloads via HTTP.
Karesansui software update (using yum) also accesses the URL below.
URL : http://updates.karesansui-project.info/ id : karesansui password : karesansui
Karesansui uses RESTful architecture (supporting override POST), so errors in Karesansui control panel has an HTTP response code.
Below are examples of the response code.
- 2xx : HTTP result code standing for normal execution. - On Karesansui, these normal response codes. - 3xx : HTTP result code used for redirections. - On Karesansui these are also normal response codes. - 4xx : HTTP result code for client request errors. - On Karesansui, this is returned on "Bad request" or "URL not found". - 5xx : HTTP result code standing for server errors. - This is probably Karesansui's error. If you get 5xx please report it in the forum or mailing list.
On creating guest, you are asked to input the kernel image an initrd image.
We will introduce some examples below.
Kernel image is the image of Linux kernel, as you may guess.
On guest creation, kernel image will be used only for the first installation of the guest.
initrd is the ram file sysmte which Linux temporally uses on boot.
On guest creation, initrd image will be used only when booted using the kernel image above.
kernel image
http://<mirror server name>/Linux/centos/5.3/os/i386/images/xen/initrd.img
initrd image
http://<mirror server name>/Linux/centos/5.3/os/i386/images/xen/vmlinuz
Hints
Install image path used on guest installation:
http://<mirror server name>/Linux/centos/5.3/os/i386/
kernel image
http://<mirror server name>/Linux/fedora/releases/10/Fedora/i386/os/images/pxeboot/initrd-PAE.img
initrd image
http://<mirror server name>/Linux/fedora/releases/10/Fedora/i386/os/images/pxeboot/vmlinuz-PAE
Hints
Install image path used on guest installation:
http://<mirror server name>/Linux/fedora/releases/10/Fedora/i386/os/
Karesansui uses configuration file and const.py file for configuration.
Coming soon.
If you installed Karesansui from install package, you have log configurations in /etc/opt/karesansui/log.conf.
For details, consult Python logging
*FAQ about logging are here.
Access Karesansui on host A, click "Options" which are in the header, and display "About Karesansui" screen. Take a memo of the version information.

Download the same version of the Karesansui you checked in Step 1, and install it into host B.
warning: While the install process, you will be asked about the database location. Specify the same location of host A, and DO NOT CHECK the "Initilize database" checkbox.

Look in /etc/opt/karesansui/application.conf of the host B, and find "application.uniqkey". The value is the unique key of host B. We use this in Step4, so take a memo of the unique key. example) application.uniqkey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Access host A, and click "Add" at the top page to add a host. Input required fields and press "Add".
Some explaination:
- Host Name (required): The host name to display on Karesansui control panel. There are no restrictions for this name so choose the name you like.
Example)Host B
- FQDN (required): FQDN of host B to access from the client. Input a FQDN or an IP address.
Example)hostb.karesansui-project.info / 192.168.0.1
- UUID (required) : Input the Karesansui unique key of Host B you checked in Step 3.
- Note : Space for a memo.
- Tags : Tags to put on this host.
Access host A Karesansui control panel, and click host B icon (usually the N/A icon are displayed) to display details. Find "Link to host" in "Other Information" and click to see the host B control panel. Basic authorization may be required at this step. If you see host B name in the control panel header, host was successfully added. *A
*A :
Host name should appear in the right of this image.
(This only applies if you have installed karesansui using the install package)
Guest Setting Files| xen guests | /etc/opt/hde/xen/<domain name> |
| libvirt guests | /etc/opt/hde/libvirt/qemu/<domain name>.xml |
| Guest network settings | /etc/opt/hde/libvirt/qemu/networks/ |
| Temporally used image on guest creation | /var/opt/hde/libvirt/domains/<domain name>/boot/ |
| Guest disk images | /var/opt/hde/libvirt/domains/<domain name>/disk/*.img |
| Guest images | /var/opt/hde/libvirt/domains/<domain name>/images/<domain name>.img |
| Guest snapshot images | /var/opt/hde/libvirt/domains/<domain name>/snapshot/ |
To backup guests, you may use above paths.
Some parts of Karesansui are GPL, and some are LGPL, but the core architecture is LGPL, to reduce problems for re-using. All source code has license notice, so you should clearly know what license to follow.
For exception, some Karesansui files some don't have license notice for technical problems. The files under template/default/include coming with the source tree are LGPL. Other files under template/default are GPL. This DOES NOT mean that your original files you put in template/default should be GPL, or template/default/include should be LGPL. This DOES NOT mean that files somebody put in template/default or template/default/include without any notice will become GPL or LGPL. We can only mention about files we distribute, so consult the original author for such files.
The Karesansui source tree includes other open source projects work, which may come with its own distribution rule. Please consult each license notice for these projects.
Many of the system update actions performed by Karesansui are executed using the job manager.
Karesansui uses Pysilhouette for the job manager.
Pysilhouette is a job manager which executes jobs(commands) which are registered in queue.
Support parallel job executions since 0.7.0.
Aimed to be used to execute web application background jobs.
Pysilhouette is developed by Karesansui Project.
This document explains about Pysilhouette included in Karesansui package.
Coming soon.
On this tutorial, we will go through brief instruction from Karesansui installation (using packages), to boot guest.

Use CentOS 5.5 or later to create host environment.
Just do usual installation, but be careful of the points below.
(Required) On software setup, check "Virtualization", "KVM".
(Not required but encouraged) Use LVM. It's easy to add storage in future. (It will be LVM-ready if you use the default partition offered by the installer)


Karesansui requires the following packages. Please make sure that these packages are installed.
# rpm -e --nodeps kvm-qemu-img
Download the newest release from the Download Page.

Installing Karesansui is very easy.
The installation steps will be as follow:
# tar xzvf karesansui-2.0.1-install-pack.tar.gz # cd Karesansui # ./karesansui-install
Here is the detailed instructions.
Press 'OK' button to display the next page.

Setting up Karesansui administrator account.
| Hostname | Specify FQDN of this Host OS |
| Mail address | Specify administrator's e-mail address. Requires this password at login. |
| Password | Specify administrator's password. Requires this password at login. |
| Password (again) | Specify the same password as 'Password' for confirmation |
| Language | Select the display languages of Karesansui. |

Setting up TLS certificates for libvirt remote SSL connection.
| Country | Specify country ISO 2 letter code |
| State or Province Name | Specify your state or province name |
| Locality Name | Specify your location (e.g. town) |
| Origanization Name | Specify your organization (e.g. company name) |
| Common Name | Specify FQDN of this Host OS |
| Initialize SSL certificates settings? | If you want to initialize SSL keys and certificates, check the checkbox. |

Setting up Karesansui database.
In case of using MySQL or PostgreSQL as database, you need to create a database for Karesansui in advance and make sure to connect the database.
| Database path | Specify the path of database for Karesansui |
| Database pysilhouette path | Specify the path database for pysilhouette job management daemon |
| Initialize database | If you want to initialize database, check the checkbox. |
| MySQL | mysql://username:password@hostname/database?charset=utf8 |
| PostgreSQL | pgsql://username:password@hostname/database |
| SQLite | sqlite:////var/opt/karesansui/karesansui.db |

Setting up a proxy connection to the Internet.
| Use Proxy | If you want to use proxy at all, check the checkbox. |
| Hostname | Specify the hostname of proxy server |
| Port Number | Specify the port number of proxy server |
| Username | Specify the username for authentication on a proxy server |
| Password | Specify the password for authentication on a proxy server |
| Password (again) | Input the same password as 'Password' for confirmation |

Setting up SMTP connection to send e-mail.
| Hostname | Specify the hostname of SMTP server |
| Port Number | Specify the port number of SMTP server |

Press 'OK' button to proceed installation, then the software installation will start.
Press 'Back' or 'Cancel' to abort installation.


When the installation process has finished successfully, messages will be displayed as follow.
If an error occurred and installation failed, error messages will be displayed.
See log file for further details to resolve errors. Then please install again.

Done. You can now login through following url. Your login credential is 'taizo@karesansui-project.info'. https://karesansui.example.com/karesansui/v2/ http://karesansui.example.com/karesansui/v2/ See '/root/karesansui-install.log' for detail.In the case that the KVM hypervisor is running on your machine, network device configuration files will be modified by installer. So you need to reload network.
# /etc/init.d/network restart
Try the URL displayed on the "Finish" screen (like "https://{hostname}/karesansui/v2/").
Please input e-mail address and password in user authentication dialog, then login to the Management Console.

If you see the screen like this, then the installation had all succeeded.

Here is an example of installing CentOS 5.5(i386) to guest.
We describe two ways to do that.
http://<Web site name>/centos/5/os/i386/ ftp://<FTP site name>/Linux/centos/5/os/i386/
# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/pubCheck to be sure that you can login to localhost as AnonymousFTP user.
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quitIf you fail to login, SELinux may work.
# echo 0 >/selinux/enforce
In the case that the KVM hypervisor is running on your machine, you can install from CD-ROM ISO image.
If you doesn't have CD-ROM ISO image but DVD-ROM, 'dd' command can create CD-ROM ISO image.# dd if=/dev/cdrom of=/iso/centos55-i386.iso dd: reading `/dev/cdrom': Input/output error 269860+0 records in 269860+0 records out
First, please click the host icon image on top window.
And click the 'Create' in 'Guests' tab, then 'Create guest' window as follow will be displayed.

Here we describe the ways to specify values for each item.
| Kernel image | the URL of CentOS 5.5's kernel image path (ex: case of Xen=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/vmlinuz', case of KVM=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/vmlinuz') |
| initrd image | the URL of CentOS 5.5's initrd image path (ex: case of Xen=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/initrd.img', case of KVM=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/initrd.img') |
As for other items, you can see the details clicking "?" displayed at the right of each item.
| Kernel image | case of Xen=>'/var/ftp/pub/images/xen/vmlinuz', case of KVM=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrd image | case of Xen=>'/var/ftp/pub/images/xen/initrd.img', case of KVM=>'/var/ftp/pub/isolinux/initrd.img' |
As for other items, you can see the details clicking "?" displayed at the right of each item.
Fill up all items, please click the "Create" button at the bottom of "Create guest" window.
Then, the message that the creation job is accepted will be displayed.
So the icon image that stands for new guest will appear in "Guests" window.

Please click the new guest icon, and then click the "Console" tab.
The console window of guest will be displayed. In this window, you can install CentOS 5.5 into guest as into real machine.

In the guest installation,
| Web site name | Web site name that provides OS image |
| CentOS directory | image path on this site(ex: /Linux/centos/5/os/i386) |
| FTP site name | FTP site name that provides OS image |
| CentOS directory | image path on this site(ex: /Linux/centos/5/os/i386) |
In the guest installation,
| FTP site name | IP address of host (NOT loopback address) |
| CentOS directory | /pub/ |
This is the end of the tutorial. You can now do basic operation about virtualization.
# rpm -q acpid 2>/dev/null || yum -y install acpid # /sbin/service haldaemon stop # /sbin/service apcid restart # /sbin/chkconfig apcid on # /sbin/service haldaemon start
Target users for this document
Users who are using SQLite with 1.0.0 and 1.0.1.
Affected area
The job manager (Pysilhouette)
Issue which was fixed in 1.0.2
Installer was causing the job manager (Pysilhouette) to lookup SQLite database path, even the user specified other database path (like MySQL or PostgreSQL), so multi-host configuration was not supported.
1.0.2 fixes these problems, but some manual configuration are needed for updates.
1. Database Creation
Create database for the job manager (Pysilhouette).
Example)
For PostgreSQL
# createdb -U username -W pysilhouette --encoding=utf8
For MySQL
# mysql -u username -p -e 'CREATE DATABASE pysilhouette DEFAULT CHARACTER SET utf8;'
Important)
Create database with UTF-8 charsets.
2. Download the new package and deploy.
# rm -rf Karesansui # tar zxvf karesansui-<version>-install-pack.tar.gz # cd Karesansui
3. Check current database path
Get current Pysilhouette database path.
sqlite:////var/opt/pysilhouette/pysilhouette.db
4. Update Karesansui
Update Karesansui and change Pysilhouette database path.
Update Karesansui as the steps in the tutorial
# ./karesansui-install
Uncheck "Initialize database", or you will lose your current database settings.
5. Installation Environment Check
Execute ./karesansui-checkenv to check if there are any errors.
Check if the output message "Checking whether we are able to connect to database for XXXXX... " describes your new database path.
# ./karesansui-checkenv
6. Migrate Database
Copy SQLite database to MySQL or PostgreSQL database.
# cd /opt/pysilhouette/share/doc/pysilhouette-0.6.2/tool/ # export PYTHONPATH=/opt/hde/lib/python:/opt/karesansui/lib/python:/opt/pysilhouette/lib/python:$PYTHONPATH # ./sqlite2other.py --input=<old database path> --output=<new database path>
SQLite : sqlite:////var/opt/karesansui/pysilhouette.db MySQL : mysql://username:password@hostname:port/pysilhouette?charset=utf8 PostgreSQL : postgres://username:password@hostname:port/pysilhouetteWarning)
Take a memo of the outputted "copy num" number. We use it later. (copy num - xxx) sqlite2other.py only supports SQLite -> MySQL or SQLite -> PostgreSQL migration.Example)
# ./sqlite2other.py --input=sqlite:////var/opt/pysilhouette/pysilhouette.db --output=mysql://username:password@localhost/pysilhouette?charset=utf8 Cleanup Database [OK] copy num - 3
Information)
For details about database path format, consult the reference
7. Change Auto Increment Counter Value
Change the auto increment counter value of Pysilhouette.
Access Pysilhouette database an execute the SQL below.
Put the "copy-num" value we got above into <copy num value>.
For PostgreSQL:
select setval('jobgroup_id_seq', <copy num value>);
select setval('job_id_seq', <copy num value>);
Example)
# psql pysilhouette -U username -h localhost -c "select setval('jobgroup_id_seq', 3);"
# psql pysilhouette -U username -h localhost -c "select setval('job_id_seq' 3);"
For MySQL:
ALTER TABLE jobgroup AUTO_INCREMENT = <copy num value>;
ALTER TABLE job AUTO_INCREMENT = <copy num value>;
Example)
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE jobgroup AUTO_INCREMENT = 3;"
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE job AUTO_INCREMENT = 3;"
Information)# ./sqlite2other.py --input=<old database path> --output=<new database path> Cleanup Database [OK] copy num - 3 <-- "copy-num" value
# /etc/init.d/hde-lighttpd stop # /etc/init.d/silhouetted restart # /etc/init.d/hde-lighttpd start
In version 1.1, the path of some configuration files and disk image files has changed.
This document describes how to migrate these files and settings.
_*We recommend to back up the important data to other physical machine in advance.*_
1. Stop Daemon
Stop the daemon processes.# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop
2. Download the new package and deploy.
# rm -rf Karesansui # tar zxvf karesansui-<version>-install-pack.tar.gz # cd Karesansui
3. Update Karesansui
# ./karesansui-install
_*You must not choose the database initialization.*_
4. Installation Environment Check
Execute ./karesansui-checkenv to check if there are any errors.
# ./karesansui-checkenv
In version 2.0, the disk image files are stored on the disk volumes in storage pool.
This document describes how to migrate these files and settings.
_*We recommend to back up the important data to other physical machine in advance.*_
1. Shutdown all the domains gracefully
You need to stop domains by Karesansui's management console or executing command below.
# /opt/hde/bin/virsh shutdown <domain>
2. Stop Daemon
Stop the daemon processes.# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop (on system using xen-kernel)
3. Download the new package and deploy.
# rm -rf Karesansui # tar zxvf karesansui-<version>-install-pack.tar.gz # cd Karesansui
4. Update Karesansui
# ./karesansui-install
_*You must not choose the database initialization.*_
_*Whatever you choose, the database of pysilhouette will be initialized. If necessary, please back up the database.*_
5. Installation Environment Check
Execute ./karesansui-checkenv to check if there are any errors.
# ./karesansui-checkenv
6. Reboot Host
# shutdown -r now
Differences about paths between the previous version and this version
In version 2.0, each disk image file used by guest is stored on the disk volumes in storage pool.
1. Disk image file used by guest
1.1 path of version 1.1.x
/var/opt/hde/libvirt/domains/<domain_name>/images/<domain_name>.img
1.1 path of version 2.0.x
The disk volume file in libvirt's storage pool.
By default, the storage pool named 'default' will be created in ''/var/opt/hde/libvirt/domains''.
So after finishing upgrade from 1.1.x, volume files are created as an symbolik link to existant image files used by the previous version and named uuid.
# ls -ltr /var/opt/hde/libvirt/domains/[0-9]* lrwxrwxrwx 1 root kss 57 Jun 9 HH:MM /var/opt/hde/libvirt/domains/55236ff8-88bb-023f-1499-2f34c4f1b133 -> /var/opt/hde/libvirt/domains/foo/images/foo.img
This document describes how to migrate these files and settings.
_*We recommend to back up the important data to other physical machine in advance.*_
1. Shutdown all the domains gracefully
You need to stop domains by Karesansui's management console or executing command below.
# /opt/hde/bin/virsh shutdown <domain>
2. Stop Daemon
Stop the daemon processes.# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop (on system using xen-kernel)
3. Download the new package and deploy.
# rm -rf Karesansui # tar zxvf karesansui-<version>-install-pack.tar.gz # cd Karesansui
4. Update Karesansui
# ./karesansui-install
_*You must not choose the database initialization.*_
_*Whatever you choose, the database of pysilhouette will be initialized. If necessary, please back up the database.*_
5. Installation Environment Check
Execute ./karesansui-checkenv to check if there are any errors.
# ./karesansui-checkenv
6. Reboot Host
# shutdown -r now
karesansui-projectはインストーラパックに含まれているRPMや開発に便利なRPM、全てのパッケージのSRPMなどをアップデートサーバにて公開しています。
http://updates.karesansui-project.info/
※ベーシック認証がかけられています。 id : karesansui password : karesansui
ここからSRPMを取得することで、karesansuiで利用している各種OSSのビルドを行うことが出来ます。
RPMのビルドを行うにあたり、以下のパッケージが必要となるので、あらかじめyumなどでインストールしてください。
依存関係で足りないパッケージは、CentOSやrpmforgeなどのリポジトリからyumでインストールしてください。
Karesansuiは大きくWebアプリケーション(以後Webフレームワーク)と仮想化操作(仮想化ライブラリ)に分かれています。
WebフレームワークはMVC,RESTfulをweb.py、テンプレートエンジンをMako、O/RマッピングをSQLAlchemyを採用しています。
Karesansuiはそれらを結合した薄いフレーワークを独自に提供するスタイルをとっています。
開発ドキュメントの他に、リファレンスもありますので、あわせてみてください。
Webサーバー : lighttpd(FCGI)を採用
国際化 : mako+gettext
データベース : SQLALchemyを採用することで複数のデータベースをサポート
監視 : collectd
グラフレポート : rrdtool
パッケージ管理 : yum, rpm
Javascript : jQuery
などさまざまなオープンソースが使われています。
様々なオープンソースを組み合わせ仮想化管理を行うのは大変なことです。
Karesansuiをカスタマイズすることで簡単にあなたにあった管理ツールを手にすることができます。
Karesansuiは商用、非商用を問わずだれでも無料で利用することができます。
GPLとLGPLで構成するライセンスになっています。詳細はこちらを参照してください。
現在サポートしているのはXenだけですが、近い将来 KVM にも対応する予定です。
Version 1.1でKVMに対応し、現在KVMとXen両方に対応しています。
インストールパックを用意していますので、簡単にインストールが可能です。初めての方はチュートリアルをご覧ください。
Karesansuiを使えば複雑な操作から解放されるはずです。Karesansuiは誰でも簡単に仮想化ができるアプリケーションを目指して日々開発しています。
是非、是非じゃんじゃんご紹介ください。バナーも提供中 です!
まったく問題ありません。KaresansuiはGPL・LGPLで配布されていますので、利用することによる制限はありません。
データベースが停止していてもゲストやホストに影響が出ることはありません。ただしブラウザからの操作はできなくなります。
コンソールの表示には、オープンソースのTightVNC のJava appletを利用していますので、Javaが必要となります。
以下を試してみてください。通信ができるかどうかを確認します。クライアントのコンソールから以下のコマンドを発行します。
> ping {Karesansuiサーバー名}
次にKaresansuiサーバーでVNCポート番号が開いているか確認します。
# netstat -nalt
上記が正常な場合にはクライアントにVNCビューアを入れて接続してみてください。
「ゲスト」のデバイスタブから「Display」を選択し、「VNCキーマップ」を選択してください。日本語106/109キーボードは「ja」を選択してください。
以下を試してください。ゲストに acpid が起動しているかを確認します。ゲストのコンソールから以下のコマンドを発行します。
# ps auxww | grep acpid root 34 0.0 0.0 0 0 ? S< 10:50 0:00 [kacpid] 68 2420 0.0 0.0 12320 876 ? S 10:51 0:00 hald-addon-acpi: listening on acpi kernel interface /proc/acpi/event root 4082 0.0 0.0 65372 868 pts/0 S+ 12:15 0:00 grep acpi
/usr/sbin/acpid が起動していない場合には acpid を起動してください。
# rpm -q acpid 2>/dev/null || yum -y install acpid # /etc/init.d/acpid start # chkconfig acpid on
もし acpid: can't open /proc/acpi/event: Device or resource busy エラーで acpid の起動に失敗する場合には以下を試してください。
# /etc/init.d/haldaemon stop # /etc/init.d/acpid start # /etc/init.d/haldaemon start # chkconfig acpid on
ゲストに acpid が起動しているかを再確認します。
# ps auxww | grep acpi root 34 0.0 0.0 0 0 ? S< 10:50 0:00 [kacpid] root 4107 0.0 0.0 3800 576 ? Ss 12:18 0:00 /usr/sbin/acpid 68 4122 0.0 0.0 12320 880 ? S 12:18 0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket root 4142 0.0 0.0 65372 876 pts/0 S+ 12:20 0:00 grep acpi
ゲストで acpid を起動後に、ゲストのシャットダウン・再起動を試してみてください。
A. プロキシサーバーの設定が正しく行われていない可能性があります。「トップ画面」「設定タブ」からプロキシサーバーの設定を確認してみてください。
例)(Bad Request) [400] ('Cannot retrieve repository metadata (repomd.xml) for repository: karesansui-base. Please verify its path and try again',)
A. iSCSI接続に時間が掛かり、Webサーバーがタイムアウトしている可能性があります。Webサーバーの設定を変更することでタイムアウトまでの時間を伸ばすことができます。
設定ファイルは /etc/opt/hde/lighttpd/conf.d/karesansui.conf です。
"idle-timeout" => 120 ↓↓↓↓↓ "idle-timeout" => 300
フォーラム にて聞いてみてください。有志の方や開発者が答えてくれるはずです。
log.conf内の "[handler_*"カテゴリにある "args" を変更します。以下に変更例を記載します。
ログファイルサイズ 5M を 10Mにする場合
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/application.log', 'a', (10 *1024 *1024), 5)
ログファイル名をapplication.log を server.log にする場合
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/server.log', 'a', (5 *1024 *1024), 5)
ログローテートを5から10にする場合
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 5)
↓↓↓↓↓
args=('/var/log/karesansui/application.log', 'a', (5 *1024 *1024), 10)
ログレベルによってログの出力を制限している可能性があります。 "[logger_*"カテゴリのlevelを確認してください。
ログレベル一覧(※上は下を包括します。) - DEBUG : 全て出力 - INFO : 一般情報のみ出力 - WARNING : 警告のみ出力(運用時の推奨設定) - ERROR : エラーのみ出力 - CRITICAL : 深刻なエラーのみ出力 - EXCEPTION : システム的なエラーのみ出力 補足 : ログ設定の変更時はウェブサーバーの再起動が必要です。
Python loggingで利用できるすべての形式に対応していますので詳しくはそちらを参照ください。
log.conf内の "[handler_*"カテゴリにある "args" に定義されています。
Karesansuiのログは複数のファイルで構成されています。
Karesansui全体のログ : /var/log/karesansui/application.log Karesansuiで発生したエラーのプログラムトレースログ : /var/log/karesansui/error.log Karesansuiが発行したSQL関連のログ : /var/log/karesansui/sql.log
A. KaresansuiのパッケージはすべてHTTP経由で取得することができます。
※Karesansuiのソフトウェアアップデート(yum)もここから取得しています。
URL : http://updates.karesansui-project.info/ id : karesansui password : karesansui
A. インストーラーにはSQLite以外のデータベースを利用する場合、別途Python用のデータベースドライバをインストールする必要があります。
Karesansuiでは、MySQLとPostgreSQLのドライバをextraパッケージにて提供しています。
詳しくは、チュートリアルの 4.2.1. 「インストール前準備」の項目を御覧ください。
Karesansuiでは、KaresansuiとPysilhouetteの二つのデータベースを使用します。
何らかの原因でインストーラで正常にデータベースが構築されない場合は、手動でKaresansuiデータベースを構築することが出来ます。
なお、KaresansuiデータベースのE-R図がこちらにあるので、参考にしてください。
http://karesansui-project.info/2.0.0/er/karesansui/
CREATE TABLE tag (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(24) NOT NULL,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id)
)
CREATE TABLE user (
id INTEGER NOT NULL AUTO_INCREMENT,
email VARCHAR(256) NOT NULL,
password VARCHAR(40) NOT NULL,
salt VARCHAR(16) NOT NULL,
nickname VARCHAR(16) NOT NULL,
languages VARCHAR(6),
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
UNIQUE (email)
)
CREATE TABLE `option` (
id INTEGER NOT NULL AUTO_INCREMENT,
created_user_id INTEGER,
modified_user_id INTEGER,
`key` VARCHAR(12) NOT NULL,
value TEXT,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(created_user_id) REFERENCES user (id),
FOREIGN KEY(modified_user_id) REFERENCES user (id),
UNIQUE (`key`)
)
CREATE TABLE notebook (
id INTEGER NOT NULL AUTO_INCREMENT,
title VARCHAR(64) NOT NULL,
value TEXT NOT NULL,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id)
)
CREATE TABLE machine (
id INTEGER NOT NULL AUTO_INCREMENT,
parent_id INTEGER,
notebook_id INTEGER,
created_user_id INTEGER,
modified_user_id INTEGER,
uniq_key VARCHAR(36) NOT NULL,
name VARCHAR(256) NOT NULL,
attribute SMALLINT NOT NULL,
hypervisor SMALLINT NOT NULL,
hostname VARCHAR(256),
icon VARCHAR(256),
is_deleted BOOL,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(parent_id) REFERENCES machine (id),
FOREIGN KEY(created_user_id) REFERENCES user (id),
FOREIGN KEY(modified_user_id) REFERENCES user (id),
UNIQUE (hostname),
UNIQUE (uniq_key),
FOREIGN KEY(notebook_id) REFERENCES notebook (id)
)
CREATE TABLE machine2tag (
id INTEGER NOT NULL AUTO_INCREMENT,
tag_id INTEGER,
machine_id INTEGER,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(tag_id) REFERENCES tag (id),
FOREIGN KEY(machine_id) REFERENCES machine (id)
)
CREATE TABLE snapshot (
id INTEGER NOT NULL AUTO_INCREMENT,
parent_id INTEGER,
machine_id INTEGER,
notebook_id INTEGER,
created_user_id INTEGER,
modified_user_id INTEGER,
name VARCHAR(256),
is_deleted BOOL,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(notebook_id) REFERENCES notebook (id),
FOREIGN KEY(parent_id) REFERENCES snapshot (id),
FOREIGN KEY(created_user_id) REFERENCES user (id),
FOREIGN KEY(modified_user_id) REFERENCES user (id),
FOREIGN KEY(machine_id) REFERENCES machine (id)
)
CREATE TABLE watch (
id INTEGER NOT NULL AUTO_INCREMENT,
machine_id INTEGER NOT NULL,
created_user_id INTEGER,
modified_user_id INTEGER,
name VARCHAR(256) NOT NULL,
plugin VARCHAR(256) NOT NULL,
plugin_selector TEXT NOT NULL,
continuation_count INTEGER,
prohibition_period INTEGER,
warning_value TEXT,
is_warning_percentage BOOL,
is_warning_script BOOL,
warning_script TEXT,
is_warning_mail BOOL,
warning_mail_body TEXT,
failure_value TEXT,
is_failure_percentage BOOL,
is_failure_script BOOL,
failure_script TEXT,
is_failure_mail BOOL,
failure_mail_body TEXT,
is_okay_script BOOL,
okay_script TEXT,
is_okay_mail BOOL,
okay_mail_body TEXT,
notify_mail_to TEXT,
notify_mail_from TEXT,
karesansui_version VARCHAR(12) NOT NULL,
collectd_version VARCHAR(12) NOT NULL,
is_deleted BOOL,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(machine_id) REFERENCES machine (id),
FOREIGN KEY(created_user_id) REFERENCES user (id),
FOREIGN KEY(modified_user_id) REFERENCES user (id)
)
CREATE TABLE machine2jobgroup (
id INTEGER NOT NULL AUTO_INCREMENT,
machine_id INTEGER,
jobgroup_id INTEGER NOT NULL,
uniq_key VARCHAR(36) NOT NULL,
created_user_id INTEGER,
modified_user_id INTEGER,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(machine_id) REFERENCES machine (id),
FOREIGN KEY(created_user_id) REFERENCES user (id),
FOREIGN KEY(modified_user_id) REFERENCES user (id)
)
CREATE TABLE jobgroup (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(512) NOT NULL,
uniq_key VARCHAR(36) NOT NULL,
finish_command VARCHAR(1024),
type INTEGER NOT NULL,
status VARCHAR(3) NOT NULL,
register VARCHAR(32),
created DATETIME,
modified DATETIME,
PRIMARY KEY (id)
)
CREATE TABLE job (
id INTEGER NOT NULL AUTO_INCREMENT,
jobgroup_id INTEGER NOT NULL,
name VARCHAR(32) NOT NULL,
`order` INTEGER NOT NULL,
action_command VARCHAR(1024) NOT NULL,
rollback_command VARCHAR(1024),
status VARCHAR(3) NOT NULL,
action_exit_code INTEGER,
action_stdout TEXT,
action_stderr TEXT,
rollback_exit_code INTEGER,
rollback_stdout TEXT,
rollback_stderr TEXT,
progress INTEGER NOT NULL,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id),
FOREIGN KEY(jobgroup_id) REFERENCES jobgroup (id)
)
デーブルの作成ができたらKaresansuiデータベースに初期値を入力します。
Pysilhouetteデータベースは空のままで構いません。
INSERT INTO user (email, password, salt, nickname, languages, created, modified) VALUES ([ログイン用メールアドレス], [パスワード], [salt], [表示名], [言語], [現在時刻], [現在時刻])
ログイン用メールアドレス:Basic認証でのログインID(例:hoge@example.com) パスワード:パスワードとslatを足した文字列をSHA1でハッシュ化した文字列(sha1(pass+salt))(例:4132395efd6b67d5cad0ea0f514a664ae8a2a82c) salt:パスワードハッシュを作る際に加える文字列(例:vRsiQo7PaprZAro9) 表示名:画面に表示されるユーザ名(例:Administrator) 言語:ja_JPもしくはen_US 現在時刻の例:2010-1-2 03:04:05.678901
INSERT INTO tag (name, created, modified) VALUES (default, [現在時刻], [現在時刻])
現在時刻の例:2010-1-2 03:04:05.678901
INSERT INTO notebook (title, value, created, modified) VALUES ("", "", [現在時刻], [現在時刻])
現在時刻の例:2010-1-2 03:04:05.678901
INSERT INTO machine (parent_id, notebook_id, created_user_id, modified_user_id, uniq_key, name, attribute, hypervisor, hostname, icon, is_deleted, created, modified) VALUES ("", 1, 1, 1, [UUID], [ホスト名], 0, 0, [ホスト名], icon-guest1.png, 0, [現在時刻], [現在時刻])
UUID:ユニークなUUID(例:d6886345-62b6-4fa5-b445-d5891f734e3c) ホスト名:ホストOSのホスト名
INSERT INTO machine2tag (tag_id, machine_id, created, modified) VALUES (1, 1, [現在時刻], [現在時刻])
現在時刻の例:2010-1-2 03:04:05.678901
KaresansuiはRESTfulアーキテクチャ(オーバーライドPOST対応)を採用しているため、管理画面のエラーはすべてHTTPレスポンスコードで判断されます。
以下に使用しているレスポンスコードの一部を記載します。
- 2xx : 正常に処理が終了した際に使用されるHTTPレスポンスコードです。 - Karesansuiでは、正常な動作になります。 - 3xx : リクエストの転送に使用されるHTTPレスポンスコードです。 - Karesansuiでは、正常な動作になります。 - 4xx : クライアント(主にブラウザ)からのリクエストに問題があった場合に使用されるHTTPレスポンスコードです。 - Karesansuiでは、主に不正なリクエストや存在しないURLアクセス時に使用されます。 - 5xx : サーバーエラー時に使用されるHTTPレスポンスコードです。 - Karesansuiでのエラーになりますので、エラーを解決する必要があります。
ゲストの作成画面で入力をするカーネルイメージ・initrdイメージですが、よくわからないという方も多いと思います。
以下に簡単な説明とインストール検証済みディストリビューションの入力例を記載しておきます。
カーネルイメージとはその名の通りLinuxカーネル本体です。
今回入力で利用するカーネルイメージは初期インストール時のブート(テキストベースのインストール前作業)に利用されます。
initrdとは、Linuxがブートする際に、一時利用されるファイルシステムのイメージを指します。
今回入力で利用するカーネルイメージは「カーネルイメージ」でブートした際に利用されます。
カーネルイメージ
http://<ミラーサーバー>/Linux/centos/5.3/os/i386/images/xen/initrd.img
initrdイメージ
http://<ミラーサーバー>/Linux/centos/5.3/os/i386/images/xen/vmlinuz
ヒント
ゲストインストール時に必要なインストールイメージパス例
http://<ミラーサーバー>/Linux/centos/5.3/os/i386/
カーネルイメージ
http://<ミラーサーバー>/Linux/fedora/releases/10/Fedora/i386/os/images/pxeboot/initrd-PAE.img
initrdイメージ
http://<ミラーサーバー>/Linux/fedora/releases/10/Fedora/i386/os/images/pxeboot/vmlinuz-PAE
ヒント
ゲストインストール時に必要なインストールイメージパス例
「http://<ミラーサーバー>/Linux/fedora/releases/10/Fedora/i386/os/」 です。
補足
Fedora 11 previewもインストール可能なことを確認しています。
Karesansuiは、設定ファイルと定数ファイルで初期値等を決めています。
設定ファイルの説明はこちらです
パッケージでインストールした場合は、「/opt/karesansui/lib/python/karesansui/lib/const.py」に配置されています。
さまざまな設定がありますが、よく使う設定を1つ紹介します。
- ゲストOS追加時に設定される、コンソール(VNC)のキーボード配列を変更したい場合は、DEFAULT_KEYMAPを変更します。
注)設定後はウェブサーバーを再起動してください。
Karesansuiを利用してゲストを作成した場合、特定のディレクトリに保存・管理されています。
パッケージインストールを行っている場合
| xen用のゲスト設定 | /etc/opt/hde/xen/<ドメイン名> |
| libvirt用のゲスト設定 | /etc/opt/hde/libvirt/qemu/<ドメイン名>.xml |
| ゲストのネットワーク設定 | /etc/opt/hde/libvirt/qemu/networks/ |
| ゲストインストール時に一度だけ利用されるイメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/boot/ |
| ゲストのディスクイメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/disk/*.img |
| ゲストの本体イメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/images/<ドメイン名>.img |
| ゲストのスナップショットイメージ | /var/opt/hde/libvirt/domains/<ドメイン名>/snapshot/ |
ゲストのバックアップが必要な場合は、上記をバックアップすることで最低限のバックアップが可能です。
注)Karesansuiのバックアップは含みません。
■ログの設定
インストールパッケージを使ってインストールをした場合、「/etc/opt/karesansui/log.conf(以後log.conf)」ファイルにログの設定がされています。
設定方法はPython logging を参照ください。
ログ関連のFAQは こちらから
ホストAのKaresansuiにアクセスし、ヘッダーの「オプション」「Karesansui について」画面を表示し、バージョン情報を取得します。

Step 1で調べたバージョンと同じKaresansuiをダウンロードし、インストールを行います。
注)ホストBのデータベースは、ホストAと同じデータベースを指定し、「データーベースを初期化する」のチェックボックスを外します。

/etc/opt/karesansui/application.conf ファイルの application.uniqkey がホストBのユニークキーになります。 Step4で使用しますのでメモしておいてください。 設定されている値 例) application.uniqkey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ホストAの管理画面にアクセスし、トップ画面にある「追加」アクションを押下します。 ホストの追加画面で、入力項目を入力し「追加」を押下します。
入力項目の補足 :
- ホスト名(必須) : 管理画面に表示するホスト名です。特に指定はありませんので、わかりやすい名前を入力してください。
例)ホストB
- FQDN(必須) : ホストBにアクセスできるFQDN・ドメイン名またはIPアドレスを入力します。
例)hostb.karesansui-project.info or 192.168.0.1
- UUID(必須) : Step 3で調べたユニークキーを入力します。
- ノート(任意) : メモ書きです。
- タグ(任意) : カンマ区切りでタグを入力します。
ホストAの管理画面にアクセスし、Step 4で追加したホストBのアイコン(通常は N/Aアイコンが表示されています。)を選択し、詳細を表示させます。 「その他の情報」「ホストのトップページへのリンク」のリンクをクリックし、ホストの移動を行います。 注)この際、再度Basic認証ダイアログが表示されることがあります。 移動後、ヘッダーのホスト名がホストBのものになっていればホストの追加は完了です。※A
※A :
画像の右がホスト名になります。
Karesansuiの一部はLGPL、一部はGPLです。 コア部分のソースコードは利用制約の少ないLGPLライセンスを採用していますので、 再利用時のライセンスによる問題を軽減します。
すべてのソースコードにライセンスが明記されていますので、迷うことなく利用することができるはずです。
ただし、例外としていくつかのファイルには技術的な問題でライセンス表記をしていません。
ソースツリーに含まれるtemplate/default/include以下のファイルはLGPLです。その他のtemplate/default以下のファイルはGPLです。
これは、あなたがあなたの書いたオリジナルのファイルをtemplate/defaultにファイルを置く場合GPLを付さないといけないということは意味しません。また、template/default/includeにファイルを置く場合はLGPLを付さないといけないということは意味しません。
また、template/defaultやtemplate/default/includeに誰かがファイルを置き、それがライセンス表記されていなかったら、GPLやLGPLが付されたということにはなりません。
私たちは私たちが配布しているファイルについてのみ言及することができますので、それ以外のファイルについては著作者に問い合わせてください。
ソースツリーはKaresansui以外のオープンソースプロジェクトの成果物を含んでいます。それらはKaresansuiとは異なるライセンスポリシーで配布されていることがあるので、それぞれのライセンス表記をご確認下さい。
Karesansuiで実行される更新系処理のほとんどはジョブマネジャーを経由して実行されます。
Karesansuiは、 Pysilhouette を採用しています。
逐次的に登録されたジョブ(コマンド)を実行する機能を有するジョブマネジャーです。
並列処理にも対応しました。(Since 0.7.0)
主にウェブアプリケーションのバックグラウンド処理を実現するために開発されています。
※ PysilhouetteはKaresansui Projectによって運営/管理されています。
Karesanuiパッケージに含まれるPysilhouetteを想定して説明します。
Comming soon.
こちらを参照してください。
Pysilhouetteのログは5つで構成されています。
pysilhouette全体のログ : /var/log/pysilhouette/application.log pysilhouetteで発生したエラーのプログラムトレースログ : /var/log/pysilhouette/error.log pysilhouetteが発行したSQL関連のログ : /var/log/pysilhouette/sql.log pysilhouetteサービスが出力する標準エラー出力ログ : /var/log/pysilhouette/stderr.log pysilhouetteサービスが出力する標準出力ログ : /var/log/pysilhouette/stdout.log
ウェブサービスに必要以上の権限を付加することによるセキュリティリスクを考慮したためです。
Karesansuiのソースコードを取得するには、いくつかの方法があります。
ソースコードは、Karesansuiのインストールパック(tarball)の中に、RPMパッケージとしても提供されています。
Karesansuiのインストールパックは、ダウンロードページ から最新のKaresansui-x.x.tar.gz を選択してダウンロードできます。
最新のソースコードは、sourceforge.jpのgitリポジトリから取り寄せることもできます。
gitがインストールされていない場合は、あらかじめgitをインストールした後、以下のコマンドでダウンロードすることができます。
$ git clone git://git.sourceforge.jp/gitroot/karesansui/karesansui.git
Karesansui E-R Diagram : http://karesansui-project.info/2.0.0/er/karesansui/
※Karesansuiでは仮想マシンを立ち上げるサーバーのことを「ホスト」、ホスト上で動作する仮想マシンのことを「ゲスト」と呼びます。
| 分類 | 機能 | 説明 | 対応 |
| 共通 | ログイン | Basic認証でログインします。 | ○ |
| 共通 | ログアウト | ログアウトします。 | ○ |
| 共通 | プロキシ | ネットワーク関連で利用するProxyを設定することができます。 | ○ |
| 共通 | マイアカウント設定 | 現在ログインしているアカウント情報を更新することができます。 | ○ |
| 共通 | タグ | ゲストのグルーピングができます。今後さまざまなリソースをタグによってグルーピングすることができるようになります。 | ○ |
| セキュリティ | SSL接続設定 | SSLの有効・無効を設定できます。 | ○ |
| セキュリティ | アクセスポリシー | Karesansuiへのアクセスポリシーを設定できます。 | ○ |
| セキュリティ | VNCへのパスワード設定 | ゲストへVNC接続する際に利用する、パスワードを設定することができます。 | ○ |
| セキュリティ | ホワイトリスト | 実行可能なジョブコマンドをホワイトリスト形式で制限することができます。(画面からの設定はできません。) | ○ |
| その他 | Karesansui | Karesansuiのバージョン情報を表示します。 | ○ |
| 全体 | 一覧ページ | ホストの一覧を表示します。 | ○ |
| 全体 | Karesansui設定(ウェブサーバー) | ウェブサーバーの設定ができます。 | ○ |
| 全体 | Karesansui設定(メールサーバー) | メールサーバーの設定ができます。監視(アラート)通知メール等で利用されます。(Since 2.0.0) | ○ |
| 全体 | ホスト、ゲストのツリーナビゲーション | Karesansuiで管理しているホスト、ゲストをツリー形式で表示します。 | ○ |
| 全体 | 複数のホストを管理 | Karesansuiで管理されているホストを複数管理することができます。 | ○ |
| ホスト | ゲストの一覧ページ | ゲストの一覧を表示します。 | ○ |
| ホスト | 情報ページ | ホストの情報を表示します。 | ○ |
| ホスト | ゲストの作成 | ゲストの作成ができます。 | ○ |
| ホスト | ゲストのコピー | 現在管理されているゲストのコピーができます。 | ○ |
| ホスト | ゲストのインポート/エクスポート | 現在管理されているゲストのインポート/エクスポートができます。ゲストのバックアップおよび別ホストへの移動に利用することができます。 (Since 2.0.0) | ○ |
| ホスト | ゲストの削除 | 現在管理されているゲストの削除ができます。 | ○ |
| ホスト | 編集 | ホストの情報を編集します。 | ○ |
| ホスト | ジョブ一覧 | ホストで実行されたジョブ情報を検索、表示できます。 | ○ |
| ホスト | 物理ネットワークの表示・編集 | 物理ネットワークの表示、編集ができます。※1 (Since 2.0.0) | ○ |
| ホスト | 物理ネットワークのbondingの設定 | 物理ネットワークのbondingの設定ができます。 (Since 2.0.0) | ○ |
| ホスト | 仮想ネットワークの追加・編集・削除 | 仮想ネットワークを管理できます。 | ○ |
| ホスト | ファイアーウォールの追加・編集・削除 | ファイアーウォールの管理ができます。 | ○ |
| ホスト | ファイアーウォールの起動・停止 | ファイアーウォールの起動、停止ができます。 | ○ |
| ホスト | ストレージプールの表示(ディレクトリ、iSCSIに対応) ※ 2 | ストレージプールの状態表示ができます。 (Since 2.0.0) | ○ |
| ホスト | ストレージプールの追加・削除(ディレクトリ、iSCSIに対応) ※ 2 | ストレージプールの追加・削除ができます。 (Since 2.0.0) | ○ |
| ホスト | ストレージプールの起動・停止(ディレクトリ、iSCSIに対応) | ストレージプールの起動・停止ができます。 (Since 2.0.0) | ○ |
| ホスト | ストレージプールの自動起動ON/OFF | ストレージプールの自動起動ON/OFFができます。 (Since 2.0.0) | ○ |
| ホスト | ネットワークストレージの表示(iSCSIに対応) | ネットワークストレージの状態表示ができます。 (Since 2.0.0) | ○ |
| ホスト | ネットワークストレージの追加・編集・削除(iSCSIに対応) | ネットワークストレージの追加・編集・削除ができます。 ※3(Since 2.0.0) | ○ |
| ホスト | ネットワークストレージの起動・停止(iSCSIに対応) | ネットワークストレージの起動・停止ができます。 (Since 2.0.0) | ○ |
| ホスト | ネットワークストレージの自動起動ON/OFF | ネットワークストレージの自動起動ON/OFFができます。 (Since 2.0.0) | ○ |
| ホスト | サービス(デーモン)の起動・停止・再起動 | サービス(デーモン)の起動・停止・再起動ができます。※4(Since 2.0.0) | ○ |
| ホスト | サービス(デーモン)の自動起動ON/OFF | サービス(デーモン)の自動起動ON/OFFができます。※4(Since 2.0.0) | ○ |
| ホスト | ホスト・ゲストの監視 | ホスト・ゲストの監視ができます。各種しきい値の設定が可能です。 ※5(Since 2.0.0) | ○ |
| ホスト | ホスト・ゲストの監視アラートメール | ホスト・ゲストの監視アラートが発生した際に、メールの送信ができます。日本語・英語に対応 ※5(Since 2.0.0) | ○ |
| ホスト | ホスト・ゲストの監視アラートスクリプト | ホスト・ゲストの監視アラートが発生した際に、任意のスクリプトを実行できます。※5(Since 2.0.0) | ○ |
| ホスト | システムログの検索・表示 | システムログの表示ができます。期間、文字列で検索可能です。 (Since 2.0.0) | ○ |
| ホスト | システムレポートの検索・表示 | システムレポートの表示ができます。期間で検索可能です。 ※6(Since 2.0.0) | ○ |
| 管理 | ユーザ作成・編集・削除 | ユーザの管理ができます。 | ○ |
| 管理 | タグ作成・編集・削除 | タグの管理ができます。 | ○ |
| ゲスト | 情報ページ | ゲストの情報を表示します。 | ○ |
| ゲスト | 起動 | ゲストの起動ができます。 | ○ |
| ゲスト | 一時停止・復帰 | ゲストの一時停止、復帰ができます。 | ○ |
| ゲスト | 強制シャットダウン | 強制的にゲストを停止できます。 | ○ |
| ゲスト | シャットダウン | 通常の手順でゲストを停止できます。 | ○ |
| ゲスト | スナップショットの作成・編集・削除 | スナップショットの管理ができます。 | ○ |
| ゲスト | スナップショットの適用 | 指定したスナップショットを管理しているゲストに適用できます。 | ○ |
| ゲスト | ストレージ(HDD)の追加・編集・削除 | ストレージ(HDD)の管理ができます。 | ○ |
| ゲスト | ネットワーク(NIC)の追加・編集・削除 | ネットワーク(NIC)の管理ができます。 | ○ |
| ゲスト | ディスプレイ(VNC)の追加・編集・削除 | ディスプレイ(VNC)の管理ができます。 | ○ |
| ゲスト | CPU数の変更 | CPU数の変更できます。 | ○ |
| ゲスト | メモリの変更 | メモリサイズの変更ができます。 | ○ |
| ゲスト | ジョブ一覧 | 対象のゲストで実行されたジョブ情報を検索、表示できます。 | ○ |
| ゲスト | コンソール | ブラウザからグラフィカル(GUI)な画面でゲストを操作することができます。 | ○ |
※1 : ゲートウェイ、FQDN、DNS、各イーサネットのIPアドレス等の編集が行えます。
※2 : 以下の利用方法をご利用できます。
・ 任意のディレクトリをストレージプールにすることが可能です。
・ iSCSIを任意のディレクトリにマウントした先をストレージプールにすることも可能です。
・ iSCSIをBlockデバイスとして利用することも可能です。
※3 : CHAP認証に対応しています。
※4 : 一部サービスについては、閲覧のみに制限されています。
※5 : 詳細はこちらへTODO
※6 : 詳細はこちらへTODO
ある時点のゲストOSをバックアップすることができます。
※データベース情報、設定ファイル、OSイメージ、ディスクイメージなどのすべてを含みます。
※ストレージに、エクスポート元のデータサイズと同一の空き容量が必要です。
| アクション | 説明 | 出来る事 |
| コピー | ゲストOSのディスクイメージ等はコピーされますが、UUIDなどシステム管理情報は新規に作成されまったく同一ではありません。 | 同一サーバーに同じゲストを複製することができます。 |
| エクスポート・インポート | 完全なゲストOS情報をエクスポート・インポートすることができます。 | エクスポートでは完全な状態でバックアップが行われます。※同一サーバーに同じゲストを作成することができません。 |
エクスポートされた情報は、他のKaresansui サーバーでインポートさせることが可能です。
エクスポートデータは、エクスポート時に選択したディレクトリにまとまって置かれています。
下記の例を参考に説明します。
ゲストOS情報
エクスポートしたディレクトリ構成
[root@kss25 export]# tree /var/opt/hde/libvirt/export/ . |-- 23896700-2abc-13dd-7ae5-2772bd28537a # Export UUIDになります。※エクスポートを一意に識別するキーになります。 | |-- disk # ゲストOSで追加ディスクされたディスクが置かれるディレクトリです。 | | `-- disk # ゲストOSで追加ディスクされたディスクのストレージプール名です。 | | `-- hoge # ゲストOSのドメイン名です。 | | `-- disk | | `-- 359be9c7-7cea-166f-c926-5ff6acb29875.img # ディスクイメージ | |-- domain # ゲストOSのディスクイメージが置かれるディレクトリです。 | | `-- hoge # ゲストOSのドメイン名です。 | | `-- images | | `-- hoge.img # OSイメージ | |-- hoge.conf # xenで利用する設定ファイルです。 | |-- hoge.xml # Karesansuiで利用する設定ファイルです。 | `-- info.dat # エクスポートデータです。 `-- 23896700-2abc-13dd-7ae5-2772bd28537a-hoge.img -> /var/opt/hde/libvirt/export/23896700-2abc-13dd-7ae5-2772bd28537a/domain/hoge/images/hoge.img # エクスポートデータのシンボリックリンクです。※ストレージプールの自動認識に利用します。
上記のexportディレクトリにある「23896700-2abc-13dd-7ae5-2772bd28537a-hoge.img(シンボリックリンク)」と「23896700-2abc-13dd-7ae5-2772bd28537a(ディレクトリごと)」を移動したいサーバーへコピー※1します。
移動後、管理画面(ゲスト一覧画面)に移動したエクスポートが表示されますので、通常通りインポートします。
※1 移動先では、ゲストOS情報の2, 3,4, 5 すべてが完全に一致している必要がありますので、移動先でストレージプール等を作成している必要があります。上記の場合ですと、default、export、diskの3つのストレージプールが移動先に存在している必要があります。
以下のソフトウェアが不足する可能性がありますので事前にインストールしておく必要があります。
パッケージ名iscsi-initiator-utils cyrus-sasl-md5 gnutls-utils PyXML SDL curl perl-URI perl-HTML-Parser gettext gnutls-utilsyumからのインストール
# yum install iscsi-initiator-utils # yum install cyrus-sasl-md5 # yum install qemu # yum install gnutls-utils # yum install PyXML # yum install SDL # yum install curl # yum install perl-URI # yum install perl-HTML-Parser # yum install gettextrpmからのインストール
# rpm -ivh iscsi-initiator-utils # rpm -ivh cyrus-sasl-md5 # rpm -ivh qemu # rpm -ivh gnutls-utils # rpm -ivh PyXML # rpm -ivh SDL # rpm -ivh curl # rpm -ivh perl-URI # rpm -ivh perl-HTML-Parser # rpm -ivh gettext
Karesansuiの画面は4つのパーツで構成されています。

A: ヘッダー
B:メイン
C:ドメインツリー
D:ログメッセージ
¶A:ロゴ
クリックするとトップページへ移動します。
B:パンくず
KaresansuiはTOP, ホスト、ゲストの3つの画面を遷移して操作します。
この部分には現在どの画面にいるか表示されます。
また、リンクをクリックすることでその画面へ遷移します。
C:ログインユーザ名表示
ログインしているサーバーのホスト名や、ログインしているユーザーのメールアドレスが表示されます。
D:メニュー
ログインしているユーザーの情報を編集したり、Karesansuiからログアウトすることができます。
E:通知アイコン
実行中のジョブがあることや、サーバーとAJAX通信中であることを点滅して示すアイコンです。
¶A:タブ
クリックすると、その内容にメイン画面が遷移します。
B:ボタン
クリックすると、追加や変更などを行うことができます。
暗い色になっているボタンは押しても実行することができません。
C:タグ
ホスト一覧やゲスト一覧の画面に表示されます。ホストやゲストに登録されたタグを使って
アイコンの表示を絞り込むことができます。
D:ホスト(ゲスト)アイコン
一度目のクリックで下の詳細表示画面に詳細が表示されます。
その際、背景に緑色の枠が表示されます。
二度目のクリックで選択したホスト(ゲスト)の画面に遷移します。
ホスト(ゲスト)の編集で、表示するアイコンを変更することができます。
E:詳細表示
ジョブの登録者や登録時間、ホストのメモリ総量やディスク使用量など、細かい情報を表示します。
F:更新アイコン
クリックすると、メイン画面の内容を更新します。
¶A:ツリー
ホストと、その上に作られているゲストをツリー状に表示します。
各リンクをクリックすることでそのホストやゲストの画面に遷移します。
また、ホストの横にある▼のアイコンを押すことで開閉することができます。
B:更新アイコン
クリックするとツリーの内容を更新します。
¶A:ログメッセージ
直近5件のジョブの進捗や結果などの情報を表示します。
各ログメッセージをクリックすることでそのホストやゲストの詳細ジョブ画面に遷移します。
B:更新アイコン
クリックするとログメッセージの内容を更新します。
Pythonの追加サーチパスを設定します。
※複数指定する場合はカンマ(,)で区切ります
例) application.search.path=/opt/hde/lib/python,/opt/pysilhouette/lib/python,/opt/karesansui/lib/python
ログ出力設定ファイルパスを設定します。
ログ出力設定ファイルついてはこちらを参照してください。
例) application.log.config=/etc/opt/karesansui/log.conf
URIのプレフィックスを設定します。
以下の{}内を設定します。
http://example.com{/karesansui/v1}/
※v1はKaresansuiのメジャーバージョンを指定しておくことを推奨します。
※Karesansui 2.0.0で"karesansui/v2/"に変更になりました。(Since 2.0.0)
例) application.url.prefix=/karesansui/v1
Karesansuiが使用するデフォルトのロケールを設定します。
※現在、ja_JPとen_USに対応しています。
※ログインしている場合は、ログインユーザのロケールが優先されます。
例) application.default.locale=ja_JP
Karesansuiのテーマを設定します。
※初期インストール時はdefaultに設定されています。
例) application.template.theme=default
Karesansuiが一時的に作成するファイル等々をおくディレクトリパスを設定します。
例) application.tmp.dir=/tmp
Karesansuiが使用するジョブコマンドのディレクトリパスを設定します。
※Karesansuiの実行ユーザ権限で書き込みができる必要があります。
例) application.bin.dir=/opt/karesansui/bin
各種設定ファイルのテンプレートディレクトリを設定します。
例) application.generate.dir=/opt/karesansui/karesansui/templates/default/_generate
Karesansuiで利用するメールアドレスを設定します。
例) application.mail.email=karesansui@example.com
Karesansuiで利用するメールサーバのポート番号を設定します。
例) application.mail.port=25
Karesansuiで利用するメールサーバ名を設定します。
例) application.mail.server=localhost
Karesansuiでプロキシサーバを利用するかを設定します。
1=有効
0=無効
例)application.proxy.status=0
Karesansuiで利用するプロキシサーバ名を設定します。
例) application.proxy.server=localhost
Karesansuiで利用するプロキシサーバのポート番号を設定します。
例) application.proxy.port=9080
Karesansuiで利用するプロキシサーバにログインするユーザ名を設定します。
例) application.proxy.user=bar
Karesansuiで利用するプロキシサーバにログインするパスワードを設定します。
例)application.proxy.password=foo
KaresansuiをLighttpdで動作させる場合に利用する設定ファイルを置くディレクトリを設定します。
例) lighttpd.etc.dir=/etc/opt/hde/lighttpd/conf.d/karesansui
Karesansuiで利用するデータベースのバインドを設定します。
RFC-1738で定義されているスタイルで設定してください。
さらに詳しい設定についてはSQLAlchemyのサポートデータベース を参照してください。
MySQL mysql://localhost/<データベース名> mysql://<ユーザ名>:<パスワード>@<ホスト名>/<データベース名> mysql://<ユーザ名>:<パスワード>@<ホスト名>:<ポート番号>/<データベース名> PostgreSQL postgres://<ユーザ名>:<パスワード>@<ホスト名>:<ポート番号>/<データベース名> SQLite※Karesansuiの実行権限で読み取り・書き込み可能である必要があります。 sqlite:////<絶対パス>/<ファイル名>-絶対パスで定義 sqlite:///<相対パス>/<ファイル名>-相対パスで定義 例) database.bind=sqlite:////var/opt/karesansui/karesansui.db
コネクションプールの利用可否を設定します。
0=利用しない
1=利用する
例)database.pool.status=0
通常時のコネクションプール数を設定します。
※SQLiteでは利用できません。設定は無視されます。
例)database.pool.size=1
コネクションプールの最大数を設定します。
例)database.pool.max.overflow=10
Karesansuiで使用するPysilhouetteソフトウェアの設定ファイルパスを設定します。
※Karesansuiの実行ユーザ権限で読み取り可能である必要があります。(書き込み・実行権限は必要ありません。)
例)pysilhouette.conf.path=/etc/opt/pysilhouette/silhouette.conf
Karesansuiが利用するyumのキャッシュディレクトリを設定します。
注)wwwhde(hde-lighttpdサービス)ユーザの書き込み権限が必要です。
例)application.updater.yum.cachedir=/var/opt/karesansui/cache/yum
Karesansui経由で実行されたyumのログファイルを設定します。
例)application.updater.yum.log.file=/var/log/karesansui/yum.log
Karesansui用のyumリポジトリ名を設定します。
例)application.updater.yum.target.repos=karesansui-base
ストレージを利用する際に、ディレクトリ、ファイルシステム、NFS、i-SCSIといった様々なアクセス手段で利用しますが、ストレージプールはそのアクセス手段を抽象化、隠蔽化する概念です。

アクセス手段を、すべてストレージプールで隠蔽することで、利用はその内部を知ることなく利用することが可能になります。
利用者が利用出来るストレージの最小単位で、利用者はボリューム単位でゲストOSなどにストレージを割り当てる事ができます。
※実際は、イメージファイル/ブロックデバイス等になります。
| タイプ | 説明 | 対応状況 |
| ディレクトリ(dir) | ディレクトリをストレージプールとして利用する事ができます。 | ○ |
| ファイルシステム(fs) | ブロックデバイス(/dev/sdaなど)を自動mountし、そこをストレージプールとして利用することができます。※Karesansuiでは、iSCSIのブロックデバイスで利用可能です。 | ○ |
| NFS | - | × |
| LVM | LVMを直接ストレージプールとし利用することができます。 | × |
| iSCSI(iscsi) | iSCSIを利用したブロックデバイスを直接利用することができます。 | ○ |
| SCSI HBA | SCSI HBAをストレージプールとして利用できます。 | × |


※iSCSI連携のみ対応

Karesansuiでは、collected( http://collectd.org/ )を利用しホストOSのシステムリソース監視とゲストOSの監視に重点をおいたサーバー監視を行ないます。
サーバ監視のソフトウェアは、フリーソフトから有償製品まで、様々な種類がありますが、Karesansuiではその中でオープンソースソフトウェアであるcollectdを採用しました。
collectdはシステムの様々な状態を収集する非常に小さなデーモンプログラムです。
UNIX上で動作し、ライセンスはGPLv2となっています。
本体がC言語で書かれた小さなデーモンプログラムのみで構成されており、システムに掛かる負荷が非常に少ないのが特徴です。
また、各種のデータの収集、記録などは、全てプラグインで追加していく形になっています。
各機能を使うためのプラグインも充実しており、あらかじめ90種類以上用意されています。
※Karesansui UIからは追加できませんが、任意のプラグイン設置も可能です。
CPUやネットワークトラフィックなど基本的なものから、Apacheの情報やSNMPなど、様々な情報を取得することができます。
さらに、自前でプラグインを作成するための言語バインディングも用意されているので、自分で好きな情報を集めるプラグインを作ることができます。
収集したデータの出力はRRD形式やCSV形式などがあります。KaresansuiではRRD形式を採用し収集データを行ないます。
また、収集したデータを別のサーバに送信する機能を持ったプラグインもあり、複数のサーバの情報を一箇所に集めることもできます。
※Karesansuiへの取り込みが検討されています。
その他に、collectdには値の収集/保存のほかにも、しきい値を利用したアラート機能があります。
Karesansui ではそれら機能を利用し、予めしきい値などの条件を設定しておき、条件に当てはまった場合に任意のスクリプトを実行したり、通知メールを送信する機能が実装されています。
この機能を利用することで、サーバの状態監視を自動化することができ、運用コストを劇的に軽減させることができます。
最後に、collectdはあくまでも値の収集や監視が目的なので、収集した値を見るためのインタフェースは提供されていません。
そこで、Karesansuiではシンプルで美しいレポート機能を実現しました。
collectd本体の設定ファイル : /etc/opt/hde/collectd.conf 各種プラグインの設定ファイル : /etc/opt/hde/collectd.d/* RRD形式のデータ保存について - rrdchachedサービス(デーモン)経由で、/var/opt/hde/collectd/配下に保存されます。
本体設定
収集間隔:10秒
本体設定
読み込みスレッド数:5
- 収集データ:CPUのアイドル時間など - 収集対象 :搭載されている全てのCPU(論理CPU数ごとに収集)
- 収集データ:メモリの使用量など - 収集対象 :搭載されているメモリ
- 収集データ:ファイルシステムの使用量と空き容量(dfコマンドの結果と同等) - 収集対象 :全て(dfコマンドで表示されるファイルシステム)
- 収集データ:時間当たりの読み込み/書き込みデータ量など - 収集対象 :"/^(([hs]|xv)d[a-f][0-9]?|([a-z]+\/)?c[0-9]d[0-9](p[0-9])?)$/"
- 収集データ:時間当たりの送信/受信パケット数など - 収集対象 :全てのNIC
- 収集データ:ロードアベレージ - 収集対象 :collectdが動作しているマシン
- 収集データ:起動時間 - 収集対象 :collectdが動作しているマシン
- 収集データ:ユーザ数 - 収集対象 :collectdが動作しているマシン
- 収集データ:仮想マシンのCPU、ディスク、ネットワークに関するデータ - 収集対象 :全てのゲストOS
syslogにcollectdのログを出力します。
- ログレベル:info - ログの出力先:/var/log/hde-collectd/collectd.log
pythonで書かれたプラグインを動作させます。
RRD形式で収集したデータをrrdchachedサービス(デーモン)経由で保存します。 - RRDファイルの保存先:/var/opt/hde/collectd
アクションには3つの場合があります。
1. 警告のしきい値を超えた場合
- 警告しきい値を超えた場合に、任意のスクリプトの実行及び通知メールの送信が可能です。
2. 危険のしきい値を超えた場合
- 危険しきい値を超えた場合に、任意のスクリプトの実行及び通知メールの送信が可能です。
3. 正常値へしきい値を戻った場合
- 正常値へしきい値が戻った場合、任意のスクリプトの実行及び通知メールの送信が可能です。
karesansuiはcollectdから呼ばれるコマンドだけ提供してます。
collectdから見ると、karesansuiは閾値を超えたときに呼ぶpythonプログラムのみを提供します。
このpythonプログラムがcollectdから渡されるデータから状況を判断し、任意のスクリプト実行や通知メールを送信します。
※Karesansui データベースと連携していますので、データベースが必須になります。
テーブル名 : watch
通知メールには、Karesansui固有の変数を利用して、データの差し込みをすることができます。
※メールヘッダと本文の間には空行を一つ以上入れてください。
※変数とは : 送信されるメール内で文字列の置き換えが行われます
| %{app_name} | アプリケーション名 |
| %{time} | 検知した時刻 |
| %{host} | 検知したホストの名前 |
| %{plugin} | 監視対象名 |
| %{plugin_instance} | 監視対象の特定 |
| %{type} | 監視対象のサブカテゴリ |
| %{type_instance} | 監視する項目名 |
| %{ds} | データソース名 |
| %{current_value} | 検知した時点での監視対象の値 |
| %{threshold_value} | 設定した閾値 |
| %{failure_max} | 危険値の閾値(上限設定) |
| %{warning_max} | 警告値の閾値(上限設定) |
| %{failure_min} | 危険値の閾値(下限設定) |
| %{warning_min} | 警告値の閾値(下限設定) |
| %{severity} | 警告レベル |
| %{script_result_message} | アクションスクリプト実行結果 |
このチュートリアルでは、パッケージング済みのKaresansuiを利用したインストールから、実際にゲスト上にOSインストールし動作させるまでを紹介します。

ホスト、ゲストともにCentOS 5.5 64bitを用いたときのチュートリアルです。
CentOS 5.5以降のISOイメージを利用しホストOSを作成します。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) ソフトウェアのセットアップで「仮想化」「KVM」にチェックを入れてください。
(必須ではありません) ストレージ拡張を容易に行えるため、LVMを利用することを推奨しています。
注)デフォルトパーティションを利用するとデフォルトでLVMになります。


Karesansuiは、これらのインストールパッケージと依存関係があります。別途インストールする必要があります。
# rpm -e --nodeps kvm-qemu-img
SQLite以外のデータベースを利用する場合、Pythonのデータベースドライバが必要です。
| MySQL | MySQL-Python |
| PostgreSQL | psycopg2 |
その他のデータベース
http://www.sqlalchemy.org/docs/05/dbengine.html?highlight=db2#supported-databases
インストーラーには現在含まれていないので、yumやeasy_installなどで事前にインストールしてください。
karesansui-projectが用意したrpmが以下から取得可能ですので、こちらを使ってインストールも可能です。
※ベーシック認証がかけられています。
id : karesansui
pass : karesansui
| i386 | http://updates.karesansui-project.info/karesansui/2.0/RPMS.extras/i386/ |
| x86_64 | http://updates.karesansui-project.info/karesansui/2.0/RPMS.extras/x86_64/ |
ダウンロードページ から最新のkaresansui-2.0.x-install-pack.tar.gzをダウンロードします。

# tar xzvf karesansui-2.0.x-install-pack.tar.gz # cd Karesansui # ./karesansui-install
インストールスクリプト実行後の画面の流れは下記の通りです。
「OK」ボタンを押して、そのまま次の画面へ進みます。

Karesansuiの管理画面にログインする管理者の設定を行います。各項目の説明は下記の通りです。
| ホスト名(FQDN) | このホストOSのFQDNを入力します。 |
| メールアドレス | 管理者のメールアドレスを入力します。管理画面へのアクセスに必要です。 |
| パスワード | 管理者の認証パスワードを入力します。 管理画面へのアクセスに必要です。 |
| パスワード(再入力) | 上記パスワードを再入力します。 |
| 言語 | 管理者の利用する言語を選択します。管理画面で表示される言語です。 |

Karesansuiで使用する仮想マシン制御の抽象化サービス(libvirt)にSSL接続するための鍵と証明書の設定を行います。
各項目の説明は下記の通りです。
| 国名 | 国名のコードを大文字のアルファベット2文字で入力します。 |
| 都道府県名 | 都道府県名をローマ字で入力します。 |
| 市町村名 | 市町村名をローマ字で入力します。 |
| 組織名 | 会社名や団体名などの組織名を入力します。 |
| サーバー名とドメイン名(FQDN) | このホストOSのFQDNを入力します。 |

Karesansuiが利用するデータベースに関する設定を行います。
MySQLやPostgreSQLを利用する場合は、あらかじめデータベースを作成し、ホストOSから接続可能なことを確認してください。
| Karesansui データベースパス | Karesansuiが利用するデータベースを指定します。 |
| pysilhouette データベースパス | pysilhouetteが利用するデータベースを指定します。 |
| データベースを初期化する | データベースに初期データを投入する場合は選択します。 |
| MySQL | mysql://username:password@hostname/database?charset=utf8 |
| PostgreSQL | postgres://username:password@hostname:port/database |
| SQLite | sqlite:////var/opt/karesansui/karesansui.db |

インターネットへアクセスするためのHTTPプロキシ設定を行います。
| プロキシを利用する | プロキシを利用して接続する場合は選択します。 |
| ホスト名(FQDN) | プロキシサーバーのホスト名を指定します。ホストは接続可能なものでなければなりません。 |
| ポート番号 | 上記プロキシサーバーのポート番号を指定します。 |
| ユーザー名 | プロキシサーバーでユーザー認証が必要な場合は、そのユーザー名を指定します。 |
| パスワード | プロキシサーバーの認証パスワードを入力します。 |
| パスワード(再入力) | 上記パスワードを再入力します。 |

通知メールなどのメールの送信に利用するSMTPサーバーに関する設定を行います。
| ホスト名(FQDN) | SMTPサーバーのホスト名を指定します。ホストは接続可能なものでなければなりません。 |
| ポート番号 | 上記SMTPサーバーのポート番号を指定します。 |

インストールを続行したい場合は、「OK」を押し、ソフトウェアのインストールを始めます。
これまでの入力に誤りがある場合やインストールを中断したい場合は、「戻る」、「取り消し」を押してください。

ソフトウェアのインストールの進捗状況が表示されます。
ソフトウェアのインストール、鍵・証明書の生成、設定ファイルの書き込み、データベースの初期化、サービスの有効化 の順に進捗します。

インストールが正常に完了すると、下記画面のようにメッセージが表示されます。
インストールの途中でエラーになると、エラー原因のメッセージが表示されます。エラーメッセージはインストールログにも出力されますので、ログを確認した後、エラー原因を解消し再度インストールを行ってください。

終了しました。 下記サイトにアクセスしログインしてください。ログインIDは'taizo@karesansui-project.info'です。 https://karesansui.example.com/karesansui/v2/ http://karesansui.example.com/karesansui/v2/ 詳細は、/root/karesansui-install.log を参照してください。KVMを仮想化ハイパーバイザーに利用している場合は、ネットワーク設定ファイルの変更も行われますので
# /etc/init.d/network restart
インストール完了後に表示された 'https://{ホスト名}/karesansui/v2/' に接続すると、認証ダイアログが表示されますので、インストール時に指定した管理者のメールアドレスとパスワードを入力します。

認証をパスして、以下のような画面が表示されればインストールは成功です。

以降は、ゲストに CentOS 5.5(i386) をインストールする場合を例に、2通りの方法を説明します。
ホストOSが既にインターネットに繋がっている場合は、外部サーバー上にある、カーネルイメージ、および、OSイメージを取得してインストールを行います。プロキシサーバー経由でのインストールはできませんので、その場合はFTPサーバーを利用してください。
ホストOSから CentOS 5.5 のOSイメージのURLに接続可能であるかどうかを確認してください。http://<OSイメージ配布サイトのFQDN>/Linux/centos/5/os/i386/ ftp://<OSイメージ配布サイトのFQDN>/Linux/centos/5/os/i386/
ホストOSがインターネットに繋がっていない場合は、CentOS 5.5(i386)のDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
CentOS 5.5(i386)のDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
KVMを仮想化ハイパーバイザーに利用している場合は、OSインストールDVDのISOイメージからインストールすることも可能です。
ISOイメージがなくOSのDVDがある場合は、下記の方法でOSインストールDVDのISOイメージを生成することができます。DVDをドライブに入れ、下記コマンドを実行します。# dd if=/dev/cdrom of=/iso/centos55-i386.iso dd: reading `/dev/cdrom': Input/output error 269860+0 records in 269860+0 records out
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法を、前述のインストールのタイプごとに示します。
| カーネルイメージ | 接続可能な外部のWebサーバーまたはFTPサーバー上のカーネルイメージのURL (例:Xenの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/vmlinuz',KVMの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/vmlinuz') |
| initrdイメージ | 接続可能な外部のWebサーバーまたはFTPサーバー上のinitrdイメージのURL (例:Xenの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/images/xen/initrd.img',KVMの場合=>'ftp://ftp.example.com/Linux/centos/5/os/i386/isolinux/initrd.img') |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
| ISOイメージ | ISOイメージの絶対パス(例:/iso/centos55-i386.img) |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のCentOS 5.5 のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では前述のカーネルイメージで指定したプロトコル(「HTTP」または「FTP」)を選択し、「HTTP」の場合は「HTTP Setup」、「FTP」の場合は「FTP Setup」で接続先を設定してください。
| Web site name または FTP site name | OSイメージ配布サイトのFQDN |
| CentOS directory | 上記サイト上のパス(例:/Linux/centos/5/os/i386) |
OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| CentOS directory | /pub/ |
「Installation Method」の選択の必要はありません。
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
# rpm -q acpid 2>/dev/null || yum -y install acpid # /sbin/service haldaemon stop # /sbin/service acpid restart # /sbin/chkconfig acpid on # /sbin/service haldaemon start
ホスト、ゲストともにRed Hat Enterprise Linux 5.5 64bit( 以下、RHEL 5.5(64bit) )を用いたときのチュートリアルです。
通常のインストール手順で問題ありませんが、以下の点に気をつけてインストールしてください。
(必須) Red Hat Network で、「RHEL Virtualization (v. 5 for 64-bit x86_64)」チャネルを追加し、下記コマンドであらかじめkvmをインストールしてください。# yum install kvm
Karesansuiのインストールは、CentOS 5.5の場合と同じです。
CentOS 5.5のチュートリアル を参照してください。
RHEL 5.5(64bit)のDVDを利用してインストールを行います。その際、一時的にホストOS上にFTPサーバーを稼働させる必要がありますので、vsftpd等のFTPサーバーソフトウェアをあらかじめインストールしておきます。
RHEL 5.5(64bit)のDVDをドライブに挿入し、下記の方法でOSイメージをホストOSのAnonymousFTPの領域へマウントします。# rpm -q vsftpd 2>/dev/null || yum -y install vsftpd # /etc/init.d/vsftpd restart # mount /dev/cdrom /var/ftp/publocalhostにAnonymousFTPでログインが可能か確認します。
# ftp localhost Connected to localhost (127.0.0.1). 220 (vsFTPd 2.0.5) Name (localhost:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit
# echo 0 >/selinux/enforce
まず、Karesansuiのトップ画面のホストアイコンをクリックします。
その後、表示される「ゲスト一覧」タブ内の「作成」ボタンをクリックすると以下のような「ゲスト作成」画面が表示されます。

入力方法は、以下の通りです。
| カーネルイメージ | Xenの場合=>'/var/ftp/pub/images/xen/vmlinuz',KVMの場合=>'/var/ftp/pub/isolinux/vmlinuz' |
| initrdイメージ | Xenの場合=>'/var/ftp/pub/images/xen/initrd.img',KVMの場合=>'/var/ftp/pub/isolinux/initrd.img' |
その他、各項目の入力方法に関しては、項目名の右に表示される「?」をクリックして確認してください。
全ての入力が完了したら、「ゲスト作成」画面の最下部にある「作成」ボタンをクリックしてください。
クリック後、ゲスト作成のジョブを受理した旨のメッセージが表示されますので、「閉じる」ボタンで「ゲスト作成」画面を閉じます。
その後表示されるゲスト一覧画面に、今作成したゲストのアイコンが追加されます。

作成されたゲストのアイコンをクリックし、その後表示されるゲスト画面の「コンソール」タブをクリックします。
ゲストのコンソール画面が表示され、コンソール画面において通常のRHEL 5.5(64bit)のOSインストールと同じようにゲスト上にOSをインストールすることができます。

OSインストール時の「Installation Method」の選択では「FTP」を選択し、「FTP Setup」で下記のようにFTPの接続先を設定してください。
| FTP site name | ホストOSのIPアドレス(ループバックアドレスでない) |
| RHEL directory | /pub/ |
以上で、ゲストにOSをインストールするまでの作業は終了です。
ゲストへのOSインストールが終了したら、ゲスト画面の「サマリ」タブに表示される「開始」「停止」「再起動」ボタンでゲストの起動、シャットダウン、再起動を行うことができます。
# rpm -q acpid 2>/dev/null || yum -y install acpid # /sbin/service haldaemon stop # /sbin/service acpid restart # /sbin/chkconfig acpid on # /sbin/service haldaemon start
対象者
利用しているデータベースが、SQLite以外の方が対象です。
影響範囲
ジョブマネージャー(Pysilhouette)全体
今回の不具合について
インストーラーに不具合があり、どのデータベースパスを入力しても、ジョブマネージャー(Pysilhoutte)がSQLiteを選択してしまいます。
その結果、ネットワーク接続に対応していないSQLiteですと、マルチホストに対応することができなくなります。
この不具合の修正版を1.0.2でリリースしましたが、手動で行わなければならない作業がいくつかあります。
以下の手順でアップデートしてください。
1. データベースの作成
移行先のPysilhouetteデーターベースを作成してください。
PostgreSQLの場合
# createdb -U username -W pysilhouette --encoding=utf8
MySQLの場合
# mysql -u username -p -e 'CREATE DATABASE pysilhouette DEFAULT CHARACTER SET utf8;'
注意)
UTF-8でデータベースを作成してください。
2. 新パッケージをダウンロードし、伸長する
# rm -rf Karesansui # tar zxvf karesansui-<バージョン>-install-pack.tar.gz # cd Karesansui
3. 現在のデータベースパスの確認
現在のPysilhouetteのデータベースパスを取得しておきます。
sqlite:////var/opt/pysilhouette/pysilhouette.db
4. Karesansuiをアップデートする
Karesansuiをアップデートし、Pysilhouetteのデータベースを変更します。
チュートリアル を参考にKaresansuiをアップデートしてください。
# ./karesansui-install
「データベースを初期化する」のチェックを外してください! Karesansuiのデータベースが初期化されてしまいます!
5. インストールチェック
./karesansui-checkenvを実行しエラーがないか確認します。
また、「データベース pysilhouette に接続できるかをチェック... 」が指定したデータベースパスになっているか確認してください。
# ./karesansui-checkenv
6. データベースの移行
データベースをSQLiteからMySQLまたはPostgreSQLへコピーをします。
# cd /opt/pysilhouette/share/doc/pysilhouette-0.6.2/tool/ # export PYTHONPATH=/opt/hde/lib/python:/opt/karesansui/lib/python:/opt/pysilhouette/lib/python:$PYTHONPATH # ./sqlite2other.py --input=<移行元データベースパス> --output=<移行先データベースパス>
SQLite : sqlite:////var/opt/karesansui/pysilhouette.db MySQL : mysql://username:password@hostname:port/pysilhouette?charset=utf8 PostgreSQL : postgres://username:password@hostname:port/pysilhouette注意)
コマンドの実行結果で画面に出力される「copy num」の数値はあとで使用しますので、保管してください。 (copy num - xxx) のxxxの部分 sqlite2other.py は SQLite -> MySQL or PostgreSQLの移行のみサポートしています。例)
# ./sqlite2other.py --input=sqlite:////var/opt/pysilhouette/pysilhouette.db --output=mysql://username:password@localhost/pysilhouette?charset=utf8 Cleanup Database [OK] copy num - 3
参考)
データベースパスの書式の詳細な説明は、リファレンス を参考にしてください。
7. 自動インクリメントの変更
Pysilhouetteデータベースの自動インクリメントの値を変更します。
Pysilhouetteデータベースにアクセスして、下記のSQLを実行してください。
SQLの<copy numの数字>の部分は、「4. データベースの移行」の手順で実行した
./sqlite2other.pyで出力されるcopy numの数字に置き換えて実行してください。
PostgreSQLの場合
select setval('jobgroup_id_seq', <copy numの数字>);
select setval('job_id_seq', <copy numの数字>);
例)
# psql pysilhouette -U username -h localhost -c "select setval('jobgroup_id_seq', 3);"
# psql pysilhouette -U username -h localhost -c "select setval('job_id_seq' 3);"
MySQLの場合
ALTER TABLE jobgroup AUTO_INCREMENT = <copy numの数字>;
ALTER TABLE job AUTO_INCREMENT = <copy numの数字>;
例)
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE jobgroup AUTO_INCREMENT = 3;"
# mysql pysilhouette -u username -h localhost -p -e "ALTER TABLE job AUTO_INCREMENT = 3;"
参考)# ./sqlite2other.py --input=<移行元データベースパス> --output=<移行先データベースパス> Cleanup Database [OK] copy num - 3 <-- 置き換える数字
# /etc/init.d/hde-lighttpd stop # /etc/init.d/silhouetted restart # /etc/init.d/hde-lighttpd start
概要
1.1では、ゲストOSの各種データのファイル・ディレクトリ構成が変更されました。下記手順でアップグレードを行うことで、各種ソフトウェアの更新を行うとともに、ファイル・ディレクトリ配置の変換も行います。
なお、アップグレードを行う場合は、重要なデータは別のサーバーへバックアップしてから行うことをお薦めします。
以降では、CentOS 5.3 (i386) を例に説明します。
# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop
1. ダウンロードした1.1のインストールパックを任意のディレクトリに展開します。
# tar zxvf karesansui-1.1.0-xxx-install-pack.tar.gz
2. 展開されたインストールパックに含まれるインストーラを実行します。
# cd Karesansui
# ./karesansui-install
3. インストーラの案内にしたがって、項目を入力します。
このとき、データベース設定の画面でデーターベース初期化を選択しますと、それまでのデータが消去されてしまいますのでアップグレードを行いたい場合は、選択しないようご注意下さい。
4.インストーラの実行が終了後
各種ソフトウェア更新と既存データの移行は完了です。以下のコマンドで、Karesansuiの実行環境に問題ないか確認してください。
# ./karesansui-checkenv
概要
2.0では、ゲストOSのイメージデータファイルはlibvirtの機能であるストレージプールへ配置されるように変更されました。下記手順でアップグレードを行うことで、各種ソフトウェアの更新を行うとともに、ファイル・ディレクトリ配置の変換も行います。
なお、アップグレードを行う場合は、重要なデータは別のサーバーへバックアップしてから行うことをお薦めします。
以降では、CentOS 5.4 (x86_64) を例に説明します。
1. まず、稼働中の全てのゲストOSを、Karesansuiの管理画面から停止するか、または、下記コマンドを実行して停止します。# /opt/hde/bin/virsh shutdown <ゲストOSのドメイン>2. Karesansui関連のサービスを全て停止します。
# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop (Xenを利用しているときのみ)
3. ダウンロードした2.0のインストールパックを任意のディレクトリに展開します。
# tar zxvf karesansui-2.0.0-xxx-install-pack.tar.gz
4. 展開されたインストールパックに含まれるインストーラを実行します。
# cd Karesansui
# ./karesansui-install
5. インストーラの案内にしたがって、項目を入力します。
このとき、データベース設定の画面でデーターベース初期化を選択しますと、それまでのデータが消去されてしまいますのでアップグレードを行いたい場合は、選択しないようご注意下さい。
ただし、pysilhouetteの使用するデータベースは、アップグレード時に初期化されますので、必要であればデータベースのバックアップも行ってください。
6.インストーラの実行が終了後
各種ソフトウェア更新と既存データの移行は完了です。以下のコマンドで、Karesansuiの実行環境に問題ないか確認してください。
# ./karesansui-checkenv
7. ホストを再起動します。# shutdown -r now
バージョン1.1.xとのファイル・ディレクトリ構成の差分
2.0からゲストOSに使用されるイメージファイルは、ストレージプール上のストレージボリュームとして配置されます。
1. ゲストOSのイメージファイル
1.1 バージョン1.1.xのファイルパス
/var/opt/hde/libvirt/domains/<ドメイン名>/images/<ドメイン名>.img
1.2 バージョン2.0.xのファイルパス
ストレージプール上のストレージボリュームファイル
デフォルトでは、defaultという名前のストレージプールが、/var/opt/hde/libvirt/domainsディレクトリに対して作成されますので、
1.1からのアップグレードでは、1.1のイメージファイルパス(/var/opt/hde/libvirt/domains/<ドメイン名>/images/<ドメイン名>.img)へ
のシンボリックリンクが、/var/opt/hde/libvirt/domainsディレクトリの配下にUUID形式のファイル名で作成されます。
# ls -ltr /var/opt/hde/libvirt/domains/[0-9]* lrwxrwxrwx 1 root kss 57 6月 15 12:46 /var/opt/hde/libvirt/domains/55236ff8-88bb-023f-1499-2f34c4f1b133 -> /var/opt/hde/libvirt/domains/foo/images/foo.img
概要
2.0.0から2.0.xへのアップデートは、インストーラの使用し、下記手順でアップグレードを行うことで、各種ソフトウェアの更新を行うことができます。
なお、アップデートを行う場合は、重要なデータは別のサーバーへバックアップしてから行うことをお薦めします。
以降では、CentOS 5.4 (x86_64) を例に説明します。
1. まず、稼働中の全てのゲストOSを、Karesansuiの管理画面から停止するか、または、下記コマンドを実行して停止します。# /opt/hde/bin/virsh shutdown <ゲストOSのドメイン>2. Karesansui関連のサービスを全て停止します。
# /etc/init.d/silhouetted stop # /etc/init.d/hde-lighttpd stop # /etc/init.d/hde-libvirtd stop # /etc/init.d/xend stop (Xenを利用しているときのみ)
3. ダウンロードした2.0.xのインストールパックを任意のディレクトリに展開します。
# tar zxvf karesansui-2.0.x-xxx-install-pack.tar.gz
4. 展開されたインストールパックに含まれるインストーラを実行します。
# cd Karesansui # ./karesansui-install
5. インストーラの案内にしたがって、項目を入力します。
このとき、データベース設定の画面でデーターベース初期化を選択しますと、それまでのデータが消去されてしまいますのでアップグレードを行いたい場合は、選択しないようご注意下さい。
ただし、pysilhouetteの使用するデータベースは、アップグレード時に初期化されますので、必要であればデータベースのバックアップも行ってください。
6.インストーラの実行が終了後
各種ソフトウェア更新と既存データの移行は完了です。以下のコマンドで、Karesansuiの実行環境に問題ないか確認してください。
# ./karesansui-checkenv7. ホストを再起動します。
# shutdown -r now
チュートリアルのKaresansuiのインストールを参照し、インストールを行います。
Karesansuiには開発者向けの構築コマンドがあります。これを実行する事で簡単に構築することができます。
# cd /opt/karesansui/share/doc/karesansui-2.0.1/tool # ./mk_opendev.sh
[root@localhost tool]# ./mk_opendev.sh Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: www.ftp.ne.jp * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp addons | 951 B 00:00 base | 2.1 kB 00:00 extras | 2.1 kB 00:00 updates | 1.9 kB 00:00 Setting up Install Process Package gnutls-utils-1.4.1-3.el5_4.8.x86_64 already installed and latest version Package PyXML-0.8.4-4.el5_4.2.x86_64 already installed and latest version Package perl-HTML-Parser-3.55-1.fc6.x86_64 already installed and latest version Package perl-URI-1.35-3.noarch already installed and latest version Nothing to do Working Directory[default:/root] :/git Proceed to build development environment, then press enter. Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: www.ftp.ne.jp * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp karesansui-devel | 951 B 00:00 karesansui-devel/primary | 13 kB 00:00 karesansui-devel 41/41 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package git.x86_64 0:1.7.1-1 set to be updated --> Processing Dependency: perl-Git = 1.7.1-1 for package: git --> Processing Dependency: perl(DBI) for package: git --> Processing Dependency: perl(Git) for package: git --> Running transaction check ---> Package perl-DBI.x86_64 0:1.52-2.el5 set to be updated ---> Package perl-Git.x86_64 0:1.7.1-1 set to be updated --> Finished Dependency Resolution Dependencies Resolved =================================================================================================================================================================================== Package Arch Version Repository Size =================================================================================================================================================================================== Installing: git x86_64 1.7.1-1 karesansui-devel 6.2 M Installing for dependencies: perl-DBI x86_64 1.52-2.el5 base 600 k perl-Git x86_64 1.7.1-1 karesansui-devel 17 k Transaction Summary =================================================================================================================================================================================== Install 3 Package(s) Upgrade 0 Package(s) Total download size: 6.8 M Downloading Packages: (1/3): perl-Git-1.7.1-1.x86_64.rpm | 17 kB 00:00 (2/3): perl-DBI-1.52-2.el5.x86_64.rpm | 600 kB 00:00 (3/3): git-1.7.1-1.x86_64.rpm | 6.2 MB 00:05 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 570 kB/s | 6.8 MB 00:12 警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID 8c0505ed karesansui-devel/gpgkey | 1.7 kB 00:00 Importing GPG key 0x8C0505ED "Karesansui Project Key (Karesansui Project Official Signing Key) <karesansui-key@karesansui-project.info>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-Karesansui Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : perl-DBI 1/3 Installing : git 2/3 Installing : perl-Git 3/3 Installed: git.x86_64 0:1.7.1-1 Dependency Installed: perl-DBI.x86_64 0:1.52-2.el5 perl-Git.x86_64 0:1.7.1-1 Complete! ntpd を停止中: 11 Nov 22:28:33 ntpdate[5980]: step time server 210.171.226.40 offset 280.294142 sec ntpd を起動中: [ OK ] Proceed to build development environment, then press enter. /git /opt/karesansui/share/doc/karesansui-2.0.1/tool Initialized empty Git repository in /git/karesansui/.git/ remote: Counting objects: 14433, done. remote: Compressing objects: 100% (3193/3193), done. remote: Total 14433 (delta 10153), reused 14409 (delta 10137) Receiving objects: 100% (14433/14433), 4.94 MiB | 3.55 MiB/s, done. Resolving deltas: 100% (10153/10153), done. /git/karesansui.git /git /opt/karesansui/share/doc/karesansui-2.0.1/tool Branch dev set up to track remote branch dev from origin. Switched to a new branch 'dev' /git /opt/karesansui/share/doc/karesansui-2.0.1/tool # su -s /bin/bash wwwhde -c "KARESANSUI_CONF=/etc/opt/karesansui/application.conf SEARCH_PATH=/opt/karesansui/lib/python:/opt/hde/lib/python:/opt/pysilhouette/lib/python /opt/karesansui/bin/karesansui.fcgi"
[root@localhost tool]# su -s /bin/bash wwwhde -c "KARESANSUI_CONF=/etc/opt/karesansui/application.conf SEARCH_PATH=/opt/karesansui/lib/python:/opt/hde/lib/python:/opt/pysilhouette/lib/python /opt/karesansui/bin/karesansui.fcgi" http://0.0.0.0:8080/
ブラウザで、http://localhost:8080/karesansui/v2/ にアクセスしてください。
※開発WebサーバーはSSLをサポートしていません。httpでアクセスしてください。
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT* git リポジトリをmasterにしてみましょう。
# git checkout master
以上で開発の準備は終了です。
コマンドをひとつ実行するだけで開発準備が整ったと思います。
あとは、開発用フォルダにあるkaresansui.gitを編集するだけで開発が行えるはずです。
Karesansuiは開発準備にコストをかけることを望んでいません。
我々はあなたにとってシンプルで直感的な開発環境を提供します。
注) だからといってエディタ、IDEを強制するものではありませんのであしからず。
Karesansui に Hello World ページを新しく追加する手順です。
開発ドキュメントの開発環境を作ってみるを参照し、開発環境を構築します。
以下の流れで新規ページを作成します。
templates/default/host/host.html ファイルを次のように編集します。
これにより Karesansui のホスト画面に、Hello タブが追加されます。
# cat templates/default/host/host.html | grep -e "<li class" -e "tab-left" -e "</li>"
<li class="top-tab">
<a class="tab-left" href="#" id="${ctx.homepath}/host.part"><span class="tab-right">${_('Summary')}</span></a>
</li>
<li class="top-tab">
<a class="tab-left" href="#" id="${ctx.homepath}/user.part"><span class="tab-right">${_('User')}</span></a>
</li>
<li class="top-tab">
<a class="tab-left" href="#" id="${ctx.homepath}/job.part"><span class="tab-right">${_('Job')}</span></a>
</li>
<li class="top-tab">
<a class="tab-left" href="#" id="${ctx.homepath}/tag.part"><span class="tab-right">${_('Tag')}</span></a>
</li>
<li class="top-tab">
<a class="tab-left" href="#" id="${ctx.homepath}/hello.part"><span class="tab-right">${_('Hello')}</span></a>
</li>
urls.py ファイルを次のように編集します。これにより、URL マッピングが行われるようになります。
# grep hello /git/karesansui.git/karesansui/urls.py
import karesansui.gadget.hello
+ karesansui.gadget.hello.urls \
gadget/hello.py ファイルを次のように作成します。
Notice: gadget ファイルを変更・作成した場合は、Web サーバーの再起動が必要となります。
# cat << 'EOS' > /git/karesansui.git/karesansui/gadget/hello.py
# -*- coding: utf-8 -*-
from karesansui.lib.rest import Rest, auth
class Hello(Rest):
@auth
def _GET(self, *param, **params):
return True
@auth
def _POST(self, *param, **params):
return True
urls = (
'/hello/?(\.part)$', Hello,
)
EOS
templates/default/hello/hello.part ファイルを次のように作成します。
# rm -rf /git/karesansui.git/karesansui/templates/default/hello
# mkdir /git/karesansui.git/karesansui/templates/default/hello
# cat << 'EOS' > /git/karesansui.git/karesansui/templates/default/hello/hello.part
<%inherit file="../include/common.part" />
<script type="text/javascript">
<!--
$(document).ready(function(){
$("#tool_renew").click(function(){
renew_msg(true);
});
});
-->
</script>
<div id="hello">
<div classs="alert"></div>
<div id="action" >
<div class="left"></div>
<div class="right">
<a href="#" class="tool-link" >
<div class="tool-mid">
<img src="${ctx.homepath}/static/images/reload.gif" alt="renew" id="tool_renew"/>
</div>
</a>
</div>
</div>
<br style="clear: both;"/>
<div class="space"/>
<div id="view">
<div class="hello-contents">
<br>
<div align="center">Hello World</div>
<br>
</div>
</div>
<br style="clear: both;"/>
</div>
EOS
static/css/style.css を次のように編集し、static/css/hello.css ファイルを作成します。
# grep hello /git/karesansui.git/karesansui/static/css/style.css
@import url('./hello.css');
# cat << 'EOS' > /git/karesansui.git/karesansui/static/css/hello.css
.hello-contents{
background-color:#FFFFFF;
border-color:#BCBCBC;
border-style:solid;
border-width:1px 1px 1px;
color:#000000;
font-size:12px;
margin-bottom:15px;
padding-bottom:5px;
padding-top:6px;
width:99.8%;
}
EOS
今回作成したファイルを、kss グループから読み込みできるように設定します。
# chown root:kss /git/karesansui.git/karesansui/gadget/hello.py # chown root:kss /git/karesansui.git/karesansui/static/css/hello.css # chown -R root:kss /git/karesansui.git/karesansui/templates/default/hello
次のコマンドで開発 Web サーバーを起動します。
既に起動している場合は、再起動を行ってください。
# su -s /bin/bash wwwhde -c "KARESANSUI_CONF=/etc/opt/karesansui/application.conf SEARCH_PATH=/opt/karesansui/lib/python:/opt/hde/lib/python:/opt/pysilhouette/lib/python /opt/karesansui/bin/karesansui.fcgi"
開発 Web サーバーに接続し、今回作成した Hello World ページが正常に表示されるかを確認してください。
最後に新しいページを作るにあたって、注意する点としては以下があります。
今回新しく作成した gadget ファイルを読み込めない場合に発生します。
ファイル属性の確認を行ってください。
今回新しく作成した template ファイルを読み込めない場合に発生します。
ファイル属性の確認を行ってください。

起動処理が行われます。初期化処理の追加時に利用してください。
Karesansuiが独自に作成した、薄いWebフレームワークの基盤です。Webフレームワークで一般的に存在する処理がすべて記述されています。
※ karesansui/lib/rest.py
MVCのControllerにあたるクラスです。gadgetのファイル名は、テンプレート名(View)で命名規則利用されます。
※ karesansui/gadget
静的ファイルを配置します。
lighttpd経由の場合はWebフレームワークを経由しません。
内部サーバー(開発)の場合はWebフレームワークを経由します。
※ karesansui/static
動的に出力される、テンプレートが配置されています。
※テーマ機能を備えており、設定ファイルを利用することで簡単にテーマ変更をすることができます。
/etc/opt/karesansui/application.conf -> application.template.theme
デフォルトは「default」になっています。
※ karesansui/templates/テーマ名/テンプレートフォルダ名/テンプレート名.拡張子
gadgetで以下の設定を行います。
self.__template__.dir = "テンプレートフォルダ名を指定します"
self.__template__.file = "テンプレート名を指定します"
self.__template__.media = "拡張子を指定します"
データベース制御、操作を行います。
※Pysilhouetteについては外部ライブラリとして透過利用しています。
※ karesansui/db
高い権限が必要な処理はすべてジョブマネージャ(Pysilhouette)で処理されます。操作はすべてデータベース経由になります。
仮想化ライブラリ、各種ロジック、ファイル操作などライブラリとして切り出せるすべてが配置されています。
※ karesansui/lib
一般的なものから、仮想化特有、環境特有のユーティリティなど様々提供します
※ karesansui/lib/utils
※ こまったらまずこのファイルを参照してください。たいていのものがあるはずです。
Webフレームワークにアクセスする入力チェックライブラリです。
static配下のchecker.js(Javascript)と完全に同じ記述で入力チェックを実装することができます。これにより、言語差による学習コストを低減しています。
※ karesansui/lib/checker.py
※ こまったらまずこのファイルを参照してください。たいていのものがあるはずです。
KaresansuiのWebフレームワークは薄いラッパーです。各OSSのライブラリへの直接アクセスを妨げません。ですがより簡単にシンプルに操作するためのライブラリは積極的に実装されています。
ライブラリへのリンク
web.py docs
mako docs
SQLAlchemy docs
※MVC別に分類します。
このページではMVCのController部分のリファレンスを紹介します。

gadgetは各ファイルが一つのリソース(URL:RESTful)になります。
作成手順は 新しいページを作ってみる を参照してください。
gadgetクラスにはHTTP Methodに合わせて _GET, _POST, _PUT, _DELETE がありますがその中で利用可能なメソッド, 変数に以下のようなものがあります。
example) <Storage {'media': 'html', 'file': 'host', 'dir': 'host'}>
example)
self.logger.debug("hoge") # /var/log/karesansui/application.logに出力されます。
example)
self.logger.debug("hoge") # /var/log/karesansui/error.logに出力されます。
example)
self.view.hoge = "hogehoge" # テンプレートでは ${hoge} を記述するだけで hogehoge が取得できます。
※1
ダウンロードを行う方法は3種類あります。
example) self.download.file = "ファイルパス" self.download.type = OUTPUT_TYPE_FILE (lib.restをインポートします)* IOストリームを利用して出力します。※クライアントがタイムアウトするような巨大なファイルや、処理をしながら出力する際に利用します。
example) self.download.stream = IOオブジェクト self.download.type = OUTPUT_TYPE_STREAM
※以下をTrueにすることで出力したあとに元のファイルを削除します。
self.download.once = False
return True : HTTP Responseコード200で処理されます。
return False : HTTP Responseコード500で処理されます。
その他のHTT Responseコードで処理するには
return web.xxxx() example) return web.notfound()h3. 対応しているHTTP Response コード
# 200, 201, 202 "ok", "created", "accepted", # 301, 302, 303, 304, 407, 408 "redirect", "found", "seeother", "notmodified", "tempredirect", "requesttimeout" # 400, 401, 403, 404, 405, 406, 409, 410, 412 "badrequest", "unauthorized", "forbidden", "nomethod", "notfound", "notacceptable", "conflict", "gone", "preconditionfailed", # 500 "internalerror",
※MVC別に分類します。
このページではMVCのModelを利用してのアクセス部分のリファレンスを紹介します。
※例文のコードは、karesansui/db/access/user.pyのプログラムを利用しています。


Karesansuiでは、様々なデータをデータベースに保存しています。ここでは、データベースにアクセスする方法を紹介します。
データベースにアクセスするプログラムは、karesansui/db/accessフォルダ になります。
※テーブル別にファイルを分類しています。
Karesansuiでは、オープンソースのSQLAlchemyを利用しています。
SQLAlchemyはPythonで書かれたO/RマッパーでPostgreSQL、MySQL、SQLite、Firebirdなど複数のデータベースをサポート(KaresansuiのサポートデータベースはSQLAlchemyに準拠しています)しています。
詳しくはSQLAlchemyのドキュメントを参照ください
KaresansuiではfindbyXXという命名規則を利用してます。
これもSQLAlchemyを直接利用することで簡単に実装可能です。
# idを利用して一件レコードを取得します。
def findby1(session, id):
return session.query({Modelオブジェクト}).filter({Modelオブジェクト}.id == id).first()
# モデルで定義したテーブルをすべて取得します。
def findbyall(session):
return session.query({Modelオブジェクト}).all()
karesansui.db.accessにKaresansuiが拡張したデコレータがあります。
このデコレータでは、Karesansui用の処理エラー、ログ出力、戻り値の成功可否を自動処理します。
利用方法は簡単で、karesansui.db.access配下にデータベースアクセスファイルを作成し内部で定義するだけです。
example)
@dbsave
def save(session, user):
session.save(user)
@dbupdate
def update(session, user):
session.update(user)
@dbdelete
def delete(session, user):
session.delete(user)
Modelオブジェクトは直接 karesansui.db.model.xxxを利用することでnewすることができますが、それでは依存関係が複雑になります。
そこでKaresansuiでは、karesansui.db.access.xxxにnewメソッドを記述することで、gadgetなどでmodelを直接インポートしない形をとっています。
def new(email, password, salt, nickname, languages=None):
return User(email, password, salt, nickname, languages)
データベースアクセスについては、説明より既存のコードを読むほうが分かりやすいと思います。
Karesansui Projectでは、karesansui/db/access/user.py が一番分かりやすいと考えます。
また、SQLAlchemyのドキュメントにすべて書かれていますので合わせて読むのを推奨します。
※MVC別に分類します。
このページではMVCのデータベースに紐づくModelのリファレンスを紹介します。
※例文のコードは、karesansui/db/model/user.pyのプログラムを利用しています。

Karesansuiでは、様々なデータをデータベースに保存しています。ここでは、データベースをModel定義する方法を紹介します。
データベースモデル定義プログラムは、karesansui/db/modelフォルダ になります。
※テーブル別にファイルを分類しています。
Karesansuiでは、オープンソースのSQLAlchemyを利用しています。
SQLAlchemyはPythonで書かれたO/RマッパーでPostgreSQL、MySQL、SQLite、Firebirdなど複数のデータベースをサポート(KaresansuiのサポートデータベースはSQLAlchemyに準拠しています)しています。
詳しくはSQLAlchemyのドキュメントを参照ください
Karesansui からSQLAlchemyを使う場合、以下の3つを用意する必要があります。
def get_user_table(metadata, now):
return sqlalchemy.Table('user', metadata,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
),
sqlalchemy.Column('email', sqlalchemy.String(256),
unique=True,
nullable=False,
),
sqlalchemy.Column('password', sqlalchemy.String(40),
nullable=False,
),
sqlalchemy.Column('salt', sqlalchemy.Unicode(16),
nullable=False,
),
sqlalchemy.Column('nickname', sqlalchemy.Unicode(16),
nullable=False,
),
sqlalchemy.Column('languages', sqlalchemy.Unicode(6),
default=u'ja_JP',
),
sqlalchemy.Column('created', sqlalchemy.DateTime,
default=now,
),
sqlalchemy.Column('modified', sqlalchemy.DateTime,
default=now,
onupdate=now,
),
)
class User(karesansui.db.model.Model):
def __init__(self, email, password, salt, nickname, languages=None):
self.password = password
self.salt = salt
self.email = email
self.nickname = nickname
self.languages = languages
def get_json(self, languages):
ret = {}
ret["id"] = self.id
ret["email"] = self.email
#ret["password"] = self.password
#ret["salt"] = self.salt
ret["nickname"] = self.nickname
ret["languages"] = self.languages
ret["created"] = self.created.strftime(
DEFAULT_LANGS[languages]['DATE_FORMAT'][1])
ret["modified"] = self.modified.strftime(
DEFAULT_LANGS[languages]['DATE_FORMAT'][1])
return ret
def __repr__(self):
return "User<'%s, %s'>" % (
self.email, self.languages)
def reload_mapper(metadata, now):
t_user = get_user_table(metadata, now)
mapper(User, t_user)
* karesansui/db/model/__init__#reload_mappers関数に上記で作成したマッピング関数を追記します。+ import karesansui.db.model.user + karesansui.db.model.user.reload_mapper(metadata, _now)
※MVC別に分類します。

このページではMVCのビュー(templates/theme)のリファレンスを紹介します。
※例文のコードは、karesansui/templates/{テーマ}のプログラムを利用しています。
Karesansuiでは、オープンソースのMakoを利用しています。
MakoはPythonで書かれたテンプレートエンジンで、Pythonコードを埋め込む機能やキャッシュ機能を有しています。
詳しくはMakoのドキュメントを参照ください
Karesansuiでは、ビューのテンプレートエンジンにMakoを採用しています。ここでは、テンプレート(View)を記述する方法を紹介します。
テンプレートファイルフォルダは、karesansui/templates/{テーマ名}/ になります。
※gadgetの名前とURL拡張子別にファイルを分類しています。
gadgetの名前 : gadgetのファイル名をテンプレートパスに自動定義します。
URL拡張子 : .html | .part | .input | .json をテンプレートパスに自動定義します。
gadgetファイル名 : hoge.py
テンプレートパス : karesansui/{テーマ}/hoge/hoge.[.html|.part|.input|.json]
Karesansuiではテンプレートをテーマとして切り替えることができます。
切り替える方法 : /etc/opt/karesansui/application.confの「application.template.theme=default」を変更しテーマフォルダにテーマフォルダを作成します。
example)設定ファイルを変更 : application.template.theme=hoge テンプレートフォルダを作成 : karesansui/templates/hoge
拡張子をうまく利用することで、さまざなメディアタイプに対応することができます。
Karesansuiでは標準で以下の拡張子に対応しています。
※もちろん対応を増やすことも容易です。
'html' : 通常のHTMLファイルです。 'json' : JSON形式ファイルです。 'part' : HTMLの一部ファイルです。 'input' : partの一部ファイルを編集可能な形式にしたファイルです。(<label>を<input>にするなど...) 'xml' : XML形式ファイルです。
gadgetの_GET ... 内で、self.viewに値をセットします。
example)
gadget/hoge.py
def _GET ...
self.view.foo = "Foo"
self.view.bar = "Bar"
--
templates/theme/hoge/hoge.html
${foo}
${bar}
_ : 国際化された文字を出力します。利用方法 : ${_("hoge")}
context : mako定義
ctx : HTTP情報
.
|-- AUTHORS 開発者リスト
|-- COPYING コピーライト(GPL)
|-- COPYING.LIB ライブラリ部分のコピーライト(LGPL)
|-- INSTALL インストール方法
|-- INSTALL.ja インストール方法(日本語)
|-- MANIFEST.in # Python マニフェストファイル
|-- README READMEファイル
|-- README.ja READMEファイル(日本語)
|-- bin # Karesansuiが利用するコマンド(単体での利用も可能です。)
| |-- __cmd__.py # サーバー起動時に動的に作成されるファイルです。※変更しないでください。
| |-- add_bonding.py
| |-- add_disk.py
| |-- add_iscsi.py
| |-- add_nic.py
| |-- append_disk.py
| |-- apply_lighttpdconf.py
| |-- apply_snapshot.py
| |-- autostart_guest.py
| |-- autostart_network.py
| |-- autostart_service.py
| |-- autostart_storage_pool.py
| |-- connect_virt.py
| |-- control_iptables.py
| |-- cputop.py
| |-- create_guest.py
| |-- create_network.py
| |-- create_storage_pool.py
| |-- create_storage_volume.py
| |-- delete_bonding.py
| |-- delete_disk.py
| |-- delete_export_data.py
| |-- delete_guest.py
| |-- delete_iscsi.py
| |-- delete_network.py
| |-- delete_nic.py
| |-- delete_snapshot.py
| |-- delete_storage_pool.py
| |-- delete_storage_volume.py
| |-- destroy_guest.py
| |-- destroy_storage_pool.py
| |-- export_guest.py
| |-- get_cpu_usage.py
| |-- get_iscsi.py
| |-- get_memory_usage.py
| |-- import_guest.py
| |-- initialize_collectd_conf.py
| |-- karesansui.fcgi
| |-- karesansui_sysinfo.py
| |-- ksscommand.py
| |-- read_conf.py
| |-- ready_mount.py
| |-- reboot_guest.py
| |-- replicate_guest.py
| |-- replicate_storage_volume.py
| |-- restart_network.py
| |-- restart_network_interface.py
| |-- restart_service.py
| |-- restore_firewall.py
| |-- resume_guest.py
| |-- save_firewall.py
| |-- set_mac_address.py
| |-- set_memory.py
| |-- set_vcpus.py
| |-- set_vnc.py
| |-- shutdown_guest.py
| |-- start_guest.py
| |-- start_iscsi.py
| |-- start_network.py
| |-- start_service.py
| |-- start_storage_pool.py
| |-- stop_iscsi.py
| |-- stop_network.py
| |-- stop_service.py
| |-- suspend_guest.py
| |-- take_snapshot.py
| |-- update_iscsi.py
| |-- update_network.py
| |-- update_software.py
| `-- write_conf.py
|-- doc 各種設定ファイル
| |-- application.conf.example # Karesansuiの設定ファイル例
| |-- babel.map # 国際化マッピングファイル(Babelを使用しています。)
| |-- centos5-x86.ks # centos5のキックスタートファイル例
| |-- cron_cleantmp.example # Karesansuiの設定ファイル例
| |-- epydoc.cfg # epydocの設定ファイル
| |-- lighttpd # Karesansuiの設定ファイル例
| |-- log.conf.example # Karesansuiの設定ファイル例
| |-- logview.xml.example # Karesansuiの設定ファイル例
| |-- messages.pot # 国際化メッセージファイル
| |-- redhat.spec # SPECファイル(KaresansuiをRPMパッケージする場合はこちらを利用してください)
| |-- service.xml.example # Karesansuiの設定ファイル例
| |-- tables # Karesansuiの設定ファイル例
| |-- template # Karesansuiの設定ファイル例
| `-- whitelist.conf.example # Karesansuiの設定ファイル例
|-- example
| `-- rrd
|-- installer # インストーラー関連
| |-- doc
| |-- installer
| |-- karesansui-checkenv # Karesansuiの状態をチェックします。
| |-- karesansui-initdb # Karesansuiが利用するデータベースを初期化します。
| |-- karesansui-install # Karesanuiインストールコマンド
| |-- karesansui-uninstall # Karesansuiアンインストールコマンド
| `-- tool
|-- karesansui # Karesansui 本体
| |-- __init__.py
| |-- app.py # サーバー起動ファイル
| |-- auth # ユーザ認証
| |-- db # データベース
| |-- gadget # Controller
| |-- lib # ライブラリ
| |-- locale # 国際化
| |-- plus # Karesansuiとは別のライセンスで定義されたプログラム
| |-- prep.py # サーバ起動前処理
| |-- static # 静的ファイル
| |-- templates # テンプレート
| |-- tests # test
| |-- urls.py # URLマッピング
|-- scripts # FastCGI用のスクリプト
| `-- karesansui.fcgi
|-- setup.cfg
|-- setup.py
`-- tool # Karesansuiで利用出来るツールコマンド群
|-- cleanlydb.py # データベースをクリーンすることができます。
|-- coverage.sh # カバレッジをHTMLで出力します。
|-- db_dump.sh # データベースダンプコマンド
|-- db_restore.sh # データベースリストアコマンド
|-- delbr.sh # ネットワークブリッジを削除するコマンド
|-- epydoc.sh # Javadoc形式のドキュメントを生成します。
|-- install.sh # 現在使われていません。
|-- make_locale.sh # gettextを利用した国際化ファイルを作成します。
|-- makefirewall.sh # Karesansui用のiptablesを作成します。
|-- mk_opendev.sh # ※Karesansuiの開発環境を自動で構築します。
|-- rpm_2_git.sh # 現在利用されていません。
`-- uninstall.sh # 現在利用されていません。