投稿者: manualmaton Page 84 of 255

洗浄と、再詰め替え。(プレピー with コンバータ)

作業を実施した背景

とても安価なのに書き味がよく、コンバータと組み合わせることで様々なインクを入れることができる万年筆「プレピー」。

シールキャップによりインクの持ちが良かったのが(自分にとって)徒となりました。

インク、何を入れたのか問題

調子に乗って本数を増やし、その場のノリでインクを詰めていたので、いざ、インクを補充する時に

「これ、何色を詰めたっけ」

という疑問が湧き起こります。特に、青系のインクは似通っていたので更に迷いました。

解決策

そこで、ほとんどのプレピーのインクが尽きたタイミングを見計らって

  1. 全てのプレピーを分解洗浄し
  2. 乾燥し
  3. インクを再詰め替え
  4. その際にしっかりと記録を行う

でした。

作業開始に当たって

分解洗浄後、1週間ほど乾燥させるので作業忘れを懸念。そこで、Redmineでチケットを発行。早速の作業を開始です。

インクを抜きつつ水洗い

水を入れた容器に浸しつつ、インクを抜いては水をコンバータ内に入れて洗っていきます。定期的に水を交換し、インクの水色がなくなるまで繰り返します。

超音波洗浄

全てのパーツを分解。
更に超音波洗浄器に入れてこびりついたインクを抜きます。全部で9本あったのでここが一番時間がかかりました。

乾燥

入念に乾燥。ほぼ1週間をかけました。これで、ようやく準備が整います。

インクの再定義

同じ轍を踏まないように、以下、何を詰めたかの記録を行ってからインクを詰めます。

万年筆ボディインク色備考
プレピー黒(0.3mm)霧雨蜂のシール
プレピー黒(0.2mm)竹炭
プレピー黒(0.2mm)LAMY黒インクマステ
プレピー黄色(0.3mm)蛍火
プレピー紫(0.3mm)写楽黒茶
プレピー緑(0.3mm)竹林
プレピー赤(0.3mm)歌麿梅紫
プレピーピンク(0.3mm)秋桜
プレピー青(0.3mm)深海

こうしてできあがったのがこちら。

こういう洗浄は他にも定期的に行いたいものです。

また、こういう風にいくつかのステップがある作業をRedmineのチケットに残すことの重要さを改めて思い知りました。

https://atelier.reisalin.com/issues/13

Redmineの細かな用語を変更。(message_customizeプラグイン導入)

概要

細かな用語を変更してくれるプラグインを導入します。

プラグイン名

動作を確認した環境

Redmine 4.2

導入時

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

手順

さっくりとした手順

  1. SSHログイン後、Redmineプラグインに移動
  2. gitでレポジトリをダウンロード
  3. Webサービス再起動

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

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

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

sudo -u www-data git clone https://github.com/farend/redmine_message_customize

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

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

sudo systemctl restart apache2

設定後の動作

  1. Redmineに管理者アカウントでログインします。
  2. 管理>メッセージのカスタマイズが表示されればインストールできています。

設定例

例として、additional_tagsプラグインに表示されている誤訳を変更しようと思います。

  1. Redmineに管理者アカウントでログインします。
  2. メッセージのカスタマイズをクリックします。

ここから、「金額」と入力します。

「label_amount_tags」を選択します。

「金額 tags」と表示されるので、「タグ総数」と変更してみます。

変更後に保存をクリックします。

保存後、該当箇所を表示します。

表示が変更されることを確認しました。

他の項目も同様に修正します。

動作確認日

2023/02/10

Redmineのファイル一式の日次バックアップ。(復旧方法込みのシェルスクリプト作成)

概要

Redmineのメンテナンスの中で重要となるDBのバックアップは記載しました。

ここでは、それ以外のファイル一式をバックアップするスクリプトを作成することで不測の事態に備えます。

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

基本的に、以下のファイル群が残っていれば復旧は(理論上)可能です。

  • /Redmine格納ディレクトリ/plugins配下一式
  • /Redmine格納ディレクトリ/files配下一式
  • /Redmine格納ディレクトリ/public/themes配下一式
  • /Redmine格納ディレクトリ/config/database.yml
  • /Redmine格納ディレクトリ/config/configuration.yml (メール設定などで設定している場合)
  • /Redmine格納ディレクトリ/config/additional_environment.rb (プラグインなどで追記している場合)

