ラベル redmine の投稿を表示しています。 すべての投稿を表示
ラベル redmine の投稿を表示しています。 すべての投稿を表示

2020年4月15日水曜日

Redmineをちゃんと使う

在宅勤務で、いろいろなことを見直している。
なんとなく使っているRedmineもちゃんと使うためにいろいろ調べようと思う。
自分用に家庭でも使用しているが、あまり使えていなかったし。

用語の整理

ほんとなんとなくで使っていたと反省・・・。
用語 意味 デフォルト値 参考
ワークフロー 「仕事の流れ」を意味する言葉で、チケット作成から完了までの流れを決める機能 「ロール数」×「トラッカー数」存在する 引用元
ロール ユーザーがプロジェクト上で行える操作を定義したもの 「管理者」、「開発者」、「報告者」 引用元
トラッカー トラッカーはチケットの大分類 バグ/機能/サポート 引用元
チケット タスク管理の最小単位 引用元
ステータス ステータスはチケットの進捗状況を表すもの 新規/進行中/解決/フィードバック/終了/却下 引用元
作業分類 チケットの作業時間を活動(作業分類)単位で分ける 「設計作業」、「開発作業」 引用元
http://redmine.jp/glossary/

自分に合わせてカスタマイズする

上記用語やそれを実際に即したかたちにしたら、家族にも使ってもらえたりするのかと・・・。

趣味の開発用途の場合

これは、1人で完結するので、単純化できる
名称 設定
ワークフロー あとで
ロール 変更なし(管理者/開発者/報告者)
トラッカー 変更なし(バグ/機能/サポート)
ステータス 変更なし(新規/進行中/解決/フィードバック/終了/却下)
作業分類 変更する(調査作業/設計作業/開発作業/確認作業)

作業分類の追加

管理者でログインして、[管理]→[選択肢の値]にて、作業分類(作業時間)を追加する


これでOK

ワークフローの確認

1人なので、ロールは「管理者」のみになる(T_T)
変更はなしで大丈夫


勉強系用途の場合

これも、1人で黙々なので、単純化できる
名称 設定
ワークフロー あとで
ロール 変更なし(管理者/開発者/報告者)
トラッカー 変更する勉強/バグ/機能/サポート)
ステータス 変更する(新規/進行中/終了/却下)※ワークフローで対応する
作業分類 変更する(インプット/アウトプット/テスト・振り返り)

トラッカーの追加

管理者でログインして、[管理]→[トラッカー]にて「勉強」を追加する


作業分類の表示/非表示を変更

管理者でログインして、[管理]→[選択肢の値]にて
作業分類(作業時間)でインプット/アウトプット/テスト・振り返りを追加する
その後、プロジェクトに移動して[設定]→[時間管理]から表示したい項目を有効化する。


ワークフローでステータス遷移を縛る

ステータスの遷移を新規/進行中/終了/却下のみにしたい
解決とフィードバックは遷移しないようにする。
これは、[管理]→[ワークフロー]にてトラッカーを「勉強」にして遷移を決める。


これで、ステータスの遷移を確認する

これでOK

家庭内タスク管理の場合

これは、家族で使うことになるので、少し複雑になるか?
名称 設定
ワークフロー あとで
ロール 変更する(管理者/依頼者/作業者)
トラッカー 変更する(家のこと/学校のこと/会社のこと/実家のこと)
ステータス 変更なし(新規/進行中/解決/フィードバック/終了/却下)
作業分類 変更する(見積/対応/確認)

ロールの追加

管理者でログインして、[管理]→[ロールと権限]にて行う

その他

トラッカーの追加は、今までと同じ。

2020年2月15日土曜日

Redmineの管理者パスワード忘れた

docker上に作成していたRedmine・・・。勉強がてら使っていたのだけど、通常ユーザーしか使ってなくて、管理者パスワード忘れてしまった。
不幸なことに、パスワードリセットのためのメールアドレスは設定していない。
幸いなことに、データーベースへのアクセスは出来る。
ちなみに、Redmineのバージョンは4.0.4.stableを使っている。

