カテゴリー: ガジェット Page 36 of 85

Redmine4.2に全文検索プラグインをインストール。(とアンインストール)

概要

Redmineの検索機能を強化するプラグインを導入し、検索効率を上げます。

注意点

こちらは、Redmineのプラグイン「knowledgebase」の検索対象ではありません。なので、このプラグインを利用している場合の導入は非推奨です。
(現に、それが分かってアンインストールしました)

プラグイン名

動作を確認した環境

  • Redmine 4.2
  • mysql 8.0.32
  • Ubuntu 20.04 LTS

前提

  • 筆者が用いているRedmineのDBはMySQLを用いているので、その環境での手順です。
  • また、レポジトリの追加はUbuntu20.04で確認しました。

導入時

  • パッケージ追加: 要
  • Gem追加:要
  • DBマイグレーション:要
  • 設定後のDBマイグレーション: 要

手順

  • パッケージ追加時にaptitudeを利用しています。好みに合わせてaptをご利用ください。

さっくりとした手順

  1. レポジトリ及び追加パッケージのインストール
  2. SSHログイン後、Redmineプラグインに移動
  3. gitでレポジトリをダウンロード
  4. 新規ジェムをインストール
  5. DBマイグレーション
  6. Webサービス再起動
  7. Redmine管理画面での設定変更
  8. DB再マイグレーション(記事のインデックス化)
  9. 設定確認

追加パッケージのインストール

レポジトリをインストールします。

sudo aptitude install-V software-properties-common lsb-release

sudo add-apt-repository universe
# LinuxMintの場合は実施不要

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu $(lsb_release --short --codename)-security main restricted"

sudo add-apt-repository ppa:groonga/ppa

mroongaパッケージをインストールします。

  • ●パッケージのインストール
sudo aptitude update

sudo aptitude install -V mysql-server-mroonga

mysqlの再起動を行います。

sudo systemctl restart mysql.service 

sudo systemctl status mysql.service 
# active (running)を確認します

プラグインのインストール

ディレクトリに移動します。

cd /home/www-data/redmine/plugins && pwd
# 自分の環境に合わせます。

プラグインを配置します。

sudo -u www-data git clone  https://github.com/clear-code/redmine_full_text_search

ls -ld redmine_full_text_search
# このディレクトリがあることを確認します

DBマイグレーションを行います。

Gemをインストールします。

cd /home/www-data/redmine && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle install

DBのマイグレーションを行います。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再起動します。

sudo systemctl restart apache2

Redmine管理画面での設定変更

  1. Redmineに管理者アカウントでログインします。
  2. 管理>プラグインからFull Text Search pluginの設定をクリックします。
  3. スコアを表示と類似チケットを表示にチェックを入れて保存します。

動作確認

Redmienの検索から、入力したことがある単語を検索しましたが何も引っかかりません。

プラグインのGithubで以下を確認しました。

You need to create index for existing data. You need to run full_text_search:synchronize task until no more synchronize target data.

これに対応します。

インデックス作成

cd /home/www-data/redmine && pwd
# 自分の環境に合わせます。

sudo -u www-data RAILS_ENV=production bin/rails full_text_search:synchronize
# 容量によっては時間がかかります

インデックスの作成確認

インデックス作成後、再度、入力したことがある単語を入力して検索します。

全文検索は非常にうまくいきましたが、ここで問題発生。

プラグイン「knowlegebase」で作成した記事が検索対象に出てこないのです。
これを検索対象に含めるにはプラグインのファイルを追加する必要がありそうですが、2023年2月時点ではそこまでの技量はなく。

やむなく(というか泣く泣く)アンインストールしました。

全文検索プラグインのアンインストール

cd /home/www-data/redmine && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle exec rake redmine:plugins:migrate NAME=redmine_full_text_search VERSION=0 RAILS_ENV=production

cd plugins

sudo rm -rf redmine_full_text_search

ls -ld /home/www-data/redmine/plugins/redmine_full_text_search
# 削除したディレクトリが存在しないことを確認します

sudo systemctl restart apache2.service

再起動後、Redmineが正常に稼働することを確認してknowlegebaseの記事が検索できることを確認しました。
確認しましたが、非常に不本意な結果となりました。

動作を確認した日

