fbpx

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」が表示されているため、何らかの手順が不足しています。

Author

Chef・Docker・Mirantis製品などの技術要素に加えて、会議の進め方・文章の書き方などの業務改善にも取り組んでいます。「Chef活用ガイド」共著のほか、Debian Official Developerもやっています。

Daisuke Higuchiの記事一覧

新規CTA