上田さん、後藤さん、「フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門」発売決定おめでとうございます!私は勝手にこれを記念しまして、シェルスクリプト一撃インストールシリーズ第2弾、今回もさくらのクラウドで、「ログイン後に一発シェルスクリプトを叩くだけでRedMineを動かす」をやってみました。
一撃インストールシリーズとは
chefもpuppetもDockerfileも使わず、シェルスクリプトと設定ファイルのひな形を用意すれば、コマンドを1回実行するだけで環境構築ができてしまうというスグレモノ。学校で、職場で家庭で商店で、是非お試しいただければと思います。
第1弾のWordPressはこちらをご確認くださいね。前提条件となる環境構築はこちらで取り上げたスタートアップスクリプトを実行済みであることとします。また、RedMineのインストールバージョンなどはこちらに合わせてあります。
■ 仕様
- WEBサーバはNginx+Unicorn。RedMineはデーモンとして動かす
- NginxはCentALTリポジトリからインストールする
- Rubyは ftp://ftp.ruby-lang.org/pub/ruby/ からRedmine推奨バージョンをダウンロードし、rpmbuildでrpm化する
- ドキュメントルートは /home/vhosts/IPアドレス/public_html (今回はドキュメントルートへのコンテンツ配置を省略します)
- アクセスログは /home/logs/IPアドレス/ 以下に保存
- Nginx全体のアクセス制御(IPアドレスによる制限) は /etc/nginx/denyhosts で行う
- /etc/logrotate.d/nginx のローテーション対象ログに、バーチャルホストのアクセスログを含め、366世代保管にする
- MySQLのrootパスワード、RedMine用ユーザのパスワードはインストール時に生成する
- RedMine用のDB名、ユーザ名は変数で指定する
- キックするシェルスクリプトの他には、/etc/nginx/conf.d/default.conf の元ファイル、/etc/nginx/denyhostsの元ファイル、rubyのrpm作成用specファイル、rubyダウンロードスクリプト、RedMineのスタートスクリプトを準備し、シェルスクリプトと同じディレクトリにアップロードする
さくらのクラウドには、RedMine用のインスタンスもありますが、Apacheとの連携だったので、どうせだったらNginxと連携させてみたいなー、というのがやってみたキッカケになります。なお、RedMineのデフォルトユーザ「admin/admin」でログインするところまでしか確認してませんので、インストール後はすぐにパスワードを変更しましょう。また、MySQLも mysql_secure_installation コマンドで最低限のセキュリティ設定を行いましょう!
■ デプロイ対象一覧
今回は6つのファイルをホームディレクトリへアップロードしますので、それぞれのファイルについて、役割を表にして整理したいと思います。
INSTALLER | インスタンス起動〜yumアップデートからの再起動後にsshログインして実行するスクリプト |
ruby.spec.orig | ~/rpm/SPECS/ディレクトリ配下に置くspecファイルの元ファイル |
rubycheck | rubyの公式FTPサイトにあるアーカイブ一覧を取得するために使用するスクリプト |
900_denyhosts | Nginxのアクセス制御ファイル |
901_nginx.conf | Nginx設定ファイルのひな形 |
910_redmine-init | RedMineのスタートスクリプト |
次のページに続きます。 Redmine超入門 (日経BPムック)