Bitnami版redmineの運用管理

# Bitnami版redmintの運用管理

[Bitnami](https://bitnami.com/) は各種オープンソースをパッケージ化して配布したり、クラウドにディプロイするサービスを提供している会社です。
[Bitnami版Redmin](https://bitnami.com/stack/redmine) のインストールと運用管理についてまとめた備忘録です。

## ダウンロード
https://bitnami.com/stack/redmine の *LOCAL INSTALL* から
プラットフォームに応じたインストーラをダウンロードします。

この例では Linux x86_64版について説明してゆくことにします。

```
$ wget https://bitnami.com/redirect/to/146294/bitnami-redmine-3.3.3-0-linux-x64-installer.run
$ chmod 700 bitnami-redmine-3.3.3-0-linux-x64-installer.run
```

## インストール

インストーラを実行します。

X Windows Systemが使える環境ではGUIでインストーラが起動し、
そうでない場合はテキストベースで会話型にインストールできますが、
ここではバッチ処理でインストールするようにします。

まず、オプションを確認しておきます。

```
$ ./bitnami-redmine-3.3.3-0-linux-x64-installer.run --help
Bitnami Redmine Stack 3.3.3-0
Usage:

 --help                                                Display the list of valid options

 --version                                             Display product information

 --unattendedmodeui <unattendedmodeui>                 Unattended Mode UI
                                                       Default: none
                                                       Allowed: none minimal minimalWithDialogs

 --optionfile <optionfile>                             Installation option file
                                                       Default:

 --debuglevel <debuglevel>                             Debug information level of verbosity
                                                       Default: 2
                                                       Allowed: 0 1 2 3 4

 --mode <mode>                                         Installation mode

                                                       Allowed: qt gtk xwindow text unattended

 --debugtrace <debugtrace>                             Debug filename
                                                       Default:

 --enable-components <enable-components>               Comma-separated list of components
                                                       Default: subversion,phpmyadmin,redmine,git
                                                       Allowed: subversion phpmyadmin git

 --disable-components <disable-components>             Comma-separated list of components
                                                       Default:
                                                       Allowed: subversion phpmyadmin git

 --installer-language <installer-language>             Language selection
                                                       Default: en
                                                       Allowed: en es ja ko zh_CN he de ro ru

 --prefix <prefix>                                     Select a folder
                                                       Default:

 --base_user_name <base_user_name>                     Your real name
                                                       Default: User Name

 --base_mail <base_mail>                               Email Address
                                                       Default: user@example.com

 --base_user <base_user>                               Login
                                                       Default: user

 --base_password <base_password>                       Password
                                                       Default:

 --apache_server_port <apache_server_port>             Apache Web Server Port
                                                       Default: 80 or 8080 - depending on your permissions
 --apache_server_ssl_port <apache_server_ssl_port>     SSL Port
                                                       Default: 443 or 8443 - depending on your permissions

 --web_server_domain <web_server_domain>               Web Server domain
                                                       Default: 127.0.0.1

 --mysql_port <mysql_port>                             MySQL Server port
                                                       Default: 3306

 --mysql_password <mysql_password>                     MySQL Server root password
                                                       Default:

 --mysql_database_name <mysql_database_name>           DB Name
                                                       Default: mysql_db

 --mysql_database_username <mysql_database_username>   DB User Name
                                                       Default: mysql_user

 --mysql_database_password <mysql_database_password>   DB User Password
                                                       Default:

 --subversion_port <subversion_port>                   Subversion Server port
                                                       Default: 3690

 --phpmyadmin_password <phpmyadmin_password>
                                                       Default:

 --redmine_language <redmine_language>
                                                       Default: en

 --smtp_email_provider <smtp_email_provider>           Default email provider:
                                                       Default: custom
                                                       Allowed: gmail custom

 --smtp_enable <smtp_enable>                           Do you want to configure mail support?
                                                       Default: 0

 --smtp_user <smtp_user>                               Username
                                                       Default:

 --smtp_password <smtp_password>                       Password
                                                       Default:

 --smtp_host <smtp_host>                               SMTP Host
                                                       Default:

 --smtp_port <smtp_port>                               SMTP Port
                                                       Default: 587

 --smtp_protocol <smtp_protocol>                       Secure connection
                                                       Default: tls
                                                       Allowed: none ssl tls

 --launch_cloud <launch_cloud>                         Launch redmine in the cloud with Bitnami
                                                       Default: 1

```

次のようにインストールします。

```
# ./bitnami-redmine-3.3.3-0-linux-x64-installer.run \
--unattendedmodeui none  \
--mode unattended \
--enable-components git \
--disable-components subversion,phpmyadmin \
--prefix /opt/redmine \
--base_user_name "Goichi Iisaka" \
--base_mail iisaka51@example.com \
--base_user go.iisaka \
--base_password xxxxxxxx \
--mysql_password yyyyy \
--smtp_email_provider gmail
```

3分程度でインストールが終わり、
httpd と mysql が起動した状態になって直ぐに redmine が使える
ようになります。

実行したユーザが root では httpd が 80 と 443 、
一般ユーザでは 8080 と 8443 で立ち上がっています。

## redmine の起動/停止/再起動

Bitnami で共通の操作になりますが、
インストールしたディレクトリにある ctlscript.sh で起動/停止ができます。

manager-linux-x64.run はGUIで操作するツールになります。


```
# ls /opt/redmine/
apache2        ctlscript.sh           mysql           README.txt  uninstall.dat
apps           git                    perl            ruby        use_redmine
changelog.txt  img                    php             scripts
common         licenses               postgresql      sqlite
config         manager-linux-x64.run  properties.ini  uninstall
```

```
# ./ctlscript.sh --help
usage: ./ctlscript.sh help
       ./ctlscript.sh (start|stop|restart|status)
       ./ctlscript.sh (start|stop|restart|status) mysql
       ./ctlscript.sh (start|stop|restart|status) apache

help       - this screen
start      - start the service(s)
stop       - stop  the service(s)
restart    - restart or start the service(s)
status     - show the status of the service(s)
```

サービスの確認

```
# ./ctlscript.sh status
apache already running
mysql already running
```

redmine の起動

```
# ./ctlscript.sh start
```

redmine の停止

```
# ./ctlscript.sh stop
```

redmine の再起動 (httpd だけの再起動)

```
# ./ctlscript.sh restart apache
```

### ディレクトリツリー
Bitnami版の redmine のディレクトリツリーは次のようになっています。
この例では /opt/redmine 以下にインストールしていますが、
適宜インストールしたディレクトリパスに読み替えてください。

 * /opt/redmine/apache/conf   - httpd の設定ファイル
 * /opt/redmine/apps/redmine/conf - redmine の URLパスの定義
 * /opt/redmine/apps/redmine/htdocs - redmine のトップディレクトリ

デフォルトでは http://localhost/redmine になりますが、
これを http://localhost/support に変更するような場合は、
PREFIX/apps/redmine/conf 以下の httpd-prefix.conf を修正します。

修正前:

```
Alias /redmine/ "/opt/redmine/apps/redmine/htdocs/public/"
Alias /redmine "/opt/redmine/apps/redmine/htdocs/public"
    
Include "/opt/redmine/apps/redmine/conf/httpd-app.conf"

```

修正例:

```
Alias /support/ "/opt/redmine/apps/redmine/htdocs/public/"
Alias /support "/opt/redmine/apps/redmine/htdocs/public"
    
Include "/opt/redmine/apps/redmine/conf/httpd-app.conf"
```

このあと httpd を再起動して反映させます。

```
# /opt/redmine/ctlscript.sh restart apache
```

## redmine のプラグインを追加する

はじめに ruby などが使えるようにPATHを設定しておきます。

```
# source /opt/redmine/use_redmine
```

redmine/plugins 以下にプラグインを配置します。

```
# cd /opt/redmine/apps/redmine/htdocs/plugin
# git clone https://github.com/suer/redmine_absolute_dates.git
# chown -R root.daemon redmine_absolute_dates
```

ファイルのオーナーはインストールしたシステムやユーザによって異なります。

これをマイグレートします。

```
# cd /opt/redmine/apps/redmine/htdocs
# bundle exec rake redmine:plugins:migrate  RAILS_ENV=production
```

## インストールディレクトリの変更
Bitnami版redmine はインストールディレクトリ以下にデータベースが保持されています。
ディスクスペースなどの理由でインストールディレクトリを変更する場合は、
シンボリックリンクで同じパスになるようにするのがもっとも簡単です。
理由は、インストールディレクトリのパスがいろいろのところに埋め込まれているためです。

/opt/redmine を /var/redmine に変更する場合

```
# mv /opt/redmine /var/remine
# ln -s /var/remine /opt/redmine
```