目的
– OS上で起動するRedmineにプラグインLycheeを適用してガントチャートなどの機能を使えるようにする
環境
– redmineホスト1(Ubuntu20.04) : redmineルートディレクトリ:/var/rails/redmine)
– redmineホスト2(Ubuntu22.04) : redmineルートディレクトリ:/var/lib/redmine)
– gitlab : 13.10.2-ee
– Redmine version : 5.0.6.stable
– Ruby version : 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
– Rails version : 6.1.7.6
参考
– Redmine: https://blog.redmine.jp/articles/4_2/install/ubuntu/
– Lychee-Redmine: https://support.lychee-redmine.jp/%e8%a9%95%e4%be%a1%e7%89%88%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/
– Postgres: https://zenn.dev/fjnkt98/articles/1334f974259255
– Ruby: https://ubunlog.com/ja/ruby-diferentes-formas-de-instalarlo-en-ubuntu-20-04/
Postgresのインストール
aptリポジトリ更新
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
apt-key追加
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
postgresqlのインストール
$ sudo apt update
$ sudo apt -y install postgresql-15
$ dpkg -l | grep postgres
ii postgresql-15 15.5-1.pgdg20.04+1 amd64 The World's Most Advanced Open Source Relational Database
ii postgresql-client-15 15.5-1.pgdg20.04+1 amd64 front-end programs for PostgreSQL 15
ii postgresql-client-common 256.pgdg20.04+1 all manager for multiple PostgreSQL client versions
ii postgresql-common 256.pgdg20.04+1 all PostgreSQL database-cluster manager
認証方式(Peer or MD5)
DBへの接続認証方式として、本手順ではデフォルトのPeer認証、またはMD5認証で接続する
後述するRedmineのインストール手順にて、以下を作成後にそれぞれの認証方式でDBに接続できる
DB名:redmine
DBオーナー:redmine
Peer認証を使う場合
OSユーザにスイッチすれば、同じ名前のDBに、DBオーナーのパスワード認証無しで接続できるのがメリット
OSユーザ「redmine」を作成しておく
$ sudo adduser redmine
MD5認証を使う場合
DB名と同じ名前のOSユーザを作成しなくても、DBオーナーに対するパスワード認証でDBに接続できるのがメリット
pg_hba.confを編集する
$ sudo vi /etc/postgresql/15/main/pg_hba.conf
--------
# "local" is for Unix domain socket connections only
local all all md5 ★peerからmd5に変更
--------
$ systemctl restart postgresql
Rubyのインストール
Ubuntu20.04とUbuntu22.04でruby-fillをインストールした際のデフォルトのrubyのバージョンが異なる。
Ubuntu20.04 -> ruby2.7.0
Ubuntu22.04 -> ruby3.0.2
ruby2.7.0の場合、redmineのbundle installでエラーになるため、別途rvmをインストールして、使用するrubyバージョンを上げる必要がある
ruby-fullをインストールする
$ sudo apt update
$ sudo apt install ruby-full
$ ruby -v
★★★ Ubuntu20.04の場合
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
★★★ Ubuntu22.04の場合
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233)[x86_64-linux-gnu]
RVMのインストール(Ubuntu20.04のみで実行)
rubyのデフォルトバージョンを上げる
defaultのバージョン確認
$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
開発ツール、ライブラリのインストール
$ sudo apt update
$ sudo apt install curl g++ gcc autoconf automake bison libc6-dev libffi-dev libgdbm-dev libncurses5-dev libsqlite3-dev libtool libyaml-dev make pkg-config sqlite3 zlib1g-dev libgmp-dev libreadline-dev libssl-dev
RVMの公開鍵を取得
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
RVMのインストール
$ curl -sSL https://get.rvm.io | bash -s stable
RVMを実行
$ source ~/.rvm/scripts/rvm
$ which rvm
/home/admin/.rvm/bin/rvm
↑↑↑にインストールされる
ruby 3.0.0をインストール
$ rvm install 3.0.0
ruby 3.0.0をデフォルトのバージョンに設定する
$ rvm use 3.0.0 --default
Using /home/testadmin/.rvm/gems/ruby-3.0.0
変更後のバージョン確認
$ ruby -v
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
Redmineのダウンロードとインストール
Redmineのダウンロード
Redmineパッケージをダウンロード
$ curl -O https://www.redmine.org/releases/redmine-5.0.6.tar.gz
$ tar zxvf redmine-5.0.6.tar.gz
$ sudo mv redmine-5.0.6 /var/lib/redmine
configの更新
$ pwd
/var/lib/redmine
$ cd config/
$ vi database.yml
------
# PostgreSQL configuration example
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "admin"
encoding: utf8
------
$ vi configuration.yml
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "SMTPサーバのIP"
port: 587
domain: "SMTPサーバのDomain" ★FQDNを指定(https://blog.redmine.jp/articles/5_0/install/ubuntu/)
authentication: :plain # 認証方式によって:loginや:plainなどを指定します
user_name: "admin" # redmineはNG。saslでredmineユーザ作成したが、「メール通知>テストメール送付」に失敗する
password: "admin"
enable_starttls_auto: no # STARTTLSを使用する場合にはtrueに設定します
bundlerのインストール
システム全体に対してbundlerジェムをインストールする
$ gem install bundler
Fetching bundler-2.5.4.gem
Successfully installed bundler-2.5.4
Parsing documentation for bundler-2.5.4
Installing ri documentation for bundler-2.5.4
Done installing documentation for bundler after 0 seconds
1 gem installed
※ sudoをつけると、一般ユーザで設定したruby3.0.0ではなく、rootユーザの環境(ruby2.7)が適用されてしまうので失敗する
Gemパッケージのインストール
Gemfileに本番環境で起動するpumaを追加する
※ pumaがない場合、本番環境でのrailsサーバ起動に失敗する
プロジェクト内のGemfileに記載された依存関係(Gem)をインストールする
$ vi Gemfile
------
group :production do
gem 'puma', (Gem.ruby_version < Gem::Version.new('2.7') ? '< 6.0.0' : '>= 0')
end
------
$ bundle install --without development test
[DEPRECATED] The --without flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use bundle config set without 'development test', and stop using this flag
Don't run Bundler as root. Installing your bundle as root will break this application for all non-root users on this machine.
Please configure your config/database.yml first
Please configure your config/database.yml first
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Fetching rake 13.1.0
Installing rake 13.1.0
Fetching concurrent-ruby 1.2.
rvmを使用している場合のbundleの場所は/var/rails/redmine/bin/bundleではないので注意
$ which bundle
/home/admin/.rvm/bin/bundle
Redmineの初期設定
セッション改ざん防止用秘密鍵を生成する
$ pwd
/var/lib/redmine
$ bundle exec rake generate_secret_token
$ cat ./config/secret_token.rb
:
RedmineApp::Application.config.secret_key_base = '1c26bbbd0b90216c30c6f5fef8d4cd07bf1c0080e39296a63300179239296f95ad86ee'
データベースのテーブル作成(マイグレーション)
正常に実行されること
$ bundle exec rake db:migrate RAILS_ENV=production
:
== 20220224194639 DeleteOrphanedTimeEntryActivities: migrating ================
== 20220224194639 DeleteOrphanedTimeEntryActivities: migrated (0.0234s) =======
テーブル作成確認
$ psql -U redmine -d redmine
redmine=> \dt
railsサーバ起動
$ bundle exec rails server -e production -d
=> Booting Puma
=> Rails 6.1.7.6 application starting in production
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 6.4.2 (ruby 3.0.2-p107) ("The Eagle of Durango")
* Min threads: 0
* Max threads: 5
* Environment: production
* PID: 125335
* Listening on http://0.0.0.0:3000
Use Ctrl-C to stop
Lychee redmineのダンロード、インストール
Lychee redmineのダウンロード
ダウンロード対象は以下
https://inquiry.agileware.jp/trial_license?confirmation_token=EQ2wLVLzHdkYxJyFAxfjn8eN
Linux 64bit版
パッケージを解凍して、以下のようにフォルダ名を変更する
$ pwd
/tmp
$ ls -l
-rw-rw-r-- 1 admin admin 57281293 12月 7 10:43 lychee_redmine_linux_amd64.zip
$ unzip lychee_redmine_linux_amd64.zip
$ cd lychee_redmine_linux_amd64/
$ sudo mv LycheeRedmine/ plugins
依存ライブラリをインストール
依存ライブラリをインストール
$ pwd
/var/lib/redmine
$ apt-get update && apt-get install -y libjpeg62 libfontconfig-dev
Lychee redmine 〜ライセンス管理プラグイン(alm)のインストール、マイグレーション
ローダーとalmプラグインをredmineルート配下にコピーする
$ cp -R /tmp/lychee_redmine_linux_amd64/rgloader/ /var/lib/redmine/
$ cp -R /tmp/lychee_redmine_linux_amd64/plugins/alm /var/lib/redmine/plugins/
Gemパッケージ(alm)のインストール
$ bundle install --without development test
Bundle complete! 44 Gemfile dependencies, 75 gems now installed.
Gems in the groups 'development' and 'test' were not installed.
Use bundle info [gemname] to see where a bundled gem is installed.
almプラグインのマイグレーション(テーブル作成)
$ RAILS_ENV=production bundle exec rake redmine:plugins
:
I, [2023-12-27T02:50:49.023988 #379] INFO -- : Migrating to SettingToRegistrations (2)
== 2 SettingToRegistrations: migrating ========================================
== 2 SettingToRegistrations: migrated (0.0264s) ===============================
Redmineインスタンスの再起動
$ bundle exec rails server -e production -d
=> Booting Puma
=> Rails 6.1.7.6 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running. Check /usr/src/redmine/tmp/pids/server.pid.
Exiting
GUIでの正常性確認
以下のURLにアクセスする
adminユーザでログインする
![1_LoginPage.png](/attachment/6576cef17a8991006b88280f)
初期パスワードを変更する
![2_PasswordChangePage.png](/attachment/6576cf277a8991006b882811)
プラグインリストの確認
almプラグインがインストールされていること
![3_Plugin-List](/attachment/6576cfc87a8991006b882812)
Lychee redmine 〜alm以外のLycheeプラグインをインストール、マイグレーション
alm以外のLycheeプラグインをredmineルートのpluginsフォルダにコピーする
$ pwd
/tmp/lychee_redmine_linux_amd64/plugins/
$ rm -fr alm
$ cp -R /tmp/lychee_redmine_linux_amd64/LycheeRedmine/* /var/lib/redmine/plugins/
Gemパッケージ(alm以外のLycheeプラグイン)のインストール
$ bundle install --without development test
You have installed oauth2 version 2.0.9, congratulations!
– alm以外のLycheeプラグインのマイグレーション(テーブル作成)
$ RAILS_ENV=production bundle exec rake redmine:plugins
:
== 1 CreateRegistrations: migrated (0.2163s) ==================================
== 2 SettingToRegistrations: migrating ========================================
== 2 SettingToRegistrations: migrated (0.0240s) ===============================
Redmineインスタンスの再起動
$ bundle exec rails server -e production -d
=> Booting Puma
=> Rails 6.1.7.6 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running. Check /usr/src/redmine/tmp/pids/server.pid.
Exiting
GUIでの正常性確認
– 以下のURLにアクセスする
– http://redmine:3000
– プラグインリストの確認
– Lycheeプラグインがインストールされていること
– ![11_plugin_ALL.png](/attachment/65963a257a8991006b8833d3)
postgresqlのバックアップおよびリストア
postgresqlのバックアップ
$ su - postgres
$ pg_dump -U redmine -h localhost -Fc --file=redmine_$(date +%Y%m%d%H%M%S).pg_dump
$ ls -ltr
total 1668
-rw-r--r-- 1 root root 1632842 Dec 20 08:28 redmine_20231220082810.pg_dump
postgresqlのリストア
$ su - postgres
$
$ pg_restore -U redmine -d redmine redmine_20231227042813.pg_dump
– Ubuntu20.04で取得したバックアップをUbuntu22.04へリストア不可。おそらくバージョン差異が原因
$ pwd
/var/lib/postgresql
$
$ pg_restore -d redmine redmine_20240115111338.pg_dump
pg_restore: error: unsupported version (1.15) in file header
– GUIでの正常性確認
– 各プロジェクトがリストアされていること
– ![12_リストア後.png](/attachment/65963bf37a8991006b8833ef)