(104) Intel NUCに Redmineを入れる。

投稿者: | 2018年11月6日

1. やりたいこと

前回の投稿 (103) Intel NUCを Subversionサーバーにする。 【採用!】 では、新品購入した Intel NUC を Subversion専用物理サーバーとして使えるようにした。

だが Intel NUCはなかなかの高性能マシンで Subversion専用とするのはもったいない。
マシン性能的には 10年前の第一線のパソコンぐらいの力がある。

そこで…
Intel NUCに Redmineを入れて使うことにした。

2. やってみる

インストール手順はこちらに詳しく書かれている。
http://redmine.jp/install/

まずは、ここに書かれている通りにやってみる。

(1) ja_JP.UTF-8ロケールの作成

sudo locale-gen ja_JP.UTF-8

(2) パッケージのインストール

1) Ubuntuお約束のアップデート&アップグレードを実行する。

main, restrictedに加えて universe repositoryも使う。

sudo add-apt-repository universe
sudo apt update
sudo apt upgrade

2) Ruby関連パッケージをインストールする。

sudo apt install build-essential zlib1g-dev
sudo apt install libssl-dev libreadline-dev
sudo apt install libyaml-dev libcurl4-openssl-dev libffi-dev
sudo apt install ruby ruby-dev
sudo gem install bundler --no-rdoc --no-ri

3) PostgreSQL関連パッケージをインストールする。

sudo apt install postgresql libpq-dev
sudo systemctl enable postgresql

4) Apache2関連パッケージをインストールする。

sudo apt install apache2 apache2-dev libapr1-dev libaprutil1-dev

5) ImageMagick関連パッケージをインストールする。

sudo apt install imagemagick libmagick++-dev fonts-takao-pgothic

6) PostgreSQLの初期設定

Redmine用ユーザーを作成する。
複数の Redmineを併用したいので、ここでは redmine_bbとする。
後で redmine_cc, redmine_dd とかを増殖させるから。

sudo -u postgres createuser -P redmine_bb

Redmine用 DBを作成する。

sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine_bb  -T template0 redmine_bb

DBへのアクセス許可設定をする。
※下記の 10 は PostgreSQLのバージョンで変わる。

sudo vi /etc/postgresql/10/main/pg_hba.conf

以下を書き足す。

host    redmine_bb      redmine_bb      127.0.0.1/32            md5
host    redmine_bb      redmine_bb      ::1/128                 md5

PostgreSQLを再起動する。

sudo service postgresql restart
sudo service postgresql status

7) Redmineをインストールする。

最新ソースコードを公式 SVNディレクトリから取得する。
2018年11月6日時点の最新版 Redmine ver.3.4 の安定版を取得した。

sudo mkdir -p /var/lib/redmine/redmine_bb
sudo chown -R www-data:www-data /var/lib/redmine
sudo -u www-data svn co http://svn.redmine.org/redmine/branches/3.4-stable /var/lib/redmine/redmine_bb

DB接続情報を書く。

cd /var/lib/redmine/redmine_bb/config
sudo cp database.yml.example database.yml
sudo vi database.yml

開いたファイルには以下を書く。

production:
  adapter: postgresql
  database: redmine_bb
  host: localhost
  username: redmine_bb
  password: "xxxxxxxxxx"    # ← 上記6)でユーザー作成時に入力したパスワードを書く。
  encoding: utf8

各種設定情報を書く。
※今回は特にカスタマイズしないのでサンプルをそのまま使用する。

cd /var/lib/redmine/redmine_bb/config
sudo cp configuration.yml.example configuration.yml
sudo vi configuration.yml

bundler (Rubyのパッケージ管理ツール)を使用し、Redmineが依存する gemパッケージをインストールする。

sudo chown -R www-data:www-data /var/lib/redmine/redmine_bb
cd /var/lib/redmine/redmine_bb
sudo -u www-data bundle install --without development test --path vendor/bundle

8) Redmineを初期化する。

cd /var/lib/redmine/redmine_bb
sudo -u www-data bundle exec rake generate_secret_token

データベースにテーブルを作成する。

sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate

デフォルトデータを登録する。
後で Redmineにログインしてカスタマイズできる。

sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

9) Passengerをインストールする。

この辺になると「言われるがまま」にやってる状態だ…
何をしているのか?後で調べよう。