本記事で扱うこと

  1. 先に述べたバックアップ対象となるファイル群の定期バックアップを行うシェルスクリプトを作成します。
  2. バックアップ時、パスワードが書かれているコンフィグに関してはその箇所をマスクします。(これもスクリプトに組み込みます)
  3. 動作を確認し、cronに設定して日次でバックアップを行います。

動作を確認した環境

  • Ubuntu 20.04 LTS
  • Redmine 4.2

実施前提

  • 利用しているRedmine環境の容量を確認し、バックアップ先に十分な空き容量があることを確認してください。
  • 本スクリプトは「全てのデータを一時的なバックアップディレクトリにコピーした上で圧縮し、そのディレクトリは削除する」処理を取っています。その容量も加味してください。
  • バックアップ元(Redmine格納ディレクトリ)の所有者が全てRedmine実行ユーザ(通例はwww-data)となっていることを確認してください。
  • また、本記事において、Redmineの格納ディレクトリは/home/www-data/redmineと一般的な構成と異なっております。

確認した手順

  • Redmineが稼働しているUbuntuサーバのターミナル上での操作です。

さっくりとした手順

  1. バックアップディレクトリを作成します。
  2. バックアップスクリプトを作成します。(環境に合わせて修正します)
  3. crontabに登録します。

バックアップディレクトリ作成

sudo mkdir -p /home/backup/redmine
# 運用に合わせて指定ください

sudo chown -R www-data:www-data /home/backup/redmine
# Redmineディレクトリの所有者に設定します

cd /home/backup/redmine && pwd
# 指定したディレクトリに移動します

リストア方法のテキストファイル作成

バックアップから切り戻すとき、作業者はかなり焦るものです。そこで、簡単な手順をバックアップファイル一式に配置しておけばスムーズな復旧を行うことができます。

以下の内容を教義・信仰に沿ったエディタで作成します。(ここでは筆者が用いているテキスト内容です。必要に応じて修正してください)

  • テキスト内容
    • テキスト名:how_to_restore.md
    • テキストの所有者はスクリプトの実行者と同じ(またはroot)である必要があります。
    • 上記、設定したディレクトリと同じ場所に作成します。
# Redmine復旧方法

## 前提環境

- Ubuntu 20.04系サーバ
- MySQL 8.3以上
- Apache 2.4系
- Redmineの実行ユーザはデフォルトのwww-data

## 【リストア/移行方法】

### 移行先にRedmineを作成

1. 新たにRedmineサイトを立ち上げます。(移行元と移行先のバージョンは合わせます)
2. リストア先/移行先のdb名/dbユーザはバックアップ元と同じにします。
3. バックアップされたdatabase.ymlを /redmine/config/配下に上書きます。dbパスワードを設定してください。
4. この状態で、Redmineのデータマイグレーションまで行います。

### バックアップされたファイル一式の再配置

- files/ディレクトリ一式は /redmine/配下に上書きしてください。
- plugins/ディレクトリ一式は /redmine/配下に上書きしてください。
- themesディレクトリ一式は /redmine/public/配下に格納してください。
- configuration.yml : (あるなら)/redmine/config/配下に上書き。メールパスワードを設定してください。
- additional_environment.rb : (あるなら)/redmine/config/配下に上書きします。

※ それぞれのディレクトリ/ファイルの所有者を「www-data」にします。

sudo chown -R www-data:www-data /redmine格納ディレクトリ/
> 例 sudo chown -R www-data:www-data /var/lib/redmine

### プラグインのDBマイグレーション

