My Tracking

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

【Redmine】docker環境でのバックアップとリストア

docker環境上に構築されたRedmineのバックアップとリストアについての備忘録。

目次

環境の前提としては、以下の通り。

  • dockerのバージョンは、以下を利用。
[root@docker ~]# docker -v
Docker version 1.12.6, build 96d83a5/1.12.6
[root@docker ~]#
/srv/docker/redmine/mysql
/srv/docker/redmine/redmine

バックアップ対象とするファイル

以下の記事の通り、

データのバックアップ方法 — Redmine.JP

以下をバックアップするものとする。

テストデータの登録

バックアップとリストア前に、テストデータを登録しておく。

バックアップとリストア前に、テストデータ用のチケットと

テストデータ用のナレッジ(添付画像付き)をあらかじめ登録しておく。

MySQLのバックアップ

以下のコマンドでMySQLのバックアップを実行する。

[root@docker ~]# docker exec -it mysql-redmine mysqldump -uroot redmine_production -v -r /var/lib/mysql/redmine.dmp

バックアップのファイルが作成されている(ここでは、「/srv/docker/redmine/mysql/redmine.dmp」)ことを確認する。

[root@docker ~]#  ls -l  /srv/docker/redmine/mysql/redmine.dmp
-rw-r--r-- 1 root root 109637  13 22:01 /srv/docker/redmine/mysql/redmine.dmp
[root@docker ~]#

Redmineのfilesディレクトリのバックアップ

Redmineのfilesディレクトリ「ここでは、「/srv/docker/redmine/redmine/files」)をコピーしておく。 コピー先は、ここでは「/home/ment/backup/files」とする。

[root@docker redmine]# pwd
/srv/docker/redmine/redmine
[root@docker redmine]#
[root@docker redmine]# ls -l
合計 0
drwxr-xr-x 2 ment ment   6  614  2017 backups
drwxr-xr-x 4 ment ment  37  614  2017 dotfiles
drwxr-xr-x 3 ment ment  18 1218 23:23 files
drwxr-xr-x 2 ment ment   6  614  2017 plugins
drwxr-xr-x 2 ment ment   6  614  2017 themes
drwxr-xr-x 5 ment ment 114  614  2017 tmp
[root@docker redmine]#
[root@docker redmine]# cp -r files /home/ment/backup
[root@docker redmine]#

テストデータの削除

バックアップしたデータのリストア前にテストデータをいったん削除する。

まず、テスト用のチケットを削除する。

テスト用のチケットが削除された。

次に、テスト用のテストデータ用のナレッジ(添付画像付き)を削除する。

テストデータ用のナレッジ(添付画像付き)が削除された。

Mysqlのリストア

実際に、Mysqlのバックアップファイルからのリストアを下記のコマンドで実行する。

[root@docker redmine]# cat /srv/docker/redmine/mysql/redmine.dmp | docker exec -i mysql-redmine  /usr/bin/mysql -u root redmine_production
~この環境では、実行後、30秒程度でプロンプトが戻る~
[root@docker redmine]#

Mysqlのリストア後の確認

テスト用のチケットがリストアされる。

テストデータ用のナレッジ(添付画像付き)もリストアされたが、この時点では画像がリストアされていない。

Redmineのfilesディレクトリのリストア

Redmineにアップとロードされた画像をリストアするために、 予め、バックアップしたfilesディレクトリを以下のようにコピーし、リストアする。

[root@docker redmine]# cp -r /home/ment/backup/files/ /srv/docker/redmine/redmine/

テストデータ用のナレッジ(添付画像付き)が画像も含めて、リストアされたことを確認する。

【Redmine3.3】python_redmineでcsvファイルからチケット一括登録する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。

今回は、REST APIを操作するpython_redmineの学習を兼ねて、 python初心者なりに、csvファイルからのチケット一括登録機能の作成をしたため、その備忘録

目次

参考サイト

以下のサイトを大いに参考にした。

qiita.com

https://www.yamamanx.com/redmine-rest-api-redmine_python/

参考書籍