2023/02/06

“文具”のメンテナンス。

2月4〜5日の週末は文具のメンテナンスに集中していました。

インク補充

まずはメインで使っているLAMY Safari / Al-starのインク補充。最後に補充したのが1月の中頃でしたので、ほぼすべてのインクが空になっている状態。

一気に補充を行い、どの色でも安定して書けるようになっています。

プレピー洗浄

コンバータ搭載のプレピー。これはサブで使っていることとインクの持ちが抜群に良いために新たな問題が生まれました。

「どの色にどのインクを補充したかを忘れてしまう」という状況。なので、以下を行いました。

  • 分解洗浄
  • 乾燥(今ここ)

然る後に「どの色のインクを補充したかをメモ」していきます。

デスクトップ環境整備

Wikipediaによれば:

「文房具(ぶんぼうぐ)、文具(ぶんぐ)、ステーショナリー(英: stationery)とは、仕事場やオフィス、学校などにおいて情報の処理・記録・伝達などのために備えられる道具類をいう」 とのこと。

wikpedia

この定義に従えば、自分が普段用いているパソコン(サーバに至るまで)も「文房具」です。

そこで、デスクトップ周りを再整備。サウンドバーを置けるだけのスペースが生まれました。

多少の時間がかかりましたが、道具を使って仕事や趣味に励む以上、どっかでメンテの時間は必要だと思い知ったわけで。

Redmine4.2にQ & Aを導入。(RedmineUP プラグイン)

概要

設定やメモなど、ハマりポイントは結構な頻度で発生します。

そこで、あらかじめQ & A形式のメモで残せるようなプラグインをRedmineに導入します。(利用例)


メール登録が必要ではありますが無料(light version)です。

プラグイン名

動作を確認した環境

  • Redmine 4.2

導入時

プラグインのダウンロード:要
Gem追加:要
DBマイグレーション:要

手順

さっくりとした手順

  1. サイトからプラグインをダウンロードしてサーバに転送
  2. SSHログイン後、Redmineプラグインに移動
  3. 新規ジェムをインストール
  4. DBマイグレーション
  5. Webサービス再起動

プラグインの入手

Redmine UP Webサイトにアクセスします。

https://www.redmineup.com/pages/ja/plugins/questions

プラグインのダウンロードをします。

  1. 自身のメールアドレスを入力
  2. 受信したメールからプラグインをダウンロード

任意の方法でサーバに転送します。

安全性が担保されるのであれば任意の方法を選びます。

プラグインの展開と配置

ファイルの配置

ターミナルクライアントで作業をします。

cd /path/to/saved/directory/
# プラグインを保存したディレクトリに移動します。

unzip redmine_questions-1_0_4-light.zip
# 2023/02/05現在のバージョンです

sudo chown -R www-data:www-data redmine_questions

sudo mv redmine_questions /home/www-data/redmine/plugins/
# 自分の環境に合わせます。

ls -ld /home/www-data/redmine/plugins/redmine_questions
# ディレクトリがあることとファイルの所有権がwww-dataであることを確認します。

プラグインのインストールを行います。

Gemをインストールします

cd /var/lib/redmine/
# 自分の環境に合わせます。

sudo -u www-data bundle install

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再起動します。

sudo systemctl restart apache2

導入後の動作確認

  1. Redmineに管理者アカウントでログインします。
  2. 管理>プラグインからRedmine Q&A plugin (Light version)があることを確認します。
  3. ロールと権限から、アクセス権を適切に設定します。(Questionの項目です)
  4. 任意のプロジェクトの設定を開きます。
  5. モジュールからQuestionを有効にして保存します。
  6. タブとヘッダに「Help & Support」があることを確認します。
  • 英語メニューですが、「+ New question」などで追加、編集が可能です。

Apacheで特定のアクセス元からの通常アクセスをログに残さない設定。

概要

Webサービスの運用時、「誰がいつどこにアクセスしたか」を判別するアクセスログはとても重要なものです。


ではありますが、Webアクセス解析時に自分のアクセスログが邪魔になるケースがありました。

そこで、Apacheの設定ファイルで特定のアクセス元からのログを残さないようにしました。

確認環境

  • OS : Ubuntu 20.04 LTS
  • Apache 2.4.55