1. redmineを配置したディレクトリに移動します。(例; cd /var/lib/redmine/
2. 以下のコマンドを発行して、プラグインのマイグレーションを行います。

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

### プラグインマイグレーション後のApache再起動

1. 以下を実施してWebサービスを再起動します。
sudo systemctl restart apache2.service

### DBのリストア

1. 別途、バックアップしたRedmineのsqlファイルを移行先サーバの任意のディレクトリに転送します。
2. 以下のコマンドを発行して、DBをリストアします。

mysql -u redmineのdbユーザ -p redmineのdb名 < バックアップしたsql
> 例  mysql -u redmine -p redmine < redmine_backup

### DBリストア後のApache再起動

1. 以下を実施してWebサービスを再起動します。

sudo systemctl restart apache2.service

### 動作確認

移行先(または復旧した)Redmineのホストにブラウザでアクセスし、バックアップした時の状態になっているかを確認します。

スクリプト作成

以下の内容を教義・信仰に沿ったエディタで作成します。

  • スクリプト内容
    • スクリプト名:redmine_daily_backup.sh
    • 実行ユーザ:Redmineの所有者 (通例はwww-dataです)、またはroot
#!/bin/bash

### ▼ここからはスクリプトの変数を定義します。""の記述は自身の環境に合わせて修正ください。▼ ###
# バックアップ先のディレクトリを指定します。
backup_dir="/home/backup/redmine"
# バックアップ元のRedmineが格納されているディレクトリを指定します。
redmine_dir="/home/www-data/redmine"
# ファイルに付与する日付/作業ディレクトリ名/バックアップファイル名を指定します。
current_date=$(date +%Y%m%d)
backup_name="redmine_backup_${current_date}"
zip_file="redmine_backup.${current_date}.zip"
# 保存する日数を指定します。(ここでは3日にします。)
retention_period=3
### ▲変数はここまでです▲ ###

# 一時的なバックアップディレクトリを作成します。
mkdir "${backup_dir}/${backup_name}"

# # Redmineのユーザデータ/プラグイン/テーマをバックアップディレクトリにコピーします。

cp -R "${redmine_dir}/plugins" "${backup_dir}/${backup_name}"
cp -R "${redmine_dir}/files" "${backup_dir}/${backup_name}"
cp -R "${redmine_dir}/public/themes" "${backup_dir}/${backup_name}"

# マイグレーション時に必要となるdatabase.ymlをコピーします。この時、パスワードが書かれている行をマスクします。
cp $redmine_dir/config/database.yml $backup_name
sed -i 's/password:.*/password: "type your db password"/' $backup_name/database.yml

# メール設定などでconfiguration.ymlを設定している場合、これもコピーします。(存在しない場合はコピーしません)
# 同様にパスワードが書かれていたらその行はマスクします。
if [ -f $redmine_dir/config/configuration.yml ]; then
  cp $redmine_dir/config/configuration.yml $backup_name
  sed -i 's/password:.*/password: "type your password"/' $backup_name/configuration.yml
fi

# プラグイン設定などでadditional_environment.rbを設定している場合、これもコピーします。(存在しない場合はコピーしません)
if [ -f $redmine_dir/config/additional_environment.rb ]; then
  cp $redmine_dir/config/additional_environment.rb $backup_name
fi

# スクリプトと同じディレクトリにあるhow_to_restore.txtをバックアップディレクトリに流し込みます。(存在しない場合はコピーしません)
if [ -f $backup_dir/how_to_restore.txt ]; then
  cp $backup_dir/how_to_restore.txt $backup_name/how_to_restore.md
fi

# バックアップディレクトリをzip形式で圧縮します。
cd "${backup_dir}"
zip -r "${zip_file}" "${backup_name}"

# 一時的なバックアップディレクトリを削除します。
rm -rf "${backup_dir}/${backup_name}"

# 上記retention_periodで指定した日数前のバックアップしたzipファイルを削除します。
find "${backup_dir}" -type f -name "redmine_backup.*.zip" -mtime +"${retention_period}" -delete
  • 実行権限の付与
chmod +x redmine_daily_backup.sh

動作確認

sudo -u www-data bash redmine_daily_backup.sh
# 管理者権限で実行する場合は sudo bash redmine_daily_backup.sh

以下を確認します。

  • エラーなく実行できること
  • redmine_backup.実行日付.zip形式でファイルが作成されること
  • sudo -u www-data unzip redmine_backup.実行日付.zipでファイルが解凍されディレクトリに移動できること
  • ymlファイルのパスワードが「type your (db) password」と本来のパスワードが上書きされていること
  • 設定したhow_to_restore.mdが回答したディレクトリの中にあり、参照できること

Crontab設定

Cron登録

sudo crontab -e -u www-data
# 管理者が実行する場合は sudo crontab -e -u root

登録内容例

5 0 * * * /home/backup/redmine/redmine_daily_backup.sh
# 実行時刻、頻度などは自分の運用形態に合わせます。

Cron登録確認

sudo tail -20 /var/log/cron.log

操作時刻に

  • BEGIN EDIT
  • REPLACE
  • END EDIT

が表示されれば設定は完了です。

動作確認日

2023/02/08

検証:Ubuntu 20.04にRedmine 5.0のインストールと4.2へのダウングレード。

ふと思い立っての検証です。

あらまし

別サイトに記載しているRedmine4.2のインストール手順。

https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/19

この手順で「Redmine 5.0を設定できるか?」と思い立ち、検証用のまっさらなUbuntu 20.04を用意しました。

前提

以下を設定しています。

  • インターネット回線に接続されていること
  • ドメインで名前解決できること
  • SSH接続が可能なこと

実施手順

上記のリンクの手順に沿いました。異なっている点は、Redmine 5.0をダウンロードするため、

sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.0-stable /home/www-data/redmine

としただけです。

無事にRedmine5.0が動き、以下の参照どおりにSSLを設定。

https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/20

これで試しにと思いましたが、

プラグインとの兼ね合い

「どうしても使いたいプラグインがRedmine 5.0に対応していない」事情により継続利用は無理だと断念。特に

  • knowlegebase
  • redmine_issue_badge_plugin

の2つが利用できないのは非常に痛い状況でした。

Redmine 5.0→4.2へのダウングレード

そこで、インストールしたばかりのRedmine5.0を4.2に即座に戻すことにします。

注意点

この手順は、データが全く入っていない状況で可能な作業です。「こんな手法を採ったのがいる」程度に参照ください。

前提

  • 上記手順を元にRedmine 5.0がインストールされ
  • なおかつデータが何も入っていない
  • RedmineのDB名は「redmine」
  • apache2設定ファイルは稼働済み

さっくりとした手順

  1. apache2サービスを落とします。
  2. データベースをまるごと削除します。
  3. 同じ名前でDBを再作成します。
  4. プログラムを再配置します。
  5. apache2サービスを起動します。

apache2サービス停止

sudo systemctl stop apache2.service
#これを行わないと後述のDBが消去できません

mysqlでDBを再作成します。

sudo mysql -u root -p
DROP DATABASE redmine;
# DBを削除します

CREATE DATABASE redmine character set utf8mb4;
# DB "redmine" を再作成します

exit

Redmineプログラムを再配置します。

sudo rm -rf /home/www-data/redmine
# Redmineを配置したディレクトリごと削除します

sudo -u www-data svn co https://svn.redmine.org/redmine/branches/4.2-stable /home/www-data/redmine
# 設定したときと同じディレクトリに4.2を再配置します

Redmineのコンフィグを設定します。

sudo cp -pi /home/www-data/redmine/config/database.yml.example /home/www-data/redmine/config/database.yml

sudo vi /home/www-data/redmine/config/database.yml
# 教義・信仰に従ったエディタで編集してください。

database.yml 編集内容

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  # rootからredmineに変更します
  password: "redmine用のパスワード"
  encoding: utf8mb4
# 本番環境(production)のみ設定を行います

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

cd /home/www-data/redmine/ && pwd
# /home/www-data/redmine/ (Redmineを配置したディレクトリ)であることを確認します

sudo -u www-data bundle install --without development test --path vendor/bundle

sudo -u www-data bundle exec rake generate_secret_token

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

sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

apache2サービスを起動します

すでにapache上でRedmineを動かす手はずは整っており、プログラムの実行ディレクトリも同じ。ならば、設定ファイルは修正せずに済むという判断のもとに実行。

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

sudo systemctl restart apache2.service

systemctl status apache2.service

サイトの表示を確認します。

http://設定したRedmineドメイン

でRedmineのトップページが表示されれば成功です。

検証段階だからこそ行えた手荒な手段でした。

MySQLの定期バックアップ、現状の運用に修正。

こちらの記事を2023年2月時点での運用に併せ、以下、修正しました。

概要

Redmineのメンテナンスの中で、「データベースのバックアップ」は非常に重要なものです。

そこで、改めて、シェルスクリプトとCronによるバックアップ手順を整理しました。

動作を確認した環境

  • Ubuntu 20.04 LTS
  • Redmine 4.2
  • MySQL 8.0.32

実施前提

  • MySQLに管理者権限でログインできること。
  • Redmine用のDBとDBユーザ、DBパスワードを把握していること。
  • また、DBサーバはローカルホストです。

確認した手順

  • Redmineが稼働しているUbuntuサーバのターミナル上での操作です。
  • MySQL以外は全て一般権限で実行します。

さっくりとした手順

  1. Redmineのデータベースユーザに権限を付与します。
  2. バックアップディレクトリを作成します。
  3. アカウントファイルを作成します。
  4. バックアップスクリプトを作成します。
  5. crontabに登録します。

データベース設定

管理者権限でMySQLにログインします。

mysql -u root -p

データベースのユーザ権限を変更します。

これを行わないとDump処理ができませんでした。

GRANT RELOAD ON *.* TO '【RedmineのDBユーザ】'@'localhost';
FLUSH PRIVILEGES;
EXIT

ディレクトリとスクリプト作成

バックアップディレクトリ作成

sudo mkdir -p /home/backup/mysql
# 運用に合わせて指定ください。ファイルサーバや別パーティションにマウントしている方がサーバ事態の障害発生でも冗長化を持たせられます。

sudo chown -R hoge:hoge /home/backup/mysql
# ディレクトリの所有者をログインユーザに修正します

cd /home/backup/mysql && pwd
# 指定したディレクトリに移動します

アカウントファイル作成

※このファイルを作成しないと、「安全ではない」とエラーが出ます。

以下の内容を教義・信仰に沿ったエディタで作成します。(【】内は取り除き、自分の設定に合わせます)

  • アカウントファイル内容
  • ファイル名:account.txt
[client]
user = 【RedmineのDBユーザ】
password = "【RedmineのDBユーザ用パスワード】"

アカウントファイルでアクセスできることを確認

mysql --defaults-extra-file=account.txt

MySQLのプロンプトが出れば成功です。exitで抜けます。

スクリプト作成

以下の内容を教義・信仰に沿ったエディタで作成します。

  • スクリプト内容
  • スクリプト名:mysql_daily_backup.sh
#!/bin/bash

# スクリプトの日付形式を定義します
date=$(date +"%Y%m%d")

# バックアップディレクトリを定義します
# 上記手順で示したディレクトリを指定してください
backup_dir="/home/backup/mysql"

# アカウントファイルを指定します
credentials_file="$backup_dir/account.txt"

# バックアップ時に指定するオプションを定義します
options="--defaults-extra-file=$credentials_file --no-tablespaces --single-transaction"

# バックアップファイル名を定義します
backup_file="$backup_dir/redmine.sql.$date.gz"

# バックアップを実行し、.gz形式でバックアップをします
mysqldump $options -h localhost redmine | gzip > $backup_file

# 10世代前の圧縮ファイルを削除します(運用に合わせて指定ください)
find $backup_dir -type f -name "redmine.sql.*.gz" -mtime +10 -delete
  • 実行権限の付与
chmod +x mysql_daily_backup.sh

動作確認

sh mysql_daily_backup.sh

以下を確認します。

  • エラーなく実行できること
  • redmine.sql.実行日付.gz形式でファイルが作成されること
  • gunzip redmine.sql.実行日付.gzでファイルが解凍できること

Crontab設定

Cron登録

crontab -e

登録内容例

0 0 * * * /home/backup/mysql/mysql_daily_backup.sh
# 実行時刻、頻度などは自分の運用形態に合わせます。

Cron登録確認

sudo tail -20 /var/log/cron.log

操作時刻に

  • BEGIN EDIT
  • REPLACE
  • END EDIT

が表示されれば設定は完了です。

動作確認日

2023/02/08

“アイコン”お迎え。

自身のSNSでのアイコンとなっているキャラクターのfigmaをひょんなことから入手しました。

figma ダージリン & オレンジペコ

この時点で誰だかわかるというのがすごいですし、これをキチッと付属品として含めた制作陣に最大限の称賛です。

また、「座り姿専用」の差し替えパーツがあるので、このソファーにもフィットです。

他のfigmaも座らせられる丁度いいサイズ。

逆に、百均グッズの家具に座らせてもバッチリ。

ボードゲームの盤面を「鑑賞」するといった体でも撮影できる、随一の汎用的なfigmaを入手できて胸が高まっています。

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からのエラーログが出ること。

Page 84 of 255

Powered by WordPress & Theme by Anders Norén