EC2

【Amazon Linux 2】Redmine4.0.1をRedmine4.1.1にバージョンアップ

redmine

Amazon Linux 2で動作中のRedmine4.0.1を4.1.1にバージョンアップします。

稼働中のAmazon Linux 2をバージョンアップするのはリスクが高いのでわたしは以下の方法で行います。

  1. スナップショット取得
  2. AMI作成
  3. AMIでインスタンス起動
  4. 起動したインスタンスでRedmineをバージョンアップ
  5. DNSでサーバを切り替え
簡単にOSのクローンが作れるところがAWSの特徴の一つ

この記事では4についてのみ説明します。

 

Redmine4.0.1の情報

Redmine4.0.1情報

まずは現在のRedmine4.0.1はこのようになっています。

OSはAmazon Linux 2となっています。

インストールしているディレクトリは、/var/lib/redmine-4.0.1です。

Apacheの設定で/etc/httpd/conf.d/redmine.confを作成しています。

<VirtualHost *:80>
ServerName xxx
DocumentRoot "/var/lib/redmine-4.0.1/public"

PassengerFriendlyErrorPages on

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

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

<Location />
  PassengerBaseURI /
  PassengerAppRoot /var/lib/redmine-4.0.1
</Location>
</VirtualHost>

 

Redmine4.1.1をセットアップ

インストールは/var/lib/redmine-4.1.1に行い、/etc/httpd/conf.d/redmine.confを変更します。

こちらからredmine-4.1.1.tar.gzをダウンロードして、EC2にアップロードしておきます。

sudoの設定変更

sudoでbundleコマンドを実行するのでsudoの設定を変更しておきます。

$ sudo visudo

# Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

Defaults secure_pathの行をコメントアウトします。

 

redmineの解凍と配備

アップロードしたredmineを解凍します。

$ tar xvfz redmine-4.1.1.tar.gz

解凍するとredmine-4.1.1というフォルダが作成されます。

/var/libに配備します。

$ sudo mv redmine-4.1.1 /var/lib/

この作業で/var/lib/redmine-4.1.1がredmine 4.1.1のホームディレクトリとなりました。

$ sudo cp /var/lib/redmine-4.0.1/config/database.yml /var/lib/redmine-4.1.1/config/

データベース設定ファイルをコピーします。

$ cd /var/lib/redmine-4.1.1

$ bundle install --no-deployment

redmineのインストールに必要なgemをインストールします。

 

セッション保護用の秘密鍵を作成

$ bundle exec rake generate_secret_token

 

データベースの更新

$ bundle exec rake db:migrate RAILS_ENV=production

データベースを更新します。

 

Apache設定変更

/etc/httpd/conf.g/redmine.confの設定変更

<VirtualHost *:80>
ServerName 10.0.1.151 <--環境に合わせてください
DocumentRoot "/var/lib/redmine-4.1.1/public"

#2020/6/8 redmineが動作しなくなったので追記
PassengerFriendlyErrorPages on

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

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

#Alias /redmine /var/lib/redmine-4.0.1/public

#<Location /redmine>
<Location />
  PassengerBaseURI /
  PassengerAppRoot /var/lib/redmine-4.1.1
</Location>
</VirtualHost>

 

オーナー変更・Apache再起動

$ cd /var/lib

$ sudo chown -R apache.apache ./redmine-4.1.1/

$ sudo systemctl restart httpd

 

バージョンアップ完了

redmine4.1.1

バージョンアップが完了しました。