AWS + Redmine 5.0.0 AMIで環境構築（2）

## はじめに
前回、環境を作ってログインができるところまで確認ができたので、テーマとプラグインのインストールをやっていこうと思います。まだ、ver5.0.0がリリースされて日が浅いので、プラグインが対応できてないものもありそうなのですが、うまくいくもので試したいと思います。

## 環境
こちらは[前の記事](https://qiita.com/kuromame_09/items/1b1cd9a955dd4382f38b)を参照してください。

## テーマのインストール

まずはテーマを追加していきたいと思います。特にサイドバーを非表示にするプラグインを古いバージョンのRedmineでは使っていたんですが、
Redmine JPで公開されているテーマに含まれているのでこちらを使いたいと思います。

https://redmine.jp/glossary/t/theme/get-themes/

### bleuclairのテーマをインストール

テーマのインストールディレクトリで次のコマンドを実行します。※ver.5.0.0はredmine4.2のブランチでOKです。
```sh
bitnami@ip-xxx-xx-xx-xx:~$ cd /opt/bitnami/redmine/public/themes/$ git clone -b redmine4.2  https://github.com/farend/redmine_theme_farend_bleuclair.git public/themes/bleuclair
```

あっという間にインストールできました。これで終わりです。

再起動も不要で、管理の「表示」の設定で追加したテーマが選択できるようになっているはずです。
※これで表示されなければ、再起動してみるのもいいかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587208/56a406c1-1a08-7ade-0075-be4600daf809.png)


## プラグインのインストール

次にプラグインをインストールしていきます。便利なものがたくさんあるので、ぜひ活用していきましょう。
また、対象のプラグインがバージョンに対応しているかは確認しましょう。インストールしても動かなかったり、予想外の動きをする可能性があるので注意が必要です。

### checklistsのプラグイン

チケットにToDoリストのようにチェックボックスを設定することができるプラグインです。
チケットのクローズ条件が明確になるのは、運用上よいと思います。今回は無償版をインストールしていきたいと思います。

https://www.redmineup.com/pages/plugins/checklists

メールアドレスを入力したらダウンロードリンク付きのメールが届きますので、そこからzipファイルをダウンロードしましょう。
リンクにアクセスすれば勝手にダウンロードが始まります。

ダウンロードしたzipファイルをインストールフォルダに配置して解凍をします。
解凍できたことを確認したら、zipファイルは削除してしまいましょう。

```console
bitnami@ip-xxx-xx-xx-xx:/opt/bitnami/redmine/plugins$ unzip redmine_checklists-3_1_21-light.zip
bitnami@ip-xxx-xx-xx-xx:/opt/bitnami/redmine/plugins$ rm redmine_checklists-3_1_21-light.zip
```

次はbundle installをしていきます。

```sh
bitnami@ip-xxx-xx-xx-xx:/opt/bitnami/redmine/plugins$ cd ../
bitnami@ip-xxx-xx-xx-xx:/opt/bitnami/redmine$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies.........
:
bitnami@ip-xxx-xx-xx-xx:/opt/bitnami/redmine$ sudo bundle exec rake redmine:plugins NAME=redmine_checklists RAILS_ENV=production --trace
** Invoke redmine:plugins (first_time)
** Execute redmine:plugins
** Invoke redmine:plugins:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute redmine:plugins:migrate
== 1 CreateChecklists: migrating ==============================================
-- create_table(:checklists, {:options=>"ENGINE=InnoDB", :id=>:integer})
   -> 0.0114s
== 1 CreateChecklists: migrated (0.0127s) =====================================

== 2 AddTimeStampsToChecklists: migrating =====================================
-- add_column(:checklists, :created_at, :timestamp)
   -> 0.0089s
-- add_column(:checklists, :updated_at, :timestamp)
   -> 0.0092s
== 2 AddTimeStampsToChecklists: migrated (0.0186s) ============================

== 3 CreateChecklistTemplateCategory: migrating ===============================
-- create_table(:checklist_template_categories, {:options=>"ENGINE=InnoDB", :id=>:integer})
   -> 0.0088s
== 3 CreateChecklistTemplateCategory: migrated (0.0091s) ======================

== 4 CreateChecklistTemplates: migrating ======================================
-- create_table(:checklist_templates, {:options=>"ENGINE=InnoDB", :id=>:integer})
   -> 0.0125s
== 4 CreateChecklistTemplates: migrated (0.0129s) =============================

== 5 ModifyChecklistSubjectLength: migrating ==================================
-- change_column(:checklists, :subject, :string, {:limit=>512})
   -> 0.0145s
== 5 ModifyChecklistSubjectLength: migrated (0.0148s) =========================

== 6 AddFieldsToChecklistTemplate: migrating ==================================
-- add_column(:checklist_templates, :is_default, :boolean, {:default=>false})
   -> 0.0111s
-- add_column(:checklist_templates, :tracker_id, :integer)
   -> 0.0111s
-- add_index(:checklist_templates, :tracker_id)
   -> 0.0136s
== 6 AddFieldsToChecklistTemplate: migrated (0.0364s) =========================

== 7 AddIsSectionToChecklists: migrating ======================================
-- add_column(:checklists, :is_section, :boolean, {:default=>false})
   -> 0.0104s
== 7 AddIsSectionToChecklists: migrated (0.0107s) =============================

** Invoke db:schema:dump (first_time)
** Invoke db:load_config (first_time)
** Invoke environment
** Execute db:load_config
** Execute db:schema:dump
** Invoke redmine:plugins:assets (first_time)
** Invoke environment
** Execute redmine:plugins:assets
```

一度、sudoなしでbundle execのコマンドを実行したんですが、下記のエラーが出たので、一度やり直しました。

```sh
rake aborted!
Errno::EACCES: Permission denied @ rb_sysopen - /opt/bitnami/redmine/db/schema.rb
/opt/bitnami/redmine/lib/tasks/redmine.rake:158:in `block (3 levels) in <top (required)>'
/opt/bitnami/redmine/lib/tasks/redmine.rake:73:in `block (2 levels) in <top (required)>'
/opt/bitnami/redmine/bin/bundle:113:in `load'
/opt/bitnami/redmine/bin/bundle:113:in `<main>'
Tasks: TOP => db:schema:dump
(See full trace by running task with --trace)
```

最後に再起動をしてブラウザからインストールができているかを確認します。
```sh
bitnami@ip-xxx-xx-xx-xx:/opt/bitnami/redmine$ sudo /opt/bitnami/ctlscript.sh restart
Restarting services..
bitnami@ip-xxx-xx-xx-xx:/opt/bitnami/redmine$ 
```

チェックリストが作成できていますね。（※管理画面のプラグイン一覧でも追加されているのは確認してます。もちろん）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587208/9c971df3-8cf5-5420-9884-98eab8796855.png)

標準機能で説明にチェックリストを設定できるようになったそうなんですが、編集が必要な手間があるようです、。
個人的には、チェックボックスのチェックの付け外しを直感的に行える点でプラグインを入れる価値があると思います。


## おわりに

テーマやプラグインは、前もってきちんとバージョンに対応しているかどうかを確認すれば、躓くことなくインストールできるのではないかと思います。

標準機能ではまだリリースされていない便利な機能も多く、たくさんの記事があるので、ぜひ活用していきましょう。