以下の書籍に、APIに関しての記述があったため、参考にした。

入門Redmine 第5版

入門Redmine 第5版

インプット用のcsvファイルの仕様

  • 以下のようなフォーマットで、チケット登録に必要にデータを作っておく。

csvファイルからチケット一括登録プログラム(import_redmine.py)

  • 以下のように、 csvファイルからチケット一括登録プログラムを作成する。なお、実行するpythonのバージョンは下記の通り。
[root@docker python]# python -V
Python 2.7.5
[root@docker python]#

前準備

  • インポート用のcsvファイルを下記のフォーマットで用意する。

  • 以下の通り、チケット一括登録プログラム(import_redmine.py)とインプット用のcsvファイルをあらかじめ用意しておく
[root@docker python]# ls -l import_redmine.*
-rw-r--r-- 1 root root  479 1018 17:26 import_redmine.csv
-rw-r--r-- 1 root root 2006 1018 17:27 import_redmine.py
[root@docker python]#

一括登録実行

  • 以下の通り、プロジェクト内にまだチケットがない状態で

  • 以下の通り、実行する。
[root@docker python]# python import_redmine.py
  • csvデータの内容に従い、チケットの一括登録されていることを確認する。

CentOS7.3にemacsをインストールする。

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定の続きで、 コーディングする際のエディタである「emacs-24」をインストールする

なお、「emacs-24」のソースコードが「emacs-24.4.tar.gz」あらかじめ、 ダウンロードされているものとして、以降を記載する。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

gccコンパイラのインストールする

[root@docker emacs-24.4]# yum install gcc