前提

  • 大本のコンフィグ(httpd.conf)ではなくバーチャルサイトで設定していること。
  • Apache設定ファイルに管理者権限で設定ができること。
  • 除外するIP/NWに対し、合意が取れていること。

注意事項

  • この方法でエラーログの除外設定はできません。

実施した手順

ほぼ全てSSHクライアントターミナルからの操作です。

さっくりとした手順

  1. コンフィグのバックアップを取ります。
  2. ログを残さない除外IP/NWを加えます。
  3. コンフィグの整合性を確認し、設定を反映します。
  4. 除外したIP/NWからのアクセスログが出ないことを確認します。

コンフィグ設定

コンフィグのバックアップを取ります。

sudo cp -pi /etc/apache2/sites-available/sites.conf /path/to/backup/directory/sites.conf.$(date +%Y%m%d)
# 自分が設定しているバーチャルサイトのコンフィグ / バックアップディレクトリに合わせます。

diff -u /etc/apache2/sites-available/sites.conf /path/to/backup/directory/sites.conf.$(date +%Y%m%d)
# 差分が無いことでバックアップが取れていることを確認します。

コンフィグファイルを編集します。

sudo vi /etc/apache2/sites-available/sites.conf
# 教義・信仰に従ったエディタで編集してください。
編集例

ここでは、以下の設定とします。

  • 除外IP: 192.168.1.11
  • 除外NW: 192.168.2.0/24
  • アクセスログの格納場所: /var/log/redmine/access.log
    # 以下のIP/NWはアクセスログに記録させません
    SetEnvIf Remote_Addr "192.168.1.11" dontlog
    SetEnvIf Remote_Addr "^192\.168\.2\." dontlog
    CustomLog /var/log/redmine/access.log combined env=!dontlog

保存後、以下のような差分を確認します。

diff -u /path/to/backup/directory/sites.conf.$(date +%Y%m%d) /etc/apache2/sites-available/sites.conf
  • ●差分
+    # 以下のIP/NWはアクセスログに記録させません
+    SetEnvIf Remote_Addr "192.168.1.11" dontlog
+    SetEnvIf Remote_Addr "^192\.168\.2\." dontlog
-    CustomLog /var/log/redmine/access.log combined
+    CustomLog /var/log/redmine/access.log combined env=!dontlog

設定反映

コンフィグの整合性を確認後に設定を反映します。

sudo apache2ctl configtest
# Syntax OKを確認します。

systemctl status apache2.service
# active (running)を確認します。

sudo systemctl restart apache2.service

systemctl status apache2.service
# active (running)を確認します。

動作確認

設定後の動作を確認します。

  • ●アクセスログ確認コマンド発行
tail -f /var/log/redmine/access.log
# 自分の環境(設定したアクセスログ)に合わせます。
  • ●エラーログ確認コマンド発行

※別ターミナルで開きます。

tail -f /var/log/redmine/error.log
# 自分の環境(設定したエラーログ)に合わせます。
  • ●ブラウザで以下を実施
  1. 設定したIP / NWから設定対象のWebサイトにアクセスする。
  2. 設定していないIP / NWから設定対象のWebサイトにアクセスする。
  3. 設定したIP / NWから設定対象のWebサイトにアクセスするがエラーを起こす。(404/403エラーなど)
  4. 設定していないIP / NWから設定対象のWebサイトにアクセスするがエラーを起こす。(404/403エラーなど)

その間、以下をターミナルで開いたアクセスログ/エラーログで確認できれば設定は完了です。

  1. 設定したIP / NWからのアクセスログが出ないこと。
  2. 設定していないIP / NWからのアクセスログが出ること。
  3. 設定したIP / NWからのエラーログが出ること。
  4. 設定していないIP / NWからのエラーログが出ること。

続・Redmineのファイルサーバ化。(2023年2月現在に合わせた対応方法)-脆弱性についての追記あり-

概要

こちらの記事より月日が経過。バージョンアップとWindows11のセキュリティポリシー厳格化により、WebDAVサービスが使えなくなってしまいました。

そのため、2023年2月現在に合わせ:

  1. Redmine 4.2でも動く環境でのインストール手順
  2. Redmine本体の設定を修正する手順
  3. Windows 11でのWebDAVを有効にする手順