一般的な方法

redmineのFAQに書いている方法
http://redmine.jp/faq/administration/reset-admin-password/
これが、安全そうだけど、docker上で動いているRedmineへのアクセスがめんどくさいな〜と思ってしまい。。
また、データーベースのアクセスができていることから、直に書き換えれば良いんじゃないかと思いはじめた。

データーベースを書き換える

先人が試したことを参考に
http://cartolare.blogspot.com/2011/03/redmine.html
https://qiita.com/is0me/items/2e3add5dbaab7c63b775
パスワードは、ユーザー毎に持っているsaltキーとSHA1で暗号化したパスワードを連結し、更にSHA1で暗号化する。
がポイント。
MariaDB [redmine]> select id,login,hashed_password,salt from users where id = '1';
+----+-------+------------------------------------------+------------+
| id | login | hashed_password                          | salt       |
+----+-------+------------------------------------------+------------+
|  1 | admin | pppppppp                                 | xxxxxxxxxx |
+----+-------+------------------------------------------+------------+
これのpppppppp部分を書き換える。
とりあえずadminをSHA1でハッシュすると[d033e22ae348aeb5660fc2140aec35850c4da997]となる。
これにsalt(xxxxxxxxxx)を加えて[xxxxxxxxxxd033e22ae348aeb5660fc2140aec35850c4da997]としてSHA1でハッシュすると[78af0b552fabb064d785ec2c38f8b43c4fc40b57]となる。
これをpppppppp部分に書き込んでおく。
update users set hashed_password="78af0b552fabb064d785ec2c38f8b43c4fc40b57" where id='1';
これで、redmineのログイン画面からadmin/adminで入れた。その後ちゃんとパスワード変更を行った。
めでたしめでたし。
それにしても、職場でプロジェクト管理・タスク管理を受け入れてもらうにはどうすれば良いんだろうか…
いつまでもエクセル管理じゃ、エクセル工数が半端ない。

2019年8月2日金曜日

バックアップについて

12月頃にHOMEサーバーの環境を移行してから、バックアップが手薄になっていた。
https://continue-to-challenge.blogspot.com/2018/10/nextcloud.html
https://continue-to-challenge.blogspot.com/2018/12/gogs.html
今回はせめて再構築が用意になるように外付けHDDにバックアップを行うことにした。
対象
  • nextcloud
  • gogs
  • redmine
nextcloudには、家族の写真とかがあるので特に大事。

バックアップ

nextcloud

ほぼ先人と同じ
https://docs.nextcloud.com/server/15/admin_manual/maintenance/backup.html
https://denor.jp/nextcloudサーバのデータ自動バックアップ設定-snap版
https://takuya-1st.hatenablog.jp/entry/2018/11/20/020000
#!/bin/bash
NCPATH="/mnt/***/www/html/nextcloud"
NCDATA_PATH="/mnt/***/nextcloud/data"
TARGET="/mnt/usbhdd/nextcloud_backup"

echo start at `date`

echo "(STEP1)HDD spin-up"
sdparm -r --command=start /dev/sdd

echo "(STEP2)Maintenance Mode [ ON ]"
sudo -u www-data php ${NCPATH}/occ maintenance:mode --on

echo "(STEP3)Backup Config"
rsync -vAax ${NCPATH} ${TARGET}

echo "(STEP4)Backup Data"
rsync -vAax ${NCDATA_PATH} ${TARGET}

echo "(STEP5)Backup Database"
mysqldump --single-transaction -h localhost -u nextcloud -p****** nextcloud > ${TARGET}/nextcloud-sqlbkp.bak

echo "(STEP6)Maintenance Mode [ OFF ]"
sudo -u www-data php ${NCPATH}/occ maintenance:mode --off

