Amazon Linux 2で動作中のRedmine4.0.1を4.1.1にバージョンアップします。
稼働中のAmazon Linux 2をバージョンアップするのはリスクが高いのでわたしは以下の方法で行います。
- スナップショット取得
- AMI作成
- AMIでインスタンス起動
- 起動したインスタンスでRedmineをバージョンアップ
- DNSでサーバを切り替え
この記事では4についてのみ説明します。
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
バージョンアップ完了
バージョンアップが完了しました。