をそれぞれ追加しました。

注意事項

※注意事項※

2024/05/29現在、 Redmine 4.2に対応しているバージョンのDMSFプラグインはパストラバーサルの脆弱性があります。

https://jvn.jp/jp/JVN22182715/index.html

当該プラグインを有効にしている場合、Redmineにログインしているユーザーによって、Redmineの実行権限で可能な範囲で、サーバー上の任意のファイルを取得されたり削除されたりする可能性があります。

  • 複数ユーザーの利用を想定している場合は、Redmine全体のバージョンアップや当該プラグインの廃止を視野に入れてください。

備考

  • この作業、下手すればRedmine全体が使えなくなる作業です。(実際にRedmineが使えなくなりました)
  • そのため、DBのバックアップとリストアによる切り戻し手順も込みです。
  • そもそも:WebDAVを有効化するかどうかは組織のセキュリティポリシーに関わる問題です。有効化すべきか否かは事前に了承を取ってください。

プラグイン名

動作を確認した環境

  • Redmine 4.2
  • mysql Ver 8.0.31
  • Windows 11 (WebDav設定)

WebDAV接続の前提

  • Redmineがhttps化されていること。
  • 証明書をWindowsにインポートしていること。

導入時

  • 追加パッケージのインストール:要
  • 設定ファイルの修正:要
  • Gem追加:要
  • DBマイグレーション:要
  • Windows設定:要 (WebDAV接続をする場合のみ)

実施した手順

さっくりとならなかった手順

  1. 念のためDBバックアップ
  2. SSHログイン後、追加パッケージをインストール
  3. 設定ファイルの書き換え
  4. Redmineプラグインに移動
  5. gitでレポジトリをダウンロード
  6. 新規ジェムをインストール
  7. DBマイグレーション
  8. Webサービス再起動
  9. Redmine設定変更
  10. WebDAVサービス有効化(Windows作業)
  11. 切り戻し手順(それでも失敗した場合)

バックアップ取得

mysqldumpによるバックアップ

cd /hoge
# 任意のバックアップディレクトリに移動します

mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
# それぞれ -h ホスト名 -u redmine -p ユーザ オプション db名です。
# パスワードはredmineインストール時に設定したDBユーザのものです

環境が許すなら、AWSのようにシステム全体のバックアップを取った方が後腐れがありません。

動作に必要な追加パッケージのインストールと設定

追加パッケージをインストールします。

sudo aptitude install xapian-omega ruby-xapian libxapian-dev poppler-utils antiword  unzip catdoc libwpd-tools libwps-tools gzip unrtf catdvi djview djview3 uuid uuid-dev xz-utils libemail-outlook-message-perl

Redmineコンフィグファイルの修正

ディレクトリに移動します。

cd /home/www-data/redmine/config/
# 自分の環境に合わせます。

additional_environment.rbの作成(この作業をしていないなら必要です)

cp -pi additional_environment.rb.example additional_environment.rb

addtional_environment.rbの追記

  • 配置ディレクトリは自分の環境に合わせます。
cat <<- __EOF__ | sudo tee -a /home/www-data/redmine/config/additional_environment.rb
# Redmine DMSF's WebDAV
require File.dirname(__FILE__) + '/plugins/redmine_dmsf/lib/redmine_dmsf/webdav/custom_middleware'
config.middleware.insert_before ActionDispatch::Cookies, RedmineDmsf::Webdav::CustomMiddleware
__EOF__

プラグインのインストール

プラグインを配置します。

  • リリースノートによれば、Redmine 4.2に対応しているバージョンはv3.0.5です。
cd /hoge && owd
# 任意の作業ディレクトリに移動し、そのディレクトリにいることを確認します。

wget https://github.com/danmunn/redmine_dmsf/archive/refs/tags/v3.0.5.zip

unzip v3.0.5.zip

sudo chown -R www-data:www-data redmine_dmsf-3.0.5

sudo mv redmine_dmsf-3.0.5/ /home/www-data/redmine/plugins/redmine_dmsf
# 移動先のディレクトリは自分の環境のプラグインは一ディレクトリです。
# ディレクトリ名から-3.0.5を取り除くのを忘れないでください。

ls -ld /home/www-data/redmine/plugins/redmine_dmsf
# このディレクトリがあることを確認します

