Scalrを使ってみよう [2]
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
Scalr 2.5 のインストール
Installation を参照し、Scalr 2.5 のインストールを行います。
なお、Installation にある通り、プライベートなScalr環境の構築は推奨されていないため、参考程度にとどめてください。
Ubuntu Serverのインストール
Download Ubuntu ServerからUbuntu 11.10 server 64bit image (インストーラ ISO イメージ)を取得します。
Ubuntu 10.04.3 server は PHP5 が 5.3.2 なので使用しません。
QEMUイメージを作成します。
% qemu-img create -f qcow2 scalr-ubuntu-server-11.10.img 10G Formatting 'scalr-ubuntu-server-11.10.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 %
QEMUイメージとインストーラISOイメージを指定して、KVMを起動します。
% kvm -hda scalr-ubuntu-server-11.10.img -cdrom ubuntu-11.10-server-amd64.iso -boot d -m 2048 %
詳細な手順は省略します。インストールは30分程度で完了します。
PHP5 のインストール
Ubuntu 11.10 server の PHP5 は 5.3.6 なのでそのまま利用可能です。
root@ubuntu:~# aptitude install php5 : root@ubuntu:~#
MySQL のインストール
MySQL のインストール時に MySQL の root のパスワードの設定を求められますが、すべて空欄にしてください。
root@ubuntu:~# aptitude install mysql-server : root@ubuntu:~#
その他パッケージのインストール
SSL や SNMP、BIND をインストールします。
root@ubuntu:~# aptitude install libssh2-1 libssh2-1-dev openssl libsnmp-base libsnmp15 snmp snmpd bind9 : root@ubuntu:~# aptitude install gettext make : root@ubuntu:~#
PHP エクステンションのインストール
必要なエクステンションをインストールします。なお、php5-cli php5-mhash は既にインストールされているので省略します。
root@ubuntu:~# aptitude install php5-mysql : root@ubuntu:~# aptitude install php5-curl curl : root@ubuntu:~# aptitude install php5-mcrypt mcrypt : root@ubuntu:~# aptitude install php5-snmp : root@ubuntu:~# aptitude install php-pear : root@ubuntu:~# aptitude install libssh2-php : root@ubuntu:~#
pecl_http はパッケージがないので、apt ではなく pecl でインストールします。
root@ubuntu:~# aptitude install libcurl4-openssl-dev : root@ubuntu:~# pecl install pecl_http WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update downloading pecl_http-1.7.2.tgz ... Starting to download pecl_http-1.7.2.tgz (175,900 bytes) .................done: 175,900 bytes 71 source files, building running: phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 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/20090626/http.so' install ok: channel://pecl.php.net/pecl_http-1.7.2 configuration option "php_ini" is not set to php.ini location You should add "extension=http.so" to php.ini root@ubuntu:~#
rrdtool-php もパッケージがないのでソースインストールします。
root@ubuntu:~# aptitude install librrd2-dev rrdtool : root@ubuntu:~# wget http://oss.oetiker.ch/rrdtool/pub/contrib/php_rrdtool.tar.gz : 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: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 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/20090626/ root@ubuntu:/usr/include/php5/ext/rrdtool#
PHP 設定ファイルに追加します。
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=rrdtool.so root@ubuntu:~# diff -u /etc/php5/apache2/php.ini.orig /etc/php5/apache2/php.ini --- /etc/php5/apache2/php.ini.orig 2012-02-11 12:37:14.000000000 +0900 +++ /etc/php5/apache2/php.ini 2012-02-25 12:36:43.088750706 +0900 @@ -1850,3 +1850,5 @@ ; Local Variables: ; tab-width: 4 ; End: +extension=http.so +extension=rrdtool.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=rrdtool.so root@ubuntu:~# diff -u /etc/php5/cli/php.ini.orig /etc/php5/cli/php.ini --- /etc/php5/cli/php.ini.orig 2012-02-11 12:37:14.000000000 +0900 +++ /etc/php5/cli/php.ini 2012-02-25 12:37:42.388683336 +0900 @@ -1850,3 +1850,5 @@ ; Local Variables: ; tab-width: 4 ; End: +extension=http.so +extension=rrdtool.so root@ubuntu:~#
mod_rewrite を有効にします。
root@ubuntu:~# a2enmod rewrite Enabling module rewrite. To activate the new configuration, you need to run: service apache2 restart root@ubuntu:~#
AllowOverride を All にします。
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 2012-02-15 01:35:18.000000000 +0900 +++ /etc/apache2/sites-available/default 2012-02-25 12:39:16.220759580 +0900 @@ -8,7 +8,7 @@ Options Indexes FollowSymLinks MultiViews - AllowOverride None + AllowOverride All Order allow,deny allow from all root@ubuntu:~#
apache を再起動します。
root@ubuntu:~# /etc/init.d/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.5 のインストール
アーカイブを展開して /var に設置します。
root@ubuntu:~# tar xf scalr-2.5.r6086.tar root@ubuntu:~# mv scalr-2.5.r6086 /var/scalr root@ubuntu:~# cd /var root@ubuntu:/var# chown -R root:root scalr 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#
所有者、パーミッション変更を行います。
root@ubuntu:~# chown -R www-data:www-data /var/scalr/app/cache /var/scalr/app/cron/cron.pid root@ubuntu:~# chmod -R 700 /var/scalr/app/cache /var/scalr/app/cron/cron.pid root@ubuntu:~#
root@ubuntu:~# chmod 777 /var/scalr/app/cache/smarty_bin/en_US root@ubuntu:~# chmod 777 /var/scalr/app/etc/.passwd root@ubuntu:~# chmod 777 /var/scalr/app/etc/.cryptokey root@ubuntu:~#
root@ubuntu:~# chown -R www-data:www-data /var/scalr/app/www root@ubuntu:~# chmod -R a+rX /var/scalr/app/www root@ubuntu:~#
MySQL 設定
Scalr 用のデータベースを作成し、初期データを取り込みます。
root@ubuntu:~# echo 'CREATE DATABASE scalr;' | mysql -u root root@ubuntu:~# mysql -u root -D scalr < /var/scalr/sql/structure.sql root@ubuntu:~# mysql -u root -D scalr < /var/scalr/sql/data.sql root@ubuntu:~#
scalrユーザの権限とパスワードの設定を行います。
root@ubuntu:~# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 492 Server version: 5.1.58-1ubuntu1 (Ubuntu) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> grant all privileges on scalr.* to 'scalr'@'%' identified by 'scalr'; Query OK, 0 rows affected (0.00 sec) mysql> use mysql; update user set password=password('scalrpwd') where user='scalr'; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye root@ubuntu:~#
cron 設定
記載されている cron 文は、実行ユーザが欠落しているため、そのまま /etc/crontab に記載しても動作しません。
root@ubuntu:~# cp -a /etc/crontab /etc/crontab.orig root@ubuntu:~# vi /etc/crontab root@ubuntu:~# diff -u /etc/crontab.orig /etc/crontab --- /etc/crontab.orig 2011-09-20 09:04:34.000000000 +0900 +++ /etc/crontab 2012-02-25 12:49:31.932763974 +0900 @@ -15,3 +15,20 @@ # +*/2 * * * * root /usr/bin/php -q /var/scalr/app/cron-ng/cron.php --Poller +* * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --Scheduler +*/10 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --MySQLMaintenance +* * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --DNSManagerPoll +17 5 * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --RotateLogs +*/2 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --EBSManager +*/20 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --RolesQueue +*/5 * * * * root /usr/bin/php -q /var/scalr/app/cron-ng/cron.php --DbMsrMaintenance +*/2 * * * * root /usr/bin/php -q /var/scalr/app/cron-ng/cron.php --Scaling +*/5 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --DBQueueEvent +*/2 * * * * root /usr/bin/php -q /var/scalr/app/cron/cron.php --SzrMessaging +*/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 +* * * * * 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 --MessagingQueue +*/2 * * * * root /usr/bin/php -q /var/scalr/app/cron-ng/cron.php --DeployManager +* * * * * root /usr/bin/php -q /var/scalr/app/cron-ng/cron.php --SNMPStatsPoller root@ubuntu:~#
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:18:18.000000000 +0900 +++ /etc/bind/named.conf 2012-02-25 12:51:34.536761476 +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:~#
root@ubuntu:~# /etc/init.d/bind9 restart * Stopping domain name service... bind9 ...done. * Starting domain name service... bind9 ...done. root@ubuntu:~#
動作確認
インストールが正常に完了していれば、http://localhost/ にアクセスすると、Scalr ログイン画面が表示されます。ID:admin PW:admin でログインできるはずです。ただし、「Insufficient permissions」が表示されているため、何らかの手順が不足しています。