Scalrを使ってみよう [1]
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
Scalrとは
Scalrとは、米Scalr社が提供するオープンソースのクラウド連携ツールです。さまざまなIaaSと連携でき、Cloud Foundryのプロビジョニングも可能です。
ソースコードを取得することでプライベートなScalr環境を構築できるほか、Scalr社が運営するScalrホスティングサービスを利用することができます。
本項ではOS Specific Installation Guides - Ubuntu 10.04 Lucidを参考に、オープンソース版ScalrのインストールをUbuntu server QEMUイメージに行います。
なお、Installationにある通り、プライベートなScalr環境の構築は推奨されていないため、参考程度にとどめてください。
Ubuntu Serverのインストール
Download Ubuntu ServerからUbuntu 10.04.3 server 64bit image (インストーラ ISO イメージ)を取得します。
QEMUイメージを作成します。
% qemu-img create -f qcow2 ubuntu-server-10.04.3.img 10G Formatting 'ubuntu-server-10.04.3.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 %
QEMUイメージとインストーラISOイメージを指定して、KVMを起動します。
% kvm -hda ubuntu-server-10.04.3.img -cdrom ubuntu-10.04.3-server-amd64.iso -boot d -m 1024
詳細な手順は省略します。インストールは30分程度で完了します。
PHP 5.2 のインストール
Scalr は PHP 5.2 を必要としていますが、Ubuntu 10.04 には公式には PHP 5.3 しか用意されていません。
cf@ubuntu:~$ apt-cache show php5 | grep ^Version Version: 5.3.2-1ubuntu4.11 Version: 5.3.2-1ubuntu4 cf@ubuntu:~$
そのため、Ubuntu 10.04 用に PHP 5.2 をインストールする準備が必要となります。
root@ubuntu:~# aptitude install python-software-properties : root@ubuntu:~# root@ubuntu:~# add-apt-repository ppa:txwikinger/php5.2 Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv F91BF66D1CA9C138944C09AF13C360CC9CC59506 gpg: 鍵9CC59506をhkpからサーバーkeyserver.ubuntu.comに要求 gpg: 鍵9CC59506: 公開鍵“Launchpad PPA for Ralph Janke”を読み込みました gpg: 処理数の合計: 1 gpg: 読込み: 1 (RSA: 1) root@ubuntu:~#
Installation Guideに記載されている /etc/apt/preferences.d/php の内容は 2012/02/14 現在、そのままでは利用できません。項目ごとに空行で区切らないと有効になりません。
root@ubuntu:~# cat > /etc/apt/preferences.d/php Package: libapache2-mod-php5 Pin: version 5.2.10* Pin-Priority: 991 Package: libapache2-mod-php5filter Pin: version 5.2.10* Pin-Priority: 991 Package: php-pear Pin: version 5.2.10* Pin-Priority: 991 Package: php5 Pin: version 5.2.10* Pin-Priority: 991 Package: php5-cgi Pin: version 5.2.10* Pin-Priority: 991 Package: php5-cli Pin: version 5.2.10* Pin-Priority: 991 Package: php5-common Pin: version 5.2.10* Pin-Priority: 991 Package: php5-curl Pin: version 5.2.10* Pin-Priority: 991 Package: php5-dbg Pin: version 5.2.10* Pin-Priority: 991 Package: php5-dev Pin: version 5.2.10* Pin-Priority: 991 Package: php5-gd Pin: version 5.2.10* Pin-Priority: 991 Package: php5-gmp Pin: version 5.2.10* Pin-Priority: 991 Package: php5-ldap Pin: version 5.2.10* Pin-Priority: 991 Package: php5-mhash Pin: version 5.2.10* Pin-Priority: 991 Package: php5-mysql Pin: version 5.2.10* Pin-Priority: 991 Package: php5-odbc Pin: version 5.2.10* Pin-Priority: 991 Package: php5-pgsql Pin: version 5.2.10* Pin-Priority: 991 Package: php5-pspell Pin: version 5.2.10* Pin-Priority: 991 Package: php5-recode Pin: version 5.2.10* Pin-Priority: 991 Package: php5-snmp Pin: version 5.2.10* Pin-Priority: 991 Package: php5-sqlite Pin: version 5.2.10* Pin-Priority: 991 Package: php5-sybase Pin: version 5.2.10* Pin-Priority: 991 Package: php5-tidy Pin: version 5.2.10* Pin-Priority: 991 Package: php5-xmlrpc Pin: version 5.2.10* Pin-Priority: 991 Package: php5-xsl Pin: version 5.2.10* Pin-Priority: 991 Package: php5-mcrypt Pin: version 5.2.6* Pin-Priority: 991 Package: php5-imap Pin: version 5.2.6* Pin-Priority: 991 root@ubuntu:~#
このように記載することで、より新しい PHP 5.3 ではなく、PHP 5.2 をインストールすることが可能になります。
root@ubuntu:~# aptitude install -svy php5 : Inst libapr1 (1.3.8-1ubuntu0.3 Ubuntu:10.04/lucid-updates) Inst libaprutil1 (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates) Inst libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates) Inst libaprutil1-ldap (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates) Inst apache2.2-bin (2.2.14-5ubuntu8.7 Ubuntu:10.04/lucid-updates) Inst apache2-utils (2.2.14-5ubuntu8.7 Ubuntu:10.04/lucid-updates) Inst apache2.2-common (2.2.14-5ubuntu8.7 Ubuntu:10.04/lucid-updates) Inst apache2-mpm-prefork (2.2.14-5ubuntu8.7 Ubuntu:10.04/lucid-updates) Inst php5-common (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) Inst libapache2-mod-php5 (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) Inst php5 (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~#
root@ubuntu:~# aptitude install php5 : root@ubuntu:~#
root@ubuntu:~# dpkg -l php5 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ 名前 バージョ 説明 +++-==============-==============-============================================ ii php5 5.2.10.dfsg.1- server-side, HTML-embedded scripting languag root@ubuntu:~#
MySQL のインストール
root@ubuntu:~# aptitude install -syv mysql-server php5-mysql | grep -v ^C : Inst mysql-common (5.1.41-3ubuntu12.10 Ubuntu:10.04/lucid-updates) Inst libnet-daemon-perl (0.43-1 Ubuntu:10.04/lucid) Inst libplrpc-perl (0.2020-2 Ubuntu:10.04/lucid) Inst libdbi-perl (1.609-1build1 Ubuntu:10.04/lucid) Inst libmysqlclient16 (5.1.41-3ubuntu12.10 Ubuntu:10.04/lucid-updates) Inst libdbd-mysql-perl (4.012-1ubuntu1 Ubuntu:10.04/lucid) Inst mysql-client-core-5.1 (5.1.41-3ubuntu12.10 Ubuntu:10.04/lucid-updates) Inst mysql-client-5.1 (5.1.41-3ubuntu12.10 Ubuntu:10.04/lucid-updates) Inst mysql-server-core-5.1 (5.1.41-3ubuntu12.10 Ubuntu:10.04/lucid-updates) Inst mysql-server-5.1 (5.1.41-3ubuntu12.10 Ubuntu:10.04/lucid-updates) Inst mysql-server (5.1.41-3ubuntu12.10 Ubuntu:10.04/lucid-updates) Inst php5-mysql (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~# root@ubuntu:~# aptitude install mysql-server php5-mysql : root@ubuntu:~#
MySQL のインストール時に MySQL の root のパスワードの設定を求められますが、すべて空欄にしてください。
PHP エクステンションの apt インストール
多数の PHP エクステンションを apt でインストールします。
root@ubuntu:~# aptitude install libssh2-1 openssl libsnmp-base libsnmp15 snmp snmpd bind9 : root@ubuntu:~#
root@ubuntu:~# aptitude install curl php5-curl -svy | grep -v ^C : Inst libcurl3 (7.19.7-1ubuntu1.1 Ubuntu:10.04/lucid-updates) Inst curl (7.19.7-1ubuntu1.1 Ubuntu:10.04/lucid-updates) Inst php5-curl (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~# root@ubuntu:~# aptitude install curl php5-curl : root@ubuntu:~#
root@ubuntu:~# aptitude install php5-cli -svy | grep -v ^C : Inst php5-cli (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~# root@ubuntu:~# aptitude install php5-cli : Inst php5-cli (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~#
root@ubuntu:~# aptitude install gettext : root@ubuntu:~#
root@ubuntu:~# aptitude install libltdl7 libmcrypt4 : root@ubuntu:~#
root@ubuntu:~# aptitude install libmhash2 php5-mhash -svy | grep -v ^C : Inst php5-mhash (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~# root@ubuntu:~# aptitude install libmhash2 php5-mhash : root@ubuntu:~#
root@ubuntu:~# aptitude install php5-snmp snmp snmp5 libsnmp15 -svy | grep -v ^C : Inst php5-snmp (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~# root@ubuntu:~# aptitude install php5-snmp snmp snmp5 libsnmp15 : root@ubuntu:~#
PHP エクステンションの dpkg インストール
apt でインストールできる php5-mcrypt は新しいため、別途 wget でパッケージを取得し、dpkg でインストールします。
root@ubuntu:~# wget http://old-releases.ubuntu.com/ubuntu/pool/universe/p/php-mcrypt/php5-mcrypt_5.2.6-0ubuntu2_amd64.deb --2012-02-08 22:32:14-- http://old-releases.ubuntu.com/ubuntu/pool/universe/p/php-mcrypt/php5-mcrypt_5.2.6-0ubuntu2_amd64.deb old-releases.ubuntu.com をDNSに問いあわせています... 91.189.88.140 old-releases.ubuntu.com|91.189.88.140|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 16698 (16K) [application/x-debian-package] `php5-mcrypt_5.2.6-0ubuntu2_amd64.deb' に保存中 100%[======================================>] 16,698 27.8K/s 時間 0.6s 2012-02-08 22:32:16 (27.8 KB/s) - `php5-mcrypt_5.2.6-0ubuntu2_amd64.deb' へ保存完了 [16698/16698] root@ubuntu:~# root@ubuntu:~# dpkg -i php5-mcrypt_5.2.6-0ubuntu2_amd64.deb : root@ubuntu:~#
PHP エクステンションの PECL インストール
apt インストールできない PHP エクステンションは、PECL でインストールします。
root@ubuntu:~# aptitude install php-pear php5-dev libssh2-1-dev -svy | grep -v ^C : Inst m4 (1.4.13-3 Ubuntu:10.04/lucid) Inst autoconf (2.65-3ubuntu1 Ubuntu:10.04/lucid) Inst autoconf2.13 (2.13-59 Ubuntu:10.04/lucid) Inst autotools-dev (20090611.1 Ubuntu:10.04/lucid) Inst automake1.4 (1:1.4-p6-13.1 Ubuntu:10.04/lucid) Inst binutils (2.20.1-3ubuntu7.1 Ubuntu:10.04/lucid-updates) Inst gcc-4.4 (4.4.3-4ubuntu5 Ubuntu:10.04/lucid) Inst gcc (4:4.4.3-1ubuntu1 Ubuntu:10.04/lucid) Inst libc-dev-bin (2.11.1-0ubuntu7.8 Ubuntu:10.04/lucid-updates) Inst linux-libc-dev (2.6.32-38.83 Ubuntu:10.04/lucid-updates) Inst libc6-dev (2.11.1-0ubuntu7.8 Ubuntu:10.04/lucid-updates) Inst libssh2-1-dev (1.2.2-1 Ubuntu:10.04/lucid) Inst zlib1g-dev (1:1.2.3.3.dfsg-15ubuntu1 Ubuntu:10.04/lucid) Inst libssl-dev (0.9.8k-7ubuntu8.6 Ubuntu:10.04/lucid-updates) Inst libtool (2.2.6b-2ubuntu1 Ubuntu:10.04/lucid) Inst php-pear (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) Inst shtool (2.0.8-3 Ubuntu:10.04/lucid) Inst php5-dev (5.2.10.dfsg.1-2ubuntu6.5 php5.2:10.04/lucid) root@ubuntu:~# root@ubuntu:~# aptitude install php-pear php5-dev libssh2-1-dev : root@ubuntu:~#
root@ubuntu:~# pecl install -f ssh2 WARNING: failed to download pecl.php.net/ssh2 within preferred state "stable", will instead download version 0.11.3, stability "beta" downloading ssh2-0.11.3.tgz ... Starting to download ssh2-0.11.3.tgz (23,062 bytes) ........done: 23,062 bytes 5 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 libssh2 prefix? [autodetect] : : Build process completed successfully Installing '/usr/lib/php5/20060613/ssh2.so' install ok: channel://pecl.php.net/ssh2-0.11.3 configuration option "php_ini" is not set to php.ini location You should add "extension=ssh2.so" to php.ini root@ubuntu:~#
root@ubuntu:~# aptitude install libcurl3-openssl-dev : root@ubuntu:~#
root@ubuntu:~# pecl install pecl_http downloading pecl_http-1.7.1.tgz ... Starting to download pecl_http-1.7.1.tgz (174,098 bytes) .....................done: 174,098 bytes 71 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 whether to enable cURL HTTP requests; specify libcurl directory [yes] : whether to enable support for gzencoded/deflated message bodies; specify zlib directory [yes] : whether to enable response content type guessing; specify libmagic directory [no] : whether to depend on extensions which have been built shared [yes] : : Installing '/usr/lib/php5/20060613/http.so' install ok: channel://pecl.php.net/pecl_http-1.7.1 configuration option "php_ini" is not set to php.ini location You should add "extension=http.so" to php.ini root@ubuntu:~#
PHP エクステンションのソースインストール
apt、dpkg、PECLでインストールできない PHP エクステンションはソースインストールを行います。
root@ubuntu:~# aptitude install librrd2-dev php5-dev rrdtool : root@ubuntu:~# wget http://oss.oetiker.ch/rrdtool/pub/contrib/php_rrdtool.tar.gz--2012-02-08 22:46:45-- http://oss.oetiker.ch/rrdtool/pub/contrib/php_rrdtool.tar.gz oss.oetiker.ch をDNSに問いあわせています... 213.144.138.195, 2001:1620:202d::c3 oss.oetiker.ch|213.144.138.195|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 9353 (9.1K) [application/x-tar] `php_rrdtool.tar.gz' に保存中 100%[======================================>] 9,353 32.3K/s 時間 0.3s 2012-02-08 22:46:48 (32.3 KB/s) - `php_rrdtool.tar.gz' へ保存完了 [9353/9353] root@ubuntu:~# tar xfz php_rrdtool.tar.gz root@ubuntu:~# mv rrdtool /usr/include/php5/ext root@ubuntu:~# cd /usr/include/php5/ext/rrdtool root@ubuntu:/usr/include/php5/ext/rrdtool# phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 root@ubuntu:/usr/include/php5/ext/rrdtool# ./configure --with-php-config=/usr/bin/php-config --with-rrdtool=/usr : root@ubuntu:/usr/include/php5/ext/rrdtool# make : root@ubuntu:/usr/include/php5/ext/rrdtool# make install Installing shared extensions: /usr/lib/php5/20060613/ root@ubuntu:/usr/include/php5/ext/rrdtool#
apache の設定
インストールした PHP エクステンションを apache に組み込みます。
root@ubuntu:~# cp -a /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.orig root@ubuntu:~# cat >> /etc/php5/apache2/php.ini extension=http.so extension=ssh2.so root@ubuntu:~# root@ubuntu:~# diff -u /etc/php5/apache2/php.ini.orig /etc/php5/apache2/php.ini --- /etc/php5/apache2/php.ini.orig 2010-05-21 15:36:52.000000000 +0900 +++ /etc/php5/apache2/php.ini 2012-02-07 22:41:22.598728344 +0900 @@ -1252,3 +1252,5 @@ ; Local Variables: ; tab-width: 4 ; End: +extension=http.so +extension=ssh2.so root@ubuntu:~#
root@ubuntu:~# cp -a /etc/php5/cli/php.ini /etc/php5/cli/php.ini.orig root@ubuntu:~# cat >> /etc/php5/cli/php.ini extension=http.so extension=ssh2.so root@ubuntu:~# root@ubuntu:~# diff -u /etc/php5/cli/php.ini.orig /etc/php5/cli/php.ini --- /etc/php5/cli/php.ini.orig 2010-05-21 15:36:52.000000000 +0900 +++ /etc/php5/cli/php.ini 2012-02-07 22:42:20.418727019 +0900 @@ -1252,3 +1252,5 @@ ; Local Variables: ; tab-width: 4 ; End: +extension=http.so +extension=ssh2.so root@ubuntu:~#
Installation Guideに記載されている rrdtool の PHP エクステンションの組み込み方法は、2012/02/14 現在、対象のファイルを間違えているため注意してください。
root@ubuntu:~# cp -a /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.orig2 root@ubuntu:~# vi /etc/php5/apache2/php.ini root@ubuntu:~# diff -u /etc/php5/apache2/php.ini.orig2 /etc/php5/apache2/php.ini--- /etc/php5/apache2/php.ini.orig2 2012-02-07 22:41:22.598728344 +0900 +++ /etc/php5/apache2/php.ini 2012-02-08 22:52:33.009329573 +0900 @@ -1254,3 +1254,4 @@ ; End: extension=http.so extension=ssh2.so +extension=rrdtool.so root@ubuntu:~#
root@ubuntu:~# cp -a /etc/php5/cli/php.ini /etc/php5/cli/php.ini.orig2 root@ubuntu:~# vi /etc/php5/cli/php.ini root@ubuntu:~# diff -u /etc/php5/cli/php.ini.orig2 /etc/php5/cli/php.ini --- /etc/php5/cli/php.ini.orig2 2012-02-07 22:42:20.418727019 +0900 +++ /etc/php5/cli/php.ini 2012-02-08 22:53:11.779355473 +0900 @@ -1254,3 +1254,4 @@ ; End: extension=http.so extension=ssh2.so +extension=rrdtool.so root@ubuntu:~#
mod_rewrite を有効にします。
root@ubuntu:~# a2enmod rewrite Enabling module rewrite. Run '/etc/init.d/apache2 restart' to activate new configuration! root@ubuntu:~#
root@ubuntu:~# cp -a /etc/apache2/sites-available/default /etc/apache2/sites-available/default.orig root@ubuntu:~# vi /etc/apache2/sites-available/default root@ubuntu:~# diff -u /etc/apache2/sites-available/default.orig /etc/apache2/sites-available/default --- /etc/apache2/sites-available/default.orig 2011-11-03 12:28:36.000000000 +0900 +++ /etc/apache2/sites-available/default 2012-02-08 22:58:44.369354369 +0900 @@ -8,7 +8,7 @@ Options Indexes FollowSymLinks MultiViews - AllowOverride None + AllowOverride All Order allow,deny allow from all root@ubuntu:~#
apache を再起動します。
root@ubuntu:~# service apache2 restart * Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ...done. root@ubuntu:~#
Scalr 2.1.1 のインストール
Scalr 2.1.1 のソースコードを取得します。
root@ubuntu:~# cd /tmp/ root@ubuntu:/tmp# wget http://scalr.googlecode.com/files/scalr-2.1.1.zip --2012-02-08 22:04:54-- http://scalr.googlecode.com/files/scalr-2.1.1.zip scalr.googlecode.com をDNSに問いあわせています... 74.125.31.82 scalr.googlecode.com|74.125.31.82|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 17339570 (17M) [application/x-zip] `scalr-2.1.1.zip' に保存中 100%[======================================>] 17,339,570 1.16M/s 時間 23s 2012-02-08 22:05:17 (725 KB/s) - `scalr-2.1.1.zip' へ保存完了 [17339570/17339570] root@ubuntu:/tmp#
アーカイブファイルを展開し、ディレクトリを /var にすべてコピーします。
root@ubuntu:/tmp# unzip scalr-2.1.1.zip : root@ubuntu:/tmp# cp -a 2.1.1 /var/scalr root@ubuntu:/tmp#
所有者や権限の変更を行います。
root@ubuntu:/tmp# cd /var root@ubuntu:/var# chown -R www-data:www-data /var/scalr/app/cache /var/scalr/app/cron/cron.pid /var/scalr/app/etc/.passwd root@ubuntu:/var# chmod -R 700 /var/scalr/app/cache /var/scalr/app/cron/cron.pid /var/scalr/app/etc/.passwd root@ubuntu:/var#
root@ubuntu:/var# mkdir /var/scalr/app/cache/smarty_bin/en_US root@ubuntu:/var# chmod 777 /var/scalr/app/cache/smarty_bin/en_US root@ubuntu:/var# chmod 777 /var/scalr/app/etc/.passwd root@ubuntu:/var# chmod 777 /var/scalr/app/etc/.cryptokey root@ubuntu:/var# chown -R www-data:www-data /var/scalr/app/www root@ubuntu:/var#
ドキュメントルートを変更します。
root@ubuntu:/var# mv www www_old root@ubuntu:/var# ln -s /var/scalr/app/www root@ubuntu:/var# chmod -R a+rX www root@ubuntu:/var#
MySQL 設定
Scalr のアーカイブに含まれている sql ファイルを使用し、MySQL データベースの設定を行います。
root@ubuntu:~# echo 'CREATE DATABASE scalr;' | mysql -u root root@ubuntu:~# mysql -u root -D scalr < /var/scalr/sql/scalr-2.1-structure.sql root@ubuntu:~# mysql -u root -D scalr < /var/scalr/sql/scalr-2.1-init-data.sql root@ubuntu:~#
権限の設定を行い、MySQL の root ユーザのパスワードを scalr に変更します。なお、Installation Guideに記載されている SQL 文は、2012/02/14 現在、適切ではないためエラーが出ますが、実際には権限の設定とパスワードの変更は行われています。
root@ubuntu:~# mysql -u root <<EOF grant all privileges on scalr.* to 'scalr'@'%' identified by 'scalr'; use mysql; update user set password=password('scalr') where user='root'; flush privileges; exit EOF ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'exit' at line 1 root@ubuntu:~#
Scalrの設定ファイルに、MySQL の root ユーザのパスワードを記載します。
root@ubuntu:~# cp -a /var/scalr/app/etc/config.ini /var/scalr/app/etc/config.ini.orig root@ubuntu:~# vi /var/scalr/app/etc/config.ini root@ubuntu:~# diff -uw /var/scalr/app/etc/config.ini.orig /var/scalr/app/etc/config.ini --- /var/scalr/app/etc/config.ini.orig 2010-09-14 14:51:54.000000000 +0900 +++ /var/scalr/app/etc/config.ini 2012-02-08 22:20:13.269324108 +0900 @@ -3,7 +3,7 @@ host = "localhost" name = "scalr" user = "root" -pass = "" +pass = "scalr" [debug] profiling = 1 root@ubuntu:~#
cron 設定
Installation Guideに記載されている cron 文は、実行ユーザが欠落しているため /etc/crontab に記載すると動作しません。
root@ubuntu:~# cat >> /etc/crontab # scalr */4 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --UsageStatsPoller */2 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --Scheduler */15 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --MySQLMaintenance * * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --DNSManagerPoll */4 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --Scaling 17 5 * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --RotateLogs */4 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --Poller */5 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --DBQueueEvent */4 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --RDSMaintenance */2 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --BundleTasksManager */2 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --MessagingQueue */2 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --EBSManager * * * * * root /usr/bin/php -q /var/scalr/app/cron-ng/cron.php --ScalarizrMessaging * * * * * root /usr/bin/php -q /var/scalr/app/cron-ng/cron.php --SNMPStatsPoller # root@ubuntu:~#
BIND の設定
BIND の設定を行います。
root@ubuntu:~# mkdir /etc/bind/client_zones root@ubuntu:~# touch /etc/bind/client_zones/zones.include root@ubuntu:~# chmod -R 777 /etc/bind/client_zones root@ubuntu:~# echo '#xxxx' > /etc/bind/client_zones/zones.include root@ubuntu:~# cp -a /etc/bind/named.conf /etc/bind/named.conf.orig root@ubuntu:~# vi /etc/bind/named.conf root@ubuntu:~# diff -u /etc/bind/named.conf.orig /etc/bind/named.conf --- /etc/bind/named.conf.orig 2011-11-17 05:30:01.000000000 +0900 +++ /etc/bind/named.conf 2012-02-08 23:20:27.549348432 +0900 @@ -9,3 +9,4 @@ include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; +include "/etc/bind/client_zones/zones.include"; root@ubuntu:~#
Scalr のファイルを変更します。ただし、Installation Guideに記載されている対象のファイルは間違っているので注意してください。
root@ubuntu:~# cp -a /var/scalr/app/cron/class.DNSManagerPollProcess.php /var/scalr/app/cron/class.DNSManagerPollProcess.php.orig root@ubuntu:~# vi /var/scalr/app/cron/class.DNSManagerPollProcess.php root@ubuntu:~# diff -uw /var/scalr/app/cron/class.DNSManagerPollProcess.php.orig /var/scalr/app/cron/class.DNSManagerPollProcess.php --- /var/scalr/app/cron/class.DNSManagerPollProcess.php.orig 2010-08-30 09:27:22.000000000 +0900 +++ /var/scalr/app/cron/class.DNSManagerPollProcess.php 2012-02-08 23:23:24.019309822 +0900 @@ -30,7 +30,7 @@ $remoteBind = new Scalr_Net_Dns_Bind_RemoteBind(); - $transport = new Scalr_Net_Dns_Bind_Transports_LocalFs('/usr/sbin/rndc', '/var/named/etc/namedb/client_zones'); + $transport = new Scalr_Net_Dns_Bind_Transports_LocalFs('/usr/sbin/rndc', '/etc/bind/client_zones'); $remoteBind->setTransport($transport); $zones = $db->GetAll("SELECT id FROM dns_zones WHERE iszoneconfigmodified = '1'"); @@ -89,7 +89,7 @@ $remoteBind = new Scalr_Net_Dns_Bind_RemoteBind(); - $transport = new Scalr_Net_Dns_Bind_Transports_LocalFs('/usr/sbin/rndc', '/var/named/etc/namedb/client_zones'); + $transport = new Scalr_Net_Dns_Bind_Transports_LocalFs('/usr/sbin/rndc', '/etc/bind/client_zones'); $remoteBind->setTransport($transport); switch($DBDNSZone->status) root@ubuntu:~#
root@ubuntu:~# cp -a /var/scalr/app/src/Scalr/Net/Dns/Bind/RemoteBind.php /var/scalr/app/src/Scalr/Net/Dns/Bind/RemoteBind.php.orig root@ubuntu:~# vi /var/scalr/app/src/Scalr/Net/Dns/Bind/RemoteBind.php root@ubuntu:~# diff -uw /var/scalr/app/src/Scalr/Net/Dns/Bind/RemoteBind.php.orig /var/scalr/app/src/Scalr/Net/Dns/Bind/RemoteBind.php --- /var/scalr/app/src/Scalr/Net/Dns/Bind/RemoteBind.php.orig 2010-08-30 10:11:46.000000000 +0900 +++ /var/scalr/app/src/Scalr/Net/Dns/Bind/RemoteBind.php 2012-02-08 23:24:56.839330959 +0900 @@ -33,8 +33,6 @@ $this->zonesConfig[$domain_name] = $matches[0][$index]; } - if (count($this->zonesConfig) == 0) - throw new Exception("Zones config is empty"); return array_keys($this->zonesConfig); } root@ubuntu:~#
動作確認
インストールが正常に完了していれば、http://localhost/ にアクセスすると、Scalr ログイン画面が表示されます。ID:admin PW:admin でログインできるはずです。