日次アーカイブ: 2014年06月07日

上田さん後藤さん、「フルスクラッチから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ムック)