cd /var/lib/redmine/redmine_bb
sudo gem install passenger -v 5.1.12 --no-rdoc --no-ri
sudo passenger-install-apache2-module --auto --languages ruby

以下のコマンドで表示された内容は、下記10)で使用するのでコピペしておくこと。

passenger-install-apache2-module --snippet

 ↓ こんな感じで出力される。

LoadModule passenger_module /var/lib/gems/2.5.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /var/lib/gems/2.5.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby2.5
</IfModule>

10) Apache2の Redmine用設定をする。

sudo vi /etc/apache2/conf-available/redmine.conf 

作成したファイルに以下を書く。

<Directory "/var/lib/redmine/redmine_bb/public">
  Require all granted
</Directory>

LoadModule passenger_module /var/lib/gems/2.5.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /var/lib/gems/2.5.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby2.5
</IfModule>

Alias /redmine_bb /var/lib/redmine/redmine_bb/public
<Location /redmine_bb>
  PassengerBaseURI /redmine_bb
  PassengerAppRoot /var/lib/redmine/redmine_bb
</Location>

Apache2の設定を反映させる。

sudo a2enconf redmine
apache2ctl configtest
sudo systemctl restart apache2
sudo systemctl status apache2

(3) いざ Redmineを開いてみる!

WEBブラウザで 192.168.1.2/redmine_bb にアクセスしてみる。

インストール直後の初期設定についてはこちらを参照のこと。
http://redmine.jp/tech_note/first-step/admin/

まずは初期ユーザー(管理者)でログインする。
admin admin で入れる。

パスワードを変えろと怒られたので変える。

その後、
・メンバーの新規作成
・プロジェクトの新規作成
・メンバーでログイン
・チケットの新規作成
まで出来ることを確認した。

4. 応用

(1) 既存のバックアップデータをリストアする。

以下の2ファイルがバックアップされていたとする。
files.zip
postgres.sql

1) files.zipを filesディレクトリに展開する。

REDMINE=/var/lib/redmine/redmine_bb
unzip files.zip
sudo rm -rf ${REDMINE}/files
sudo cp -r ./files $REDMINE
sudo chown -R www-data:www-data $REDMINE

2) DBをリストアする。

まず一旦 DBを削除する。

DB_NAME=postgres
DBUSER_NAME=redmine_bb
psql -h localhost -U ${DBUSER_NAME} -d ${DB_NAME}

SQLコマンドを打って DBを削除する。

drop database redmine_bb;

バックアップしてあった DBデータをリストアする。

DB_NAME=redmine_bb
sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O $DB_NAME -T template0 $DB_NAME
psql -h localhost -U ${DBUSER_NAME} -d ${DB_NAME} < ./postgres.sql

cd /var/lib/redmine/${DB_NAME}
sudo -u www-data REDMINE_LANG=ja bundle exec rake db:migrate RAILS_ENV=production
sudo chown -R www-data:www-data $REDMINE

(2) バックアップを取る。

こちらの過去記事を参照のこと。
(79) redmineをバックアップする。

3. 所感

うまく行かなくて右往左往して疲れたので、所感はまた後日書こう…
でも忘れちゃうんだろうな。

少しだけメモ書きしておこう。
Intel NUCの Redmineは快適に動作します!
部屋の片隅に置ける省電力且つ高性能なプチサーバーマシンです!
Subversionサーバーと併用して、しばらくこの環境を使います!

まだまだマシン性能に余裕があるので、他の用途でも使いたい…
今まで DELL T100 サーバーにやらせていた仕事を全部 Intel NUC に移そうかと思っている。

ちなみに我が家の Linuxマシンは今 4台ある。
・親分: HP Z820 E5-2687W V2 Dual 64GB (CentOS7) 我が家の主戦機、VirtualBoxで動く仮想マシンを 5台内包
・副将: DELL T5500 X5690 Dual 48GB (CentOS7) 高性能GPUを搭載し機械学習専用機としてチューニング
・新人: Intel NUC J5005 Single 8GB(Ubuntu18) Subversion, Redmine専用機としてデビュー
・長老: DELL T100 X3330 Single 8GB (CentOS7) 2008年からの相棒も NUCの登場でいよいよ引退か…

PASSMARKのスコアでは少しだけ長老の方が新人よりも力が強いみたいだが…
でもメインメモリのバス速度が 800MHz と 2400MHz とでは全然違うよな。

以下の4点を購入して作りました。

   


コメントを残す

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