Redmine を EC2(ubuntu) + RDS にセットアップ

プロジェクトが始まると、何らかの管理ツールが必要になる。クライアント仕事の際は、クライアントが指定するものを使うし、自分が主導するプロジェクトの際は、プロジェクトに関わるチームメンバーの特性に合わせて、ベストなものを選択する。

 

クライアント仕事で、ツールの選定を先方が行う場合は、みんな大好き「Microsoft Project」、PMBOK準拠「SI Object Browser PM」が指定されたり、小さいチームの場合「Trello」や「wrike」、「Backlog」が指定されることもある。

 

自分がツール選定する場合は、Redmineを使うことが多い。オープンソースで自分でカスタマイズできるし、多くのテーマやプラグインが無償・有償問わず出ているので、それらを利用してカスタマイズすることもできる。

 

今回はRedmineを、AWS(Amazon Web Service)のEC2インスタンスにubuntu16をインストールし、RDSのmysqlに接続するところまで紹介します。Bitnamiansibleを利用する方法もありますが、今後カスタマイズすることを考えるとインストール内容をちゃんと把握しておく必要があるため、セルフ・インストールします。

 

EC2インスタンスの作成

 

インスタンスは、t2.microで問題ありません。さらに課金を抑えたい場合は、日本以外のリージョンを選択するのも良いと思います。日本以外のリージョンを選択することで、メインのサービスのインスタンスと分離して管理できて分かりやすいというメリットも自分は感じます。なお、t2.microを利用する場合、後に説明するswapの設定を行うと動作が機敏になり、おすすめです。

 

 

EC2のクイックスタートにリストされるubuntuは、2018/9/20現在まだ16.04です。特にそれで問題は無いので、今回の記事では16.04をインストールします。

 

 

インストール時に、セキュリティグループを設定する必要があると思いますが、今回は ssh と http のインバウンドを許可するように設定します。httpsのサービスも行いたいですが、今回は http だけです。https については別の記事で書く予定です。

 

RDS・mysqlインスタンスの作成

 

Redmineは、Railsアプリ。DBにPostgreSQLやSQLite等も利用できますが、自分は慣れ親しんだMySQLを使います。EC2インスタンスの中にMySQLサーバも入れて運用するのもありだとは思うのですが、バックアップ等が面倒なのでRDSに任せてしまいます。

 

 

セキュリティグループの設定では、MySQL(3306)を適切に設定する必要があります。 3306の0.0.0.0を指定すればどこからでもアクセスできるようになりますが、セキュリティリスクは高まります。判断してください。

 

以上で、Webコンソール画面による設定は終了です。以下、ターミナルでSSH接続して設定を続けます。

 

SSHでのインストール作業

 

EC2作成時に登録したkey pairを用いて、SSH接続します。接続後、ソフトウェアのアップデートや、swapの設定を行います。

<br />
# root に成ります<br />
sudo su -</p>
<p># ソフトウェアのアップデート<br />
apt-get update<br />
apt-get upgrade</p>
<p># swapの設定<br />
dd if=/dev/zero of=/swap bs=1M count=1024<br />
chmod 600 /swap<br />
mkswap /swap<br />
swapon /swap<br />
swapon -s</p>
<p># 再起動します<br />
reboot</p>
<p>

 

基本的なアプリケーションをインストールします。

<br />
# rootに成ります<br />
sudo su -</p>
<p># お気に入りのエディタをインストール<br />
apt-get install emacs</p>
<p># Rubyをインストール<br />
apt-get install ruby-dev ruby bundler</p>
<p># Apacheと、passengerをインストール<br />
apt-get install apache2 libapache2-mod-passenger</p>
<p># 画像処理アプリをインストール<br />
apt-get install imagemagick libmagick++-dev</p>
<p># Redmineの公式レポジトリはsubversionで管理されています<br />
apt-get install subversion</p>
<p># MySQLをインストール<br />
apt-get install mysql-server libmysqlclient-dev</p>
<p># root 終了<br />
exit<br />

 

ここで一度、RDSのmysqlにアクセスしてみます。ここで問題が起きるとしたら、セキュリティグループの設定漏れか、ユーザ名、サーバ名のコピペミスかと。

<br />
# RDSのmysqlに接続<br />
mysql -u(ユーザ名) -p -h(サーバ名)</p>
<p># mysqlを終了する<br />
mysql&gt; exit<br />

 

redmineをインストールします。