Gemをインストールします。

cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle install

DBのマイグレーションを行います。

cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再起動します。

sudo systemctl restart apache2

Redmine設定変更

WebDAV有効化

  1. Redmineに管理者アカウントでログインします。
  2. 管理>プラグイン>DMSFの「設定」をクリックします。
  3. 以下のように修正します。
  4. WebDAV:有効 (デフォルト)
  5. WebDavアクセス制御:読み書き可能
  6. 任意のプロジェクトに移動します。
  7. 「設定」をクリックし、「文書管理」にチェックを入れます。
  8. また、Redmine管理画面の「ロールと権限設定」で、ユーザのアクセス権を忘れないようにしてください。(「文書管理」のセクションです)

Windows : WebDAVサービス有効化

  1. Windows 11のスタート画面からwindows featuresと入力。Windowsの機能の有効化または無効化を起動します。
  2. SMB 1.0/CIFS ファイル共有のサポート全てにチェックを入れます。
  3. OKをクリックして再起動します。

多分必要な作業 - 証明書のインポート

Redmineの証明書をWindowsにインポートしておきます。

接続確認

  1. エクスプローラーを開きます。
  2. PCに移動し、右クリックから「ネットワークの場所を追加する」をクリックします。
  3. 次へ > カスタムネットワークの場所を選択 >次へと進みます。
  4. 「インターネットまたはネットワークのアドレスは以下のように指定します。
  5. https://[ドメイン名]/dmsf/webdav/[プロジェクト識別子]
  6. 「次へ」をクリック後、資格情報を確認されるので、Redmineのアカウントを入力します。
  7. エクスプローラーウィンドウが表示され、ファイルの読み書きができれば設定完了です。

おまけ:切り戻し手順

この作業、バージョン変更や設定ミスで軽くRedmine全体が機能不全に陥ります。そのため、切り戻し手順を記しておきます。

通常の切り戻し

ディレクトリ移動

cd /home/www-data/redmine/plugins && pwd
# 自分の環境に合わせます。

プラグインアンインストール

sudo -u rake redmine:plugins:migrate NAME=redmine_dmsf VERSION=0 RAILS_ENV=production

ディレクトリ削除

sudo rm plugins/redmine_dmsf -Rf

Webサービス再起動

sudo systemctl restart apache2.service

それでもダメだった時の切り戻し(DBリストア)

cd /hoge
# mysqldumpを行ったディレクトリ

mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql
# パスワードはredmineインストール時に設定したDBユーザのものです

sudo systemctl restart apache2.service

AWS LightsailにSwap領域を確保。(Ubuntuでの設定)

概要

筆者が用いているAWS Lightsail。自動起動サービスやWebサービスの追加のためメモリが心許なくなりました。

インスタンスの底上げを図る前にいったんSwap領域を確保して、メモリの枯渇に備えます。

環境

  • Ubuntu 20.04
  • 2GBメモリ/60GBディスクのインスタンスを利用

実施した手順

さっくりとした手順

  1. 現在のメモリとディスク容量を確認します。
  2. Swap領域を確保します。
  3. 確保したSwap領域を有効化します。
  4. Swap領域が増えたことを確認します。
  5. fstabを修正します。
  6. fstab修正後にシステムを再起動し、Swap領域有効化を確認します。

作業の前に

ディスク起動時のオプションなど、特に重要なシステム領域の設定ファイルを修正する作業です。
失敗時に復旧できるようシステム全体のバックアップを取ることを強く推奨します。

現在のメモリ情報を確認

free -h
# -hオプションは(human readableの略だそうです)
  • ○実行結果
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       1.6Gi       114Mi        58Mi       209Mi       109Mi
Swap:            0B          0B          0B

Swapが全く作成されていません。

現在のディスク容量の確認

df -h
  • ○実行結果
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  7.6G   51G  13% /
(後略)

まだ容量的に問題なさそうなので、2GBのディスク領域をSwapとして割り当てます。

Swap領域の確保

sudo fallocate -l 2G /swap

ls -ldh /swap
# 指定ディレクトリに2GBのファイルがあることを確認します

Swapの有効化

  • ★/swapのパーミッション変更
sudo chmod 600 /swap