echo "(STEP7)HDD spin-down"
sdparm -r --command=stop /dev/sdd

echo end at `date`

省電力化のためにスピンダウン入れてみたけど、効果は未知数。
smartで起動しちゃうみたいだし・・・。

gogs

大体ここの内容と同じ
https://gogs.io/docs/upgrade/upgrade_from_binary
#!/bin/bash
GGSPATH="/***/git/gogs"
GGSRPPATH="/***/git/gogs-repositories"
TARGET="/mnt/usbhdd/gogs_backup"

echo start at `date`

echo "(STEP1)gogs [ STOP ]"
systemctl stop gogs

echo "(STEP2)Backup Custom"
rsync -vAax ${GGSPATH}/custom ${TARGET}

echo "(STEP3)Backup Data"
rsync -vAax ${GGSPATH}/data ${TARGET}

echo "(STEP4)Backup Log"
rsync -vAax ${GGSPATH}/log ${TARGET}

echo "(STEP5)Backup Database"
mysqldump --single-transaction -h localhost -u gogs -p****** gogs_git  > ${TARGET}/gogs-sqlbkp.bak

echo "(STEP6)Backup Repository"
rsync -vAax ${GGSRPPATH} ${TARGET}

echo "(STEP7)gogs [ START ]"
systemctl start gogs

#echo "(STEP7)HDD spin-down"
#sdparm -r --command=stop /dev/sdd
echo end at `date`

redmine

本体はdocker、データベースはローカルのMariaDBを使用している。
https://continue-to-challenge.blogspot.com/2019/07/redmine.html
バックアップの方法
https://qiita.com/mikoski01/items/7d71ef7d167a6b78219a
http://redmine.jp/faq/system_management/backup/
#!/bin/bash
RMPATH="/srv/docker/redmine/redmine/files"
TARGET="/mnt/usbhdd/redmine_backup"

echo start at `date`

echo "(STEP1)redmine [ STOP ]"
docker stop redmine

echo "(STEP2)Backup Data"
rsync -vAax ${RMPATH} ${TARGET}

echo "(STEP3)Backup Database"
mysqldump --single-transaction -h localhost -u redmine -p****** redmine  > ${TARGET}/redmine-sqlbkp.bak

echo "(STEP4)redmine [ START ]"
docker start redmine

リストア

gogsの復元

ほぼ、この前の環境構築と同じ
https://continue-to-challenge.blogspot.com/2018/12/gogs.html
今回はテストとしてNanoPiに環境構築してみた。
  1. gogsインストールして
  2. MariaDBにデータベース作成
  3. バックアップからデータリストア
  4. 起動
の簡単4ステップ

redmineの復元

環境構築は、この前の手順で
https://continue-to-challenge.blogspot.com/2019/07/redmine.html
復元手順は
http://redmine.jp/faq/system_management/backup/
すいすい行くと思いきや
standard_init_linux.go:211: exec user process caused "exec format error"
なんだと!
どうやらNanoPiではARM用のイメージを使わないといけないらしい。
https://matatsuna.hatenablog.com/entry/2017/08/16/223039
公式のものがARM64対応していたのでそれにしてみる。
https://hub.docker.com/_/redmine
docker run --name=redmine -it --rm \
-e REDMINE_DB_USERNAME=redmine -e REDMINE_DB_PASSWORD=****** \
-e REDMINE_DB_DATABASE=redmine \
-e REDMINE_DB_MYSQL=192.168.1.13 -e REDMINE_DB_PORT=3306 \
-p 3000:3000 \
-v /srv/docker/files:/usr/src/redmine/files \
library/redmine:4.0.4
初期状態で起動が確認できたら、
  1. /srv/docker/redmineにfilesの中身を展開する
  2. データベースの復元
を行う。
できた!

nextcloudの復元

