LoginSignup
2
2

More than 3 years have passed since last update.

Redmineのバックアップ環境を構築する

Posted at

概要

今までは細々と数名でRedmineを使用していたが社内全体でRedmine使用する運びになり、
そのための運用ルールの策定やバックアップルールについて考えることになったのでメモ

バックアップ方法

・日次でRedmine添付データ(files)、及びデータベースのダンプファイルを取得し
 バックアップ用サーバに転送する。
・バックアップデータは世代管理を行う。
・リストア時にはAnsibleにて新たにRedmineサーバを構築し、バックアップデータより復元を行う。

image.png

環境構築

1. SSHの自動化

rsyncで同期処理をかける際に、パスワード使用せずログインできるよう
公開鍵認証を使用してSSHログインを自動化します。
Redmineサーバでの作業は、postgresユーザで実施

$ssh-keygen -t rsa
Enter file in which to save the key: (鍵の保存先が表示される) # Enterを入力
Enter passphrase (empty for no passphrase): # Enterを入力
same password: # Enterを入力
$scp .ssh/id_rsa.pub ユーザ名@バックアップサーバホスト名:~/.ssh

バックアップ用サーバにて、送られてきた公開鍵の使用設定を行います。

#バックアップ用サーバで実施
$cd ~/.ssh
$mv id_rsa.pub authorized_keys
$chmod 600 authorized_keys

2. バックアップ用ディレクトリ、シェルスクリプトの作成

シェルスクリプトを作成する前に、mkdirコマンドにて下記のディレクトリを
予め作成しておきます。

・Redmineサーバ
/home/postgres/redmine_backup
(postgresユーザのホームディレクトリにredmine_backup)

・バックアップサーバ
/backup/redmin_backup

次にバックアップを行う為のシェルスクリプトを
Redmineサーバのpostgresユーザホームディレクトリに作成します。

backup.sh
#!/bin/sh
pg_dump -U postgres redmine > ~/redmine_backup/db_`date +%Y%m%d%k%M%S`.dump
tar -cvzf ~/redmine_backup/files_`date +%Y%m%d%k%M%S`.tgz /var/lib/redmine/files
find ~/redmine_backup -name "db_redmine_*" -mtime +30 -exec rm {} \;
find ~/redmine_backup -name "files_*" -mtime +30 -exec rm {} \;

3. シェルスクリプトの実行

スクリプトに実行権限を付与し、実行

$chmod +x redmine_backup.sh
$./redmine_backup.sh

filesとDBのdumpファイルがバックアップサーバに転送されているはずです

4. 自動バックアップの設定

最後に、毎日決まった日時に自動でバックアップしてくるように
Redmineサーバにてスクリプトの自動起動設定を行います。

$crontab -e 

viが立ち上がったら以下を記載

00 23 * * * /作成したシェルスクリプトまでのパス/redmine_backup.sh

上の記述だと毎日23:00にバックアップを実行する設定になっています。
(cronについてはこちらを参照)

必要に合わせて設定変更してみてください。
以上でバックアップ環境の構築は終了です。

注意点

Redmineサーバ、バックアップ用サーバ共にrsyncコマンドを使用できるようにする必要がある。
インストールされていない場合はyumコマンドにてインストールを行う。

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2