はじめに
- 概要 調査・検討 / 構築 / 移行 / 番外編 のうちの、番外編 です
- バージョンアップに伴う他作業も含めてシステム移行として扱います
記事の全体構成
- その1 概要・調査検討
- その2 構築
- その3 移行
- その4 Redmine バージョンアップにおける番外編(このページ)
バージョンアップ・移行とは異なる視点の内容です
- 番外編 RedMicaの説明
- 番外編1)RedmineのDockerを
docker-compose up
で動かす例 - 番外編2)Redmine3.2を構築した事例
- 番外編3)VMWare仮想マシンへのディスク追加
- 番外編4)markdown用のプラグイン
RedMica
- remica v1.3.0 を使うと、
Redmine5.0として取り込まれる機能が先行して使える、1ヶ月に1回くらいはリリースされる
We are pleased to announce the release of RedMica 1.2.1 (2021-05).
RedMica 1.3.0 is based on Redmine 4.2.1. This version delivers all the features provided in Redmine 4.2.1 and some new features that will be included in Redmine 5.0.0.
番外編1)docker使ってみる
windows dockerでの試し
- 事前に、docker, WSL2 , docker-compose を利用できるようにしておく
- PS :Power shell のことです
- 事前準備ができていれば、10分かからずにRedmineが起動できます
docker-compose.yml ファイルのサンプル
redmine4.1のdockerイメージを使います
version: '3.8'
services:
redmine:
image: redmine:4.1
networks:
- frontend
volumes:
- ./data/volume:/usr/src/redmine/files
restart: always
ports:
- 8080:3000
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: example
REDMINE_SECRET_KEY_BASE: supersecretkey
depends_on:
- db
db:
image: mysql:5.7
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
networks:
- frontend
volumes:
- ./data/database:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: redmine
networks:
frontend:
コンテナ起動
PS > cd xxxx ymlファイルのある場所へ移動
PS > docker-compose up
ホストの8080にアクセス、コンテナの3000をホストの8080へフォワードされているので、
http://127.0.0.1:8080/
でredmineにアクセスできる
(左にホストのポートを、右にコンテナのポートを指定している)
番外編2)昔のRedmine3.2の環境整備(Apache + MySQL)
Redmine3.2を構築した時にインストールした時の情報
Redmine3.2の当時の情報のため情報が古いため注意してください
5年以上古いです(2016年4,5月頃の情報です)
参考にした
https://weblabo.oscasierra.net/install-redmine32-centos7-1/
とほぼ同じ手順で入れています
- Apacheをインストールする
# yum install httpd
# systemctl enable httpd.service
- MySQLをインストールする
- CentOS7に入っているmariadbを消してmysqlを入れている
# yum remove mariadb-libs
# rm -rf /var/lib/mysql/
# yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# yum info mysql
# yum info mysql-community-server
起動
# systemctl start mysqld.service
停止
# systemctl stop mysqld.service
- Ruby 2.2.3をインストールする
# yum install git
# cd /opt
# git clone git://github.com/sstephenson/rbenv.git
# echo 'export RBENV_ROOT="/opt/rbenv"' >> /etc/profile
# echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile
# echo 'eval "$(rbenv init -)"' >> /etc/profile
# mkdir /opt/rbenv/plugins
# cd /opt/rbenv/plugins
# git clone git://github.com/sstephenson/ruby-build.git
一度ターミナルを閉じて開き直し、続けて次のコマンド実行します。
# yum install gcc make openssl-devel readline-devel
# rbenv install 2.2.3
# rbenv global 2.2.3
# ruby -v
- Phusion Passenger をインストールする
# gem list passenger
# gem install passenger
2-3分くらいかかる
# gem list passenger
# yum install gcc gcc-c++ libcurl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel ImageMagick ImageMagick-devel
5分くらいはかかる
- Redmine 3.2 をインストールする
# yum install ipa-pgothic-fonts
# gem install bundle
インストールが終わったら一度ターミナルを閉じて立ち上げなおしてください。
redmine3.2.1が最新なので、3.2.1にする。
# curl -O http://www.redmine.org/releases/redmine-3.2.1.tar.gz
# tar xzvf redmine-3.2.1.tar.gz
# mv redmine-3.2.1 /opt/
cd /opt/redmine-3.2.1/config
vi database.yml
Redmine に MySQL への接続設定を行います。 Redmine フォルダの下の config ディレクトリに database.yml というファイルを作成し、以下を記述します。
※ 新規構築 する場合は encoding: utf8mb4 にする
production:
adapter: mysql2
database: xxxx
host: localhost
username: yyyyy
password: zzzz
encoding: utf8
- Redmine yml 設定後 bundle コマンドにより、必要な GEM をインストールします。
# yum install mysql-devel
# cd /opt/redmine-3.2.1/
# bundle install --without development test
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate
最後に、Apache が Redmine の実行者になるので Redmine のファイルの所有者を apache ユーザーに変更します。
# chown -R apache:apache /opt/redmine-3.2.1
- Apacheの設定,passengerを使う設定
LoadModule passenger_module /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/passenger-5.0.26/buildout/apache2/mod_passenger.so
PassengerRoot /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/passenger-5.0.26
PassengerDefaultRuby /opt/rbenv/versions/2.2.3/bin/ruby
<VirtualHost *:80>
ServerName myhost.com
DocumentRoot /opt/redmine-3.2.1/public
<Directory /opt/redmine-3.2.1/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
apache、URLが http://domain/redmine のように ドメインの後に redmine
がある場合(もしくは複数Redmineを1ドメインでホストするような場合
cd /var/www/html
sudo ln -s /opt/redmine-3.2.1/public redmine
- ssl
yum install mod_ssl
firewalldでHTTPSを許可
番外編3)VMWare仮想マシンへのディスク追加
かなり古いvSphereで作業してて、新しいvCenterの方にもっていくその前段階の作業
参考
- https://qiita.com/a-killer-bee/items/564d51034c125d192df3
- https://qiita.com/kaihei777/items/082f1dce8840b333bf0b
-
http://webos-goodies.jp/archives/50480376.html
のパーティション設定を参考に
仮想マシンにディスクを追加する
- CentOS7.x
- 作業はGUI vsphere使う
vSphere
仮想マシン設定編集 → タブ「ハードウェア」、ボタン「追加」を押す →デバイスタイプで、ハードディスクを選択
→次へ
→新規仮想ディスクを作成→ディスクサイズ 50GB → ディスクプロビジョニングがThin Provisionで選択不可 →
場所は、「仮想マシンで保存」の選択のまま
→次へ→仮想デバイスノード SCSI(0:1)で良い(1つしかないならば、0:1で、2つあるならば0:2になる)
→進めて 終了でディスク追加が動く、数分かからず完了する
ディスク追加前
# df -k
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/centos-root 40456908 37540036 2916872 93% /
devtmpfs 1925652 0 1925652 0% /dev
tmpfs 1941196 84 1941112 1% /dev/shm
tmpfs 1941196 9040 1932156 1% /run
tmpfs 1941196 0 1941196 0% /sys/fs/cgroup
/dev/sda1 508588 160904 347684 32% /boot
/dev/mapper/centos-home 19748864 492600 19256264 3% /home
tmpfs 388240 12 388228 1% /run/user/42
tmpfs 388240 0 388240 0% /run/user/0
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2
ディスク追加
- 仮想マシンをシャットダウン
- 50GBをthinプロビジョニング(デフォルト)で追加
- 仮想マシンを電源オン
# df -h;
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 39G 36G 3.5G 91% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 84K 1.9G 1% /dev/shm
tmpfs 1.9G 8.9M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 158M 340M 32% /boot
/dev/mapper/centos-home 19G 482M 19G 3% /home
tmpfs 380M 12K 380M 1% /run/user/42
tmpfs 380M 0 380M 0% /run/user/0
# df -k;
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/centos-root 40456908 36812604 3644304 91% /
devtmpfs 1925652 0 1925652 0% /dev
tmpfs 1941196 84 1941112 1% /dev/shm
tmpfs 1941196 9044 1932152 1% /run
tmpfs 1941196 0 1941196 0% /sys/fs/cgroup
/dev/sda1 508588 160904 347684 32% /boot
/dev/mapper/centos-home 19748864 492600 19256264 3% /home
tmpfs 388240 12 388228 1% /run/user/42
tmpfs 388240 0 388240 0% /run/user/0
# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 3月 23 16:27 /dev/sda
brw-rw---- 1 root disk 8, 1 3月 23 16:27 /dev/sda1
brw-rw---- 1 root disk 8, 2 3月 23 16:27 /dev/sda2
brw-rw---- 1 root disk 8, 16 3月 23 16:27 /dev/sdb
- 追加されたのが、
/dev/sdb
- dev/sdb をファイルシステム作成、xfsで作成する、CentOS7のデフォルト
# df -k
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/centos-root 40456908 37539028 2917880 93% /
devtmpfs 1925652 0 1925652 0% /dev
tmpfs 1941196 84 1941112 1% /dev/shm
tmpfs 1941196 9044 1932152 1% /run
tmpfs 1941196 0 1941196 0% /sys/fs/cgroup
/dev/sda1 508588 160904 347684 32% /boot
/dev/mapper/centos-home 19748864 492600 19256264 3% /home
tmpfs 388240 12 388228 1% /run/user/42
tmpfs 388240 0 388240 0% /run/user/0
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
# shutdown -h now
ここから fdisk
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xc5f01c04.
コマンド (m でヘルプ): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p ★pを選択する
パーティション番号 (1-4, default 1): 1 ★1を入力する
最初 sector (2048-104857599, 初期値 2048):
初期値 2048 を使います
Last sector, +sectors or +size{K,M,G} (2048-104857599, 初期値 104857599):
初期値 104857599 を使います
Partition 1 of type Linux and of size 50 GiB is set
コマンド (m でヘルプ): p ★pを入力する
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0xc5f01c04
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 2048 104857599 52427776 83 Linux
コマンド (m でヘルプ): w ★wを入力する
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
終わり
まだ、この時点ではマウントしていないので見えない
# df -h;
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 39G 36G 3.5G 91% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 84K 1.9G 1% /dev/shm
tmpfs 1.9G 8.9M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 158M 340M 32% /boot
/dev/mapper/centos-home 19G 482M 19G 3% /home
tmpfs 380M 16K 380M 1% /run/user/42
tmpfs 380M 0 380M 0% /run/user/0
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1
- xfsでフォーマットする
mkfs -t xfs /dev/sdb1
# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=3276736 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=13106944, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=6399, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
- マウントする
mkdir /mnt/disk2
mount /dev/sdb1 /mnt/disk2
# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 3月 23 16:27 /dev/sda
brw-rw---- 1 root disk 8, 1 3月 23 16:27 /dev/sda1
brw-rw---- 1 root disk 8, 2 3月 23 16:27 /dev/sda2
brw-rw---- 1 root disk 8, 16 3月 23 16:38 /dev/sdb
brw-rw---- 1 root disk 8, 17 3月 23 16:41 /dev/sdb1
# mount /dev/sdb1 /mnt/disk2
# df -h;
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 39G 36G 3.5G 91% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 84K 1.9G 1% /dev/shm
tmpfs 1.9G 8.9M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 158M 340M 32% /boot
/dev/mapper/centos-home 19G 482M 19G 3% /home
tmpfs 380M 16K 380M 1% /run/user/42
tmpfs 380M 0 380M 0% /run/user/0
/dev/sdb1 50G 33M 50G 1% /mnt/disk2
- fstabを編集する
/dev/sdb1 /mnt/disk2 xfs defaults 1 2
# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Apr 14 10:09:26 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=XXXXXXXX-XXXX-XXXX-XXXX-2ac4b7f07fe8 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /mnt/disk2 xfs defaults 1 2
追加したディスクでRedmineのfilesを使えるようにする
# cd /mnt/disk2
# mkdir redmine
# mkdir redmine/files
# chown -R apache:apache ./redmine
# ls -l -R
- configuration.yml の修正
{path/to/redmine}/config/configuration.yml
に 行追加、末尾のfilesの後に/スラッシュは不要
変更後例
# cat configuration.yml
production:
email_delivery:
attachments_storage_path: /mnt/disk2/redmine/files
- filesのファイルコピー
redmine3.2のfilesをマウントした、Redmine4でのconfig設定した場所へ
# pwd
/opt/redmine-3.2.0/files
# cp -ap * /mnt/disk2/redmine/files/ &
filesの動作確認
- 画面からファイルアップロードして確認
- 画面からファイルをダウンロードして確認
番外編4)markdownを使えるプラグイン
- Redmine全体のを変えてしまうと、独自のコンバートが必要
- Redmineの利用者でチケットを主に使うのは設計者、テスターになり、プログラマーの利用率よりも多い
- 利用者はRedmineの記法を使う人はまあまあ多く、プログラマーだとmarkdown使う、そのため、全体を変えると影響が大きい
プラグイン2種類
-
https://redmine.tokyo/issues/1036 を見ると
-
redmine_per_project_formatting ( https://github.com/a-ono/redmine_per_project_formatting)
- PJ/Module単位でTextile/Markdownを選択できる。
- 4.0対応なのでdemoサーバで試行したところ動作良好。お勧めします。
-
redmine_persist_wfmt( https://github.com/pinzolo/redmine_persist_wfmt)
- wiki,コメント単位でTextile/Markdownを選択できる。
-
-
プロジェクト単位で切替えできるプラグインではmarkdownで書きたい人には向かない
-
途中から導入できコメント単位でmarkdownと従来記法が選べるプラグインがあるのでそれが良いか(でも都度選択するのは手間か・・・)
プラグインredmine_persist_wfmtを試してみた
- https://github.com/pinzolo/redmine_persist_wfmt がコメント単位でmarkdwonを使うことができるようになるプラグイン
- プラグインのマイグレーションで約30分かかった
- プラグインの導入 githubのreadme.mdの手順通り
cd /path/to/redmine/
Clone to your Redmine's plugins directory(Redmineのプラグインのディレクトリに git cloneする)
$ git clone https://github.com/pinzolo/redmine_persist_wfmt.git plugins/redmine_persist_wfmt
Install dependency gems
If you are already using Redmine, you probably only call bundle.(既にRedmineを使っているのであれば、bundleを使う)
$ bundle install --without test development
Execute migration(プラグインのマイグレーションを実行する)
$ bundle exec rake redmine:plugins:migrate NAME=redmine_persist_wfmt RAILS_ENV=production
Execute persist_all task
This task saves all wiki formats that already exist.(既にwiki記法の記載があるならばrakeコマンド実行する)
# FORMAT is required and must be 'textile' or 'markdown'
$ bundle exec rake pwfmt:persist_all FORMAT=textile RAILS_ENV=production
Restart your Redmine(Redmineを再起動)