nextcloudには30GBくらいのデータが保存されているため、NanoPIのSDカードでは到底復元の環境に出来ない。
そこで、NanoPIに外付けHDDを装着した。 段々とNASキットが欲しくなる。
http://wiki.friendlyarm.com/wiki/index.php/1-bay_NAS_Dock_v1.2_for_NanoPi_NEO/NEO2#Hardware_Spec
https://www.friendlyarm.com/index.php?route=product/product&path=93&product_id=222
http://akizukidenshi.com/catalog/g/gM-12591/
ま、我慢だけどね。
ルートを外付けHDDに変更するには
nand-sata-install
https://lubtech.geo.jp/2017-09-10/?p=3048
環境構築はこの前の手順で
https://continue-to-challenge.blogspot.com/2018/10/nextcloud.html
こちらは特にARM/X86_64で違いはなく、当時の方法を思い出して行けば大丈夫。
ただし、復旧までの暫定・データ取り出しを目的としているためSSLは除外した。
うーん。眠い。

2019年7月23日火曜日

Redmineインストール

いまさらだけど、やっぱりタスク管理をやってみたくて
超メジャーにすることにした。
https://propagandes.info/redmine-install/
動作環境
http://guide.redmine.jp/RedmineInstall/#Requirements
あれ、MariaDBだめなの??
じゃあ、新たにPostgreSQLを入れるか、Dcoker使って環境作るか・・・。
まずはお試しなので、Docker使ってみようかな。
https://qiita.com/bezeklik/items/b9d75ee74e0ae4c6d42c
悩む・・。
https://www.untrustedconnection.com/2018/01/redmine-passenger-and-nginx-on-ubuntu.html
悩んだ時は巨人の肩に乗る!
https://github.com/sameersbn/docker-redmine

MariaDBのデータディレクトリ移動

よくよく見たら、データがraid環境下に保管されていなかった。あちゃー
cat /etc/mysql/mariadb.conf.d/50-server.cnf
-------------------------------------------
(略)
#
# * Basic Settings
#
user  = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port  = 3306
basedir  = /usr
datadir  = /var/lib/mysql
tmpdir  = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
(略)
のdatadirを"/mnt/4Traid1/dbdata"に変更したい
systemctl stop mariadb.service
50-server.cnfのdatadb書き換え
データ移動
systemctl start mariadb.service
これで少し安心。

いざRedmine

http://www.makcraft.com/blog/meditation/2019/01/19/running-redmine-on-docker-containers/

Dockerの準備

https://docs.docker.com/install/linux/docker-ce/ubuntu/
基本的にはこの手順。だけど、Ubuntuじゃないので、注意。
$ lsb_release -cs
tara
「tara」は「Ubuntu 18.04 LTS」をベースにしているらしい。
で、これのコードネームは「bionic」らしい。
https://ja.wikipedia.org/wiki/Linux_Mint
https://www.ubuntulinux.jp/News/ubuntu1804
なので、「$(lsb_release -cs)」の部分を書き換える。

まずはクイックスタートを試してみる

https://github.com/sameersbn/docker-redmine#installation
docker pull sameersbn/redmine:latest
docker run --name=postgresql-redmine -d --env='DB_NAME=redmine_production'   --env='DB_USER=redmine' --env='DB_PASS=password' --volume=/srv/docker/redmine/postgresql:/var/lib/postgresql sameersbn/postgresql:9.6-4
docker run --name=redmine -d --link=postgresql-redmine:postgresql --publish=5080:80 --publish=50443:443 --env='REDMINE_PORT=5080' --volume=/srv/docker/redmine/redmine:/home/redmine/data sameersbn/redmine:4.0.4
https://サーバー:5080にアクセスすると


おぉ!

外部SQLサーバーを使ってみる

