ユニットホスティングには、”ユーザスクリプト”と呼ばれる、インストールの後に実行されるシェルスクリプトを外部からHTTP経由で取得する機能があります。yumでrubyパッケージを入れてgemでパッケージをインストールしたり、ftpをインストールしてiptablesをつかって自分の自宅のIPからFTP接続のためのポートを開けたりといった作業を定型化できます。
私は、PHPフレームワークの`symfony`でプログラムを書くことが多いのでそのセットアップを以下のようなユーザスクリプトで実現してます。
#!/bin/bash #symfony base # dino yum repository rpm -ivh http://nog.dino.co.jp/dist/centos/5/dino/noarch/dino-release-1.0-1.noarch.rpm # DAG yum repository rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.5.1-1.el5.rf.i386.rpm # yum install httpd & php yum -y install httpd httpd-devel php php-pear php-devel php-dom # yum install git yum -y git # yum install mysql yum -y install mysql mysql-server php-mysql sed -i.orig -e "s/¥[mysqld¥]/¥[mysqld¥]¥ndefault-character-set = utf8/" /etc/my.cnf cat >> /etc/my.cnf < [client] default-character-set = utf8 [mysqldump] default-character-set = utf8 EOF # pear/pecl command patch sed -e 's/16M/640M/' < /usr/bin/pear > /usr/bin/pear-extend_memory_limit chmod +x /usr/bin/pear-extend_memory_limit sed -e 's/16M/640M/' < /usr/bin/pecl > /usr/bin/pecl-extend_memory_limit chmod +x /usr/bin/pecl-extend_memory_limit # install symfony pear-extend_memory_limit channel-discover pear.symfony-project.com pear-extend_memory_limit install symfony/symfony # virtual host の設定 cat > /etc/httpd/conf.d/virtualhosts.conf < NameVirtualHost *:80 Include site.d/*.conf EOF
使い方は簡単です。
まず、手順をシェルスクリプトで記述してユニットホスティングのサーバからアクセスできる場所に配置します。
次に、このユーザスクリプトのURL(この例ではhttp://github.com/tumf/UnitHosting/raw/master/symfony-base.sh)をサーバ構築(もしくは初期化)の画面で入力するだけです。

ファイルの設置には構成管理や共有のしやすさからgithubを用いるのがおすすめです。前述のユーザスクリプトは、http://github.com/tumf/UnitHosting/raw/master/scripts/symfony-base.shで誰でも参照可能です。さらにgithubのアカウントがあれば、このスクリプトをcloneして自分独自の処理を書き加えることもできます。
ユーザスクリプトはインストールの最終段階でroot権限で実行されますので、基本的なコマンドはすでに入った状態です。便利なスクリプトを作成してサーバの構築作業をどんどん楽にしていきましょう。また、便利なユーザスクリプトを作成したら是非教えてください。





[...] ※ユーザスクリプトについては以前の記事を参照ください。 [...]