<br />
# パスの作成<br />
sudo mkdir -p /var/www/redmine</p>
<p># オーナー変更<br />
sudo chown www-data:www-data /var/www/redmine</p>
<p># www-dataユーザで、レポジトリからredmineを取得<br />
sudo -u www-data svn co http://svn.redmine.org/redmine/branches/3.4-stable /var/www/redmine<br />

 

redmineが参照するDBの設定ファイルを作成し、内容を記載します。

<br />
# sudo emacs /var/www/redmine/config/database.yml</p>
<p>production:<br />
  adapter: mysql2<br />
  host:	(RDSのサーバ)<br />
  database: (RDSに設定したmysql database名)<br />
  username: (RDSに設定したmysql マスターユーザ名)<br />
  password: (RDSに設定したmysql マスターユーザ・パスワード)<br />
  encoding: utf8mb4<br />
  socket: /var/run/mysqld/mysqld.sock<br />

 

redmineが参照するメールサーバの設定ファイルを作成し、内容を記載します。Gmailを使う場合や、SMTPサーバを使う場合などがあると思いますが、下記に示すそれぞれの設定例を参考に記載します。

<br />
# sudo emacs /var/www/redmine/config/configuration.yml</p>
<p>default:<br />
  email_delivery:<br />
    delivery_method: :smtp<br />
    smtp_settings:<br />
      enable_starttls_auto: false #Gmail等の場合は true<br />
      address: (SMTPサーバのアドレス)<br />
      port: 25<br />
      authentication: :login<br />
      domain: (メールのドメイン)<br />
      user_name: (メールのユーザ名)<br />
      password: (メールのパスワード)<br />

※設定例: Redmine Installation Guide >> Email Configuration
※注意点:3箇所(「email_delivery:」「delivery_method: :smtp」「address: “(SMTPサーバのアドレス)”」)でインデントを深くする必要あり。

 

redmineの諸設定を行います。最初に所有者変更し、それを崩さないよう、www-data(ubuntuのapacheデフォルトユーザ)のsudoで実行します。

<br />
cd /var/www/redmine/</p>
<p># 一括で所有者・グループ変更<br />
find | sudo xargs chown www-data:www-data</p>
<p># redmineが使うgemをbundleでインストール<br />
sudo -u www-data bundle install -j$(nproc) --without development test postgresql sqlite --path vendor/bundle</p>
<p># DBテーブルの作成<br />
sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate</p>
<p># 初期データのインサート<br />
sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data</p>
<p># Rails本番環境を、document root にリンク<br />
sudo ln -s /var/www/redmine/public /var/www/html/(redmineのパス名)<br />

 

apacheの設定ファイルに、下記内容を追記します。

<br />
# sudo emacs /etc/apache2/sites-enabled/000-default.conf</p>
<p>&lt;VirtualHost *:80&gt;<br />
#(前略)<br />
	ServerAdmin (管理者のメールアドレス)<br />
	DocumentRoot /var/www/html<br />
	RackBaseURI /(redmineのパス名)<br />
	&lt;Directory /var/www/html/redmine&gt;<br />
		AllowOverride None<br />
		Options None<br />
	&lt;/Directory&gt;<br />
#(後略)<br />
&lt;/VirtualHost&gt;<br />

記載内容に問題が無いか確認し、問題なければapacheを再起動します。

<br />
#確認<br />
sudo apache2ctl configtest </p>
<p>#再起動<br />
sudo service apache2 start<br />

 

検索エンジン等がインデックスしないように、basic認証をかけます。

<br />
# sudo -u www-data emacs /var/www/redmine/app/controllers/application_controller.rb</p>
<p>class ApplicationController &lt; ActionController::Base<br />
  before_filter :basic<br />
 <br />
#(中略)</p>
<p>  private<br />
  def basic<br />
    authenticate_or_request_with_http_basic do |user, pass|<br />
      user == '(任意のユーザ名)' &amp;&amp; pass == '(任意のパスワード)'<br />
    end<br />
  end<br />
end<br />

 

<br />
#再起動<br />
sudo service apache2 start<br />

 

以上でインストール作業終了です。WebブラウザでサーバのIPアドレスを入力すると、basic認証のポップアップが出てくると思います。先に指定したユーザ名、パスワードを入力してください。下記のような画面表示になればインストール成功です。

 

 

Safariで見ると「安全ではありません」とアドレス欄に表示されていますが、redmine自体は正しくインストールされています。

 

このままだと、公衆Wifi等でデータが丸見えなので、次回は無料でSSLをかける記事を書きます。

 
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です