ls -ldh /swap
# rootのみが読み書き可能なことを確認します
  • ★/swapの設定
sudo mkswap /swap
  • ○実行結果
スワップ空間バージョン 1 を設定します。サイズ = 2 GiB (2147479552 バイト)
ラベルはありません, UUID=f6d01f7d-6a48-45e9-a483-5757ec47cd8e
  • ★/swapの有効化
sudo swapon /swap

Swap有効化確認

free -h
  • ○実行結果
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       1.2Gi       430Mi        58Mi       283Mi       499Mi
Swap:         2.0Gi          0B       2.0Gi

2GBのSwap領域が確保されました。まずは一安心です。

fstab設定

  • ★/etc/fstabのバックアップ
sudo cp -pi /etc/fstab /path/to/backup/directory/fstab.$(date +%Y%m%d)

diff -u /etc/fstab /path/to/backup/directory/fstab.$(date +%Y%m%d)
# 差分が無いことでバックアップが取れていることを確認します。
  • ★/etc/fstab追記
cat <<- __EOF__ | sudo tee -a /etc/fstab
/swap none swap sw 0 0
__EOF__
  • ○差分確認
diff -u /path/to/backup/directory/fstab.$(date +%Y%m%d) /etc/fstab
  • ●差分
+/swap none swap sw 0 0

再起動後の修正確認

  • ★システム再起動
sudo reboot
  • ★再起動後の確認

以下が確認できれば作業完了です。

  1. サーバにログインできること
  2. Webサービスなど既存システムが設定前と同様に稼働すること
  3. free -h を実行し、Swap領域が確保されていること

Redmine4.2でredmien_tags→redmine_additonal_tagsへのアップグレード。(メンテナ変更)

概要

Redmineのチケット管理に大いに役立てているタグプラグイン。ひっそりとサービス終了していたので、その後継に置き換えます。

プラグイン名

動作を確認した環境

Redmine 4.2