せっかく母艦のほうにMariaDBがあるのでPostgreからこっちに切り替えてみる
Redmineのコンテナからアクセスできるようにする。振られたIPはなんだろうか?
https://qiita.com/miyatahirotaka/items/a44e2ae0bac53a4a5feb
https://qiita.com/suin/items/50033dc60bfba8553395
http://docs.docker.jp/engine/userguide/networking/dockernetworks.html
docker exec -i -t redmine bash
root@57a:/home/redmine/redmine# hostname -i
172.17.0.3

MariaDBの設定変更

外部からアクセス出来るようにする。
https://qiita.com/tocomi/items/0c009d7299584df49378
vi /etc/mysql/mariadb.conf.d/50-server.cnf
-----------
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address            = 127.0.0.1
-----------
service mariadb restart

MariaDBにDBとユーザー作成

CREATE USER 'redmine'@'172.17.%' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `redmine_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'172.17.%'
試しに、コンテナの中からアクセス出来るか確認してみる
docker exec -i -t redmine bash
root@57a:/home/redmine/redmine# mysql -u redmine -p --host==サーバーIP

起動中のRedmineとPostgreを停止する

プロセスの確認と停止
docker ps -a
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                     PORTS               NAMES
57aee49d39b6        sameersbn/redmine:4.0.4      "/sbin/entrypoint.sh…"   5 days ago          Exited (0) 5 seconds ago                       redmine
78b9389d7745        sameersbn/postgresql:9.6-4   "/sbin/entrypoint.sh"    5 days ago          Up 5 days                  5432/tcp            postgresql-redmine

docker stop redmine
docker stop postgresql-redmine
コンテナの削除
docker rm redmine
docker rm postgresql-redmine
http://www.risewill.co.jp/blog/archives/6793

外部SQLサーバーを指定して起動してみる

docker run --name=redmine -it --rm \
--env='DB_ADAPTER=mysql2' \
--env='DB_HOST=192.168.1.25' --env='DB_NAME=redmine_production' \
--env='DB_USER=redmine' --env='DB_PASS=password' \
--env='REDMINE_HTTPS=false' \
--publish=5080:80 --publish=50443:443 --env='REDMINE_PORT=5080' \
--volume=/srv/docker/redmine/redmine:/home/redmine/data \
sameersbn/redmine::4.0.4
さぁ



わぉOrz
ログを確認してみる。
docker exec -i -t redmine bash
tail -f /var/log/redmine/redmine/production.log
----
Started GET "/" for 127.0.0.1 at 2019-07-09 22:40:27 +0000
Processing by WelcomeController#index as HTML
Completed 500 Internal Server Error in 8ms (ActiveRecord: 3.8ms)
  
ActiveRecord::StatementInvalid (Mysql2::Error: Table 'redmine.settings' doesn't exist: SHOW FULL FIELDS FROM `settings`):
  
app/models/setting.rb:235:in `check_cache'
app/controllers/application_controller.rb:90:in `user_setup'
----
DBを見てみると、空っぽだった。なぜ?
http://guide.redmine.jp/RedmineInstall/#step-6-
https://qiita.com/bezeklik/items/b9d75ee74e0ae4c6d42c
初期設定が必要なのか??
docker exec redmine bundle exec rake db:migrate RAILS_ENV=production
docker exec redmine bundle exec rake redmine:load_default_data RAILS_ENV=production REDMINE_LANG=ja
これで再度アクセスしてみると



やったー
admin/adminで入ろう
よしよし、良さそう!

スマホアプリを使ってみる

宅内では使えそうなので、外出先での使用を考えてスマホアプリを導入してみる。
http://redminepm.com/ja
あまり、外部からアクセスできるポートを何個も開けるのは気分的に嫌だったので、
さらに当面は自分しか使わないので、sshポートフォアードを使用した。
使う時だけlocalhost:5080とサーバーの5080をつなげる。



タスクを眺めるにはアプリが見やすいと思う



チケットを割り当てたり、ガントチャート見たりはブラウザと使い分けると幸せになれそう。
しばらくはこれでやってみようと思う。