コンパイル時「`tputs' was not found in any library.というエラーが出た」ので、その対処

後述のemacsコンパイル時、 tputs' was not found in any library.と「tputs' was not found in any library.というエラーが出た」ので、その対処をあらかじめしておく。

[root@docker ~]#wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
[root@docker ~]#tar -zxvf ncurses-5.9.tar.gz
[root@docker ~]#cd ncurses-5.9
[root@docker ~]#./configure
[root@docker ~]#make
[root@docker ~]#make install

必須ではないと思うが、「Development Tools」のyumパッケージをインストールしておく

[root@docker emacs-24.4]# yum groupinstall -y "Development Tools"

emacsコンパイル&インストール

今回は、OS自体、X-Windowsがインストールされていないテキストモード環境のため、「 --without-x」でインストールする

[root@docker src]# tar zxvf emacs-24.4.tar.gz
[root@docker emacs-24.4]# ./configure --without-x
[root@docker emacs-24.4]# make
[root@docker emacs-24.4]# make install

emacsの初期設定(init.el)

emacsの設定は、下記書籍を参考にした設定(init.el)をずっと、利用してきたのでその設定を移行する。

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

pythonモード時ののタブ幅

上記の書籍以外の設定としては、 pythonモードのタブ幅を設定しておく。

;;python-mode(タブ幅4)
(add-hook 'python-mode-hook
          '(lambda()
             (setq indent-tabs-mode t)
             (setq indent-level 4)
             (setq python-indent 4)
                      (setq tab-width 4)))

emacs起動

emacsを起動し、pythonのコードを開く

Pythonソースコードのインデントを深くor浅くする技

地味に、よく使う技。備忘録

EmacsでPythonソースコードのインデントを深くor浅くする技 | 三鷹台でひきこもるプログラマの日記

  • C-c > (インデント深く)
  • C-c <(インデント浅く)

【Redmine3.3】python_redmineを利用するための環境を整備する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

pythonのバージョン

  • 既に以下のpythonがインストーされているものとする。
[root@docker ~]# python -V
Python 2.7.5
[root@docker ~]#

pipのインストール

  • 以下で、pipをインストールする。
[root@docker ~]# curl -kL https://bootstrap.pypa.io/get-pip.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  1638k      0 --:--:-- --:--:-- --:--:-- 1638k
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |????????????????????????????????| 1.3MB 360kB/s
Collecting setuptools
  Downloading setuptools-36.6.0-py2.py3-none-any.whl (481kB)
    100% |????????????????????????????????| 481kB 729kB/s
Collecting wheel
  Downloading wheel-0.30.0-py2.py3-none-any.whl (49kB)
    100% |????????????????????????????????| 51kB 3.2MB/s
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-36.6.0 wheel-0.30.0
[root@docker ~]#
  • pipのバージョン
[root@docker ~]# pip -V
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)
[root@docker ~]#

 python-redmineのインストール

[root@docker ~]# pip install python-redmine
Collecting python-redmine
  Downloading python_redmine-2.0.2-py2.py3-none-any.whl (596kB)
    100% |????????????????????????????????| 604kB 622kB/s
Installing collected packages: python-redmine
Successfully installed python-redmine-2.0.2
[root@docker ~]#

【Redmine3.3】ナレッジ管理とドキュメント管理プラグインのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、Redmine3.3上に以下のプラグインをインストール

  • knowledgebase(ナレッジ管理)
  • dmsf(ドキュメント管理)

目次

knowledgebaseのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# git clone git://github.com/alexbevi/redmine_knowledgebase.git redmine_knowledgebase
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine/plugins# bundle install
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate NAME=redmine_knowledgebase
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine

dmsfのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd plugins/
root@b9a9f615de4c:/home/redmine/redmine/plugins# git clone -b v1.5.6 https://github.com/danmunn/redmine_dmsf
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd ..
root@b9a9f615de4c:/home/redmine/redmine# bundle install --without xapian
root@b9a9f615de4c:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine
redmine
[root@docker ~]#

【Redmine3.3】issue_templatesとAttach image from clipboardプラグインのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、Redmine3.3上に以下のプラグインをインストール

  • issue_templates(チケットのテンプレート化)
  • Attach image from clipboard(クリップボードから直接画像を直接添付)

目次

issue_templatesのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins# hg clone https://bitbucket.org/akiko_pusu/redmine_issue_templates
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle update
root@24bdbf246513:/home/redmine/redmine# bundle install
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine

Attach image from clipboardのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins# git clone git://github.com/peclik/clipboard_image_paste.git
Cloning into 'clipboard_image_paste'...
remote: Counting objects: 419, done.
remote: Total 419 (delta 0), reused 0 (delta 0), pack-reused 419
Receiving objects: 100% (419/419), 257.95 KiB | 0 bytes/s, done.
Resolving deltas: 100% (149/149), done.
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# exit
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine
redmine
[root@docker ~]#

【Redmine3.3】view-customizeのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 ここでは、Redmineプラグイン「view customize plugin」インストール

目次

view-customizeのインストール

redmineのコンテナ内のシェルに入って以下作業

[root@docker ~]# docker exec -i -t 24bdbf246513 /bin/bash
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# git clone https://github.com/onozaty/redmine-view-customize.git
Cloning into 'redmine-view-customize'...
remote: Counting objects: 273, done.
remote: Total 273 (delta 0), reused 0 (delta 0), pack-reused 273
Receiving objects: 100% (273/273), 138.79 KiB | 0 bytes/s, done.
Resolving deltas: 100% (101/101), done.
root@24bdbf246513:/home/redmine/redmine/plugins# mv redmine-view-customize view_customize
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Migrating view_customize (View Customize plugin)...
== 1 CreateViewCustomizes: migrating ==========================================
-- create_table(:view_customizes)
   -> 0.4526s
== 1 CreateViewCustomizes: migrated (0.4528s) =================================

== 2 AddColumnViewCustomizes: migrating =======================================
-- add_column(:view_customizes, :is_enabled, :boolean, {:null=>false, :default=>true})
   -> 0.6943s
-- add_column(:view_customizes, :is_private, :boolean, {:null=>false, :default=>false})
   -> 0.6576s
-- add_column(:view_customizes, :author_id, :integer, {:null=>false, :default=>0})
   -> 0.8704s
== 2 AddColumnViewCustomizes: migrated (2.2239s) ==============================

root@24bdbf246513:/home/redmine/redmine#
root@24bdbf246513:/home/redmine# exit