前提:

  • 稼働要件にadditonalsプラグインが必要です。(インストール方法)
  • additonalプラグインと同様に、2023年1月現在のバージョンはRedmine5.xから対応しているため、作業に少し手間が加わります。
  • 既にredmine_tags (https://github.com/ixti/redmine_tags/) を導入している場合は、以下に示す手順によって設定済みのタグをインポートできます。

導入時

Gem追加:要
DBマイグレーション:要

手順

Redmine_Tagsを導入済みの場合は、バックアップを取り、失敗時に復旧できる準備をすることを強く推奨します。

さっくりとした手順

  1. SSHログイン後、作業ディレクトリに移動
  2. wgetでRedmine4.2に即したパッケージをダウンロード
  3. パッケージの配置
  4. 旧プラグインのディレクトリ削除
  5. 新規ジェムをインストール
  6. DBマイグレーション
  7. Webサービス再起動

Redmine4.2に即したバージョンをダウンロードして展開します。

wget https://github.com/AlphaNodes/additional_tags/archive/refs/tags/1.0.4.zip
# リリースノートで、Redmine 4.2に対応したバージョンがこれでした

unzip 1.0.4.zip

sudo chown -R www-data:www-data additional_tags-1.0.4/
# apache / nginxの実行ユーザに所有者を合わせます

Redmineディレクトリにプログラムを配置します。

sudo mv  additional_tags-1.0.4 /home/www-data/redmine/plugins/additional_tags
# 自分の環境に合わせます。また、ディレクトリ名からバージョン名を外すのを忘れないようにしてください

インストール済みのRedmine_Tagsディレクトリを削除します。

※新規インストールの場合はこの作業は不要です

cd /home/www-data/redmine/plugins
# 自分の環境に合わせます。

ls -ld additional_tags redmine_tags
#2つのディレクトリがあることを確認します

sudo rm -rf redmine_tags

ls -ld additional_tags redmine_tags
#additonal_tagsのみがあることを確認します

Gemをインストールします

cd /home/www-data/redmine/
# 自分の環境に合わせます。

sudo -u www-data bundle install

DBのマイグレーションを行います

cd /home/www-data/redmine/
# 自分の環境に合わせます。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再起動します。

sudo systemctl restart apache2

インストール後の動作

  1. Redmineに管理者アカウントでログインします。
  2. 管理に移動すると、「Tags」メニューが追加されているのでクリックして移動します。
  3. 以下の設定を行います。
    • サイトバーにタグを:シンプルなクラウド
    • タグに金額を表示(※Totalがこう和訳されています):チェック
    • 課題タグを有効にする:チェック
  4. Redmine_tagから移行している場合は、「タグの管理」タブで記載されたタグがあることを確認します。

Redmine4.2にAdditionalプラグインをインストール。

概要

Redmineにかなり強力なmacroを付与するプラグイン:additionalsをインストールします。

プラグイン名

Additionals

https://www.redmine.org/plugins/additionals

前提

2023年1月現在のバージョンはRedmine 5.xから対応しているため、今利用しているRedmine4.2で動かすためには少し作業が必要です。

動作を確認した環境

Redmine 4.2

導入時

Gem追加:要
DBマイグレーション:要

手順

さっくりとした手順

  1. SSHログイン後、作業ディレクトリに移動
  2. wgetでRedmine4.2に即したパッケージをダウンロード
  3. パッケージの配置
  4. 新規ジェムをインストール
  5. DBマイグレーション
  6. Webサービス再起動

作業用ディレクトリに移動します。

cd /hoge
# 任意のディレクトリに移動します

Redmine4.2に即したバージョンをダウンロードして展開します。

wget https://github.com/AlphaNodes/additionals/archive/refs/tags/3.0.5.2.zip
# リリースノートで、Redmine 4.2に対応したバージョンがこれでした

unzip 3.0.5.2.zip

sudo chown -R www-data:www-data additionals-3.0.5.2
# apache / nginxの実行ユーザに所有者を合わせます

Redmineディレクトリにプログラムを配置します。

sudo mv additionals-3.0.5.2 /var/lib/redmine/plugins/additionals
# 自分の環境に合わせます。また、ディレクトリ名からバージョン名を外すのを忘れないようにしてください

Gemをインストールします。

cd /var/lib/redmine/
# 自分の環境に合わせます。

sudo -u www-data bundle install

DBのマイグレーションを行います

cd /var/lib/redmine/
# 自分の環境に合わせます。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再起動します。

sudo systemctl restart apache2

動作

  1. Redmineに管理者アカウントでログインします。
  2. 管理に「Additionals」が加わっていればインストールされています。

「Additionals」の名前は伊達ではなく、有用なマクロが加わっているという印象です。どういう使い方ができるかは要検証です。

続・アクセス解析システム:matomoとRedmineの連携。(View Customize Plugin対応版)

概要

こちらの「matomoとRedmineの連携」にて「view_customize_pluginで設定がうまくいなかった」件について、Redmine_jpの代表様から直々のコメントをいただきました。

View Customizeプラグインでのトラッキングコード挿入がうまくいかなかった件、matomoで生成したトラッキングコードから と の計2行を削除するとうまくいきそうな気がします。

アクセス解析システムmatomoとredmineの連携。コメント

これを元に設定を行いました。

実施した手順

さっくりとした手順

  1. SSHクライアントからベースファイルの切り戻しを行います。
  2. RedmineのWeb画面「表示のカスタマイズ」から再設定を行います。
  3. matomo管理画面からアクセス解析が有効であることを確認します。

前提

  • Redmine上にview_customize_pluginが導入済みであること。
  • ウェブ解析システムmatomoが導入済みであり、対象Redmineのトラッキングコードを控えていること。

Redmineサーバで実施する作業

ベースファイルのバックアップから切り戻しを行います。

sudo cp -pi /path/to/backup/directory/base.html.erb.$(date +%Y%m%d --date '1 Day ago') /var/lib/redmine/app/views/layouts/base.html.erb
# 変数「date」でバックアップを取っているので、作業した日付に修正します
# 2日前なら'2 Days ago'、1週間前なら'1 Week ago'、3年前なら'3 Years ago'など応用が利きます

diff -u /path/to/backup/directory/base.html.erb.$(date +%Y%m%d --date '1 Day ago') /var/lib/redmine/app/views/layouts/base.html.erb
# バックアップと差分がないことで切り戻しを確認します

切り戻し後にWebサービスの再起動を行います。

sudo systemctl restart apache2.service

aystemctl status apache2.service

# 自分が使っているWebサービスに合わせます

Redmine管理画面で実施する作業

Redmineに管理者アカウントでログインします。

  1. 管理>表示のカスタマイズに進みます。
  2. 「新しい表示のカスタマイズ」をクリックします。

トラッキングコードを設定します。

  • パスのパターン:空白
  • プロジェクトのパターン:空白
  • 挿入位置:全ページのヘッダ
  • 種別:JavaScript
  • コード:matomoで提示されたトラッキングコードから、「上部の<script>と下部の </script>を外したコード

設定後、「有効」にチェックを入れ「保存」をクリックします。

保存後、Redmineサイト内のページをいくつか表示させます。

Web解析システムmatomoで実施する作業

解析対象のRedmineで解析されていることを確認します。

今回の学び

  • ダメだった手順を載せることに意義がありました。
  • ソース修正の時に「ヘッダを確認する」のところで、「view_customize_pluginで設定済みの他のヘッダ」を確認すべきでした。そうすれば、設定の誤りに気づくことができました。

アクセス解析システム:matomoとRedmineの連携。

概要

構築を行ったmatomo。Redmineでアクセス解析ができるように設定をしていきます。

前提

以下の環境で動作を確認しています。

  • Redmine 4.2
  • Matomo 4.13.1

手順

さっくりとした手順

以下、SSHクライアントで実施する作業です

  1. Redmineのベースファイルにトラッキングコードを追記します。
  2. Webサービスを再起動します。

※既存システムに変更を加えるため、設定ファイルのバックアップは必須です※

matomo 管理画面で実施する作業

matomoのWebサイトを構築/初期設定後、以下のようなJavaScriptトラッキングコードが表示されます。

<!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
 スクリプト
  })();
</script>
<!-- End Matomo Code -->

これを控えておきます。

Redmine稼働サーバで実施する作業

ベースファイルのバックアップを取ります。

sudo cp -pi /var/lib/redmine/app/views/layouts/base.html.erb /path/to/backup/directory/base.html.erb.$(date +%Y%m%d)

diff -u /var/lib/redmine/app/views/layouts/base.html.erb /path/to/backup/directory/base.html.erb.$(date +%Y%m%d)
# 差分が無いことでバックアップが取れていることを確認します。

ベースファイルにトラッキングコードを挿入します。

sudo vi /var/lib/redmine/app/views/layouts/base.html.erb

追記内容と位置

<!-- page specific tags -->
# この直下に、matomoが提供したトラッキングコードを貼り付け
<!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
 スクリプト
  })();
</script>
<!-- End Matomo Code -->
<%= yield :header_tags -%>
</head>

保存後、差分を確認します。

diff -u /path/to/backup/directory/base.html.erb.$(date +%Y%m%d) /var/lib/redmine/app/views/layouts/base.html.erb 
 <!-- page specific tags -->
+<!-- Matomo -->
+<script>
+  matomoが提供したトラッキングコード
+  })();
+</script>
+<!-- End Matomo Code -->
 <%= yield :header_tags -%>
 </head>

設定を反映します。

sudo systemctl restart apache2.service

aystemctl status apache2.service

# 自分が使っているWebサービスに合わせます

設定反映確認

  1. 設定を行ったRedmineサイトに数回アクセスをします。
  2. ページのソースを確認し、ヘッダ部分に追記したスクリプトがあることを確認します。
  3. matomo Web画面でアクセス解析が表示されていることを確認します。

以上で、設定は完了です。

おまけ

この手のJavaScriptを入れるため、格好のプラグイン「view_customize_plugin」を使えばSSHで作業する必要は無かったと思いますが、筆者の知見不足でその設定はうまくいきませんでした。

やってダメだった設定

  1. Redmineに管理者権限でログインします。
  2. 管理>表示のカスタマイズに移動します。
  3. 新しい表示のカスタマイズをクリックします。

以下の設定を行いました。

  • パスのパターン:空白
  • プロジェクトのパターン:空白
  • 挿入位置:全ページのヘッダ
  • 種別:JavaScript
  • コード: matomoが提供したトラッキングコード

その後、作成をクリックするもヘッダに

})();

と追加されるのみでした。

Page 36 of 85

Powered by WordPress & Theme by Anders Norén