同一サーバでのRedmineバージョンアップ。(5.1.x→5.1.y)

脆弱性などに対応するため、同一系統のRedmineのバージョンアップ手順、その5.1版での書き直しです。

環境

  • Ubuntu 22.04
  • 動かしていたRedmine:5.1.1
  • Apache 2.4 / mod-passangerでRubyアプリを使用(Ruby 3.0系)
  • MySQL 8.0.3

作業に備えての前提

  • 本手順では「使用するDBの削除」を伴います。作業の際には慎重に行って下さい。
  • Webサービスを止める/何も入っていないRedmineが途中でできるため、ユーザアクセスができない状況が発生します。

作業前のチェック

以下が必須です。

  • [ ] 作業影響について、利害関係者に周知している。
  • [ ] MySQLの管理者アカウントを所持している。
  • [ ] サーバに十分な空き容量がある。
  • [ ] 「一度DBを削除する」ことについて、作業者/確認者が重要度を理解している。

さっくりとはならない手順

  1. スナップショットのバックアップ (推奨)
  2. DBのバックアップ
  3. redmineのディレクトリを一度mvでリネームしてバックアップ。
  4. apache停止
  5. redmineのDBを消す。
  6. redmineのDBを新たに作る。(ユーザは全て権限があるので問題なし)
  7. apache再開
  8. ディレクトリを再作成し、マイナーバージョンが上がったRedmineを作る。
  9. themesとpluginを再配置。
  10. themesとpluginを再配置した状態でDBマイグレーション。
  11. DBリストア。
  12. 動作確認。

システム全体のバックアップ(推奨)

万一に備え、システム全体のバックアップを取ることを推奨します。AWSや仮想サーバ等の場合は、インスタンスをまるごとバックアップしておくと良いでしょう。

mysqldumpによるDBバックアップ

  • 保存ディレクトリに移動
cd /hoge

任意のバックアップディレクトリを指定します。

mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql

DB名やDBユーザは自分の環境に合わせます。

データ退避

  • Redmineのルートディレクトリの上に移動
cd /home/www-data && pwd

Redmineが格納されているディレクトリの親ディレクトリに移動します。筆者環境は/home/www-dataなので、自分の環境に合わせます。

  • ディレクトリがあることを確認
ls -ld redmine

退避対象のディレクトリがあることを確認します。

  • リネームして退避
sudo mv redmine redmine_$(date +%Y%m%d)
  • 退避確認
ls -ld redmine_$(date +%Y%m%d)

ファイルがあることを確認します。

apache停止

ここでWebサービスを停止するのは、DBを削除するためです。

  • apache停止前確認
systemctl status apache2.service

active(running)を確認します

  • apache停止
sudo systemctl stop apache2.service
  • apache停止後確認
systemctl status apache2.service

inactive(dead)を確認します

DB削除と再作成

この作業は慎重に行って下さい。

  • 管理者権限でmysqlにログイン
sudo mysql -u root -p
  • DB確認
SHOW DATABASES;

redmineのDBがあることを確認します。

  • RedmineのDBを削除
DROP DATABASE redmine;

DB名は再確認してください。

  • RedmineのDB削除確認
SHOW DATABASES;

RedmineのDBがないことを確認します。

  • 空のDB再作成
CREATE DATABASE redmine character set utf8mb4;

同じDBを作り直します。

  • 空のDB再作成確認
SHOW DATABASES;

作成したDBがあることを確認します。

EXIT

ソースダウンロード

  • ディレクトリ作成
sudo mkdir /home/www-data/redmine

自分の環境に合わせます。

  • ディレクトリの所有者変更
sudo chown -R www-data:www-data /home/www-data/redmine
  • svnダウンロード
sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.1-stable /home/www-data/redmine

5.1系の最新安定版をダウンロードします

退避させたディレクトリからconfigファイルコピー

  • 退避させたRedmine→ 新規に作成したRedmineにコンフィグをコピー
sudo cp -pi /home/www-data/redmine_$(date +%Y%m%d)/config/database.yml /home/www-data/redmine/config/database.yml

コピー元・コピー先は自分の環境に合わせます。

  • コンフィグの中身確認
cat /home/www-data/redmine/config/database.yml

コピーされていることを確認します。

  • 退避させたRedmine→ 新規に作成したRedmineにメール設定情報などをコピー
sudo cp -pi /home/www-data/redmine_$(date +%Y%m%d)/config/configuration.yml /home/www-data/redmine/config/configuration.yml

コピー元・コピー先は自分の環境に合わせます。

  • 設定情報の中身確認
cat /home/www-data/redmine/config/configuration.yml

Redmineインストール

  • ディレクトリ移動
cd /home/www-data/redmine
  • bundle
sudo -u www-data bundle install --without development test --path vendor/bundle
  • シークレットトークン発行
sudo -u www-data bundle exec rake generate_secret_token
  • DBマイグレーション
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

apache再開

  • apache再開前確認
systemctl status apache2.service

inactive(dead)を確認します

  • apache再開
sudo systemctl start apache2.service
  • apache再開確認
systemctl status apache2.service

active(runnning)を確認します

再作成後の仮パスワード作成

対象のRedmineにアクセスします。

IDとパスワードがadmin / admin に戻っている状態のため、ログイン後、仮パスワードを発行します。

退避したディレクトリからデータを再配置

  • 退避したRedmineのプラグインディレクトリに移動
cd /home/www-data/redmine_$(date +%Y%m%d)/plugins
  • プラグイン一式のコピー
sudo cp -pir ./* /home/www-data/redmine/plugins/
  • 退避したRedmineのテーマディレクトリに移動
cd /home/www-data/redmine_$(date +%Y%m%d)/public/themes
  • テーマ一式のコピー
sudo cp -pir ./* /home/www-data/redmine/public/themes/

いくつかのファイルを上書きするか求められるので、yで返します。

  • 退避したRedmineの添付ファイル格納ディレクトリに移動
cd /home/www-data/redmine_$(date +%Y%m%d)/files
  • 添付ファイル一式のコピー
sudo cp -pir ./* /home/www-data/redmine/files/
  • 退避したRedmineのログディレクトリに移動
cd /home/www-data/redmine_$(date +%Y%m%d)/log
  • ログ一式のコピー
sudo cp -pir ./* /home/www-data/redmine/log/

プラグイン再マイグレーション

  • Redmineのルートディレクトリに移動
cd /home/www-data/redmine
  • bundle
sudo -u www-data bundle install
  • プラグインのDBマイグレーション
sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

apacheリスタート

  • apache再開前確認
systemctl status apache2.service

active(running)を確認します

  • apache再開
sudo systemctl restart apache2.service
  • apache再開確認
systemctl status apache2.service

active(runnning)を確認します

DBリストア

  • mysqldumpを行ったディレクトリに移動
cd /hoge && pwd
  • DBリストア
mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql

パスワードはredmineインストール時に設定したDBユーザのパスワードです。

apacheリスタート

  • apache再開前確認
systemctl status apache2.service

active(running)を確認します

  • apache再開
sudo systemctl restart apache2.service
  • apache再開確認
systemctl status apache2.service

active(runnning)を確認します

動作確認

この状態でRedmineに管理者権限でログインします。手順通りなら

  • テーマ
  • 添付ファイル
  • プラグイン
  • チケット一覧

などが有効に動いています。

また、管理>情報へと進み、バージョンが上がっていることを確認します。

作業後-退避前のディレクトリ一式を削除-

  • 退避させたディレクトリの直上に移動
cd /home/www-data

自分の環境に合わせます。

  • 退避ディレクトリ確認
ls -ld redmine_$(date +%Y%m%d)

ディレクトリがあることを確認します。

  • 退避ディレクトリ削除
sudo rm -rf redmine_$(date +%Y%m%d)
  • 退避ディレクトリ確認
ls -ld redmine_$(date +%Y%m%d)

ディレクトリが無いことを確認します。

作業後-MySQLのダンプファイルを削除-

  • mysqldumpを行ったディレクトリに移動
cd /hoge && pwd
  • ダンプファイル確認
ls -l redmine_backup.$(date +%Y%m%d).sql

ファイルがあることを確認します。

  • ダンプファイル削除
rm redmine_backup.$(date +%Y%m%d).sql
  • ダンプファイル削除確認
ls -l redmine_backup.$(date +%Y%m%d).sql

ファイルが無いことを確認します。

備考

Redmineはバージョンさえ合っていれば

  • DB
  • 設定ファイル
  • 添付ファイル
  • プラグイン
  • テーマ
  • ログ

を移行することで、別のサーバへの引っ越しが可能になります。

redmine5.1にインストールされているAdditilonals/Addtional_tagsプラグインをアップデート

概要

Redmineに強力なマクロをもたらすAdditonal Pluginsとタグ付けでチケット間の横断検索を可能にするAdditional_tagsプラグインをアップデートします。

環境

  • Ubuntu 22.04
  • Redmine 5.1
  • Apache2
  • MySQL
  • Ruby 3.0

で稼働しています。

※このプラグインの2024/04/30現在の最新バージョンは、Redmine 4.2には非対応です※

さっくりとした手順

  1. DBのバックアップを取ります。
  2. additonalsのバージョンアップを行います。
  3. additonal_tagsのバージョンアップを行います。
  4. 動作を確認します。

DBバックアップ

影響範囲が大きいので、DBのバックアップは取っておきます。

  • バックアップディレクトリに移動
cd /path/to/backup/directory && pwd

任意のディレクトリを指定します。

  • DBバックアップ
mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
  • u redmineのDBユーザー
  • --no-tablespaces --single-transaction DB名

です。自分の環境に合わせます。

  • DBバックアップ確認
less redmine_backup.$(date +%Y%m%d).sql

内容が閲覧できることを確認します。

Additonalsアップデート

  • プラグインディレクトリに移動
cd /home/www-data/redmine/plugins/additonals && pwd

Redmineのプラグインディレクトリは自分の環境に合わせます。

  • git pull
sudo -u www-data git pull
  • Redmineのルートディレクトリに移動
cd ../../ && pwd
  • bundle
sudo -u www-data bundle install
  • マイグレーション
sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • Redmine(apache)サービス再起動
sudo systemctl restart apache2.service

Additonal_tagsアップデート

  • プラグインディレクトリに移動
cd /home/www-data/redmine/plugins/additional_tags && pwd

Redmineのプラグインディレクトリは自分の環境に合わせます。

  • git pull
sudo -u www-data git pull
  • Redmineのルートディレクトリに移動
cd ../../ && pwd
  • bundle
sudo -u www-data bundle install
  • マイグレーション
sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • Redmine(apache)サービス再起動
sudo systemctl restart apache2.service

additonal_tagsがadditonalsに依存しているプラグインのため、安全策として1回ずつ再起動しています。

動作確認

Redmineに管理者権限でログインし、正常に動作することを確認できれば動作完了です。

弁当箱の更なる新調。

このお弁当箱

激しく洗うとパッキンが外れやすく、元に戻すのも面倒だったということが判明し、結局はあらたな弁当箱を買い直しです。

最近の流行であるドーム型の蓋が決め手です。また、箸の収納スペースがないだけ洗いやすいこと

しっかり、食べ終わった後に低くできる収納性もありました。

「このお弁当箱に何を盛れるのか、どのぐらい詰められるのか」

を考えるより先に試作品を作っていました。

この容量と幅広なサイズは好きな感じです。

広さと深さがちょうどいいので麺類も詰められました。

連休のソロゲー。

恒例の、まとまった時間の中でのボードゲームです。

カルカソンヌ

山を3つに分け、捲ったタイルにミープルが置けるならば必ず置かなくてはならないというバーストルール。

ある程度リソースを見ながら行っていたものの、29点止まりでした。

アルルの丘

寝る前にセットアップをしておいたアルルの丘。朝起きてすぐにプレイです。

建物の組み合わせと、「それをどのタイミングで発動させていくか」が決まりました。

最終ラウンドで15点の建物を2つ同時に建てるという豪快なコンボも決まりました。

『ライザのアトリエ3』クーケン島でのインゴット素材採取。

周回プレイ時のメモです。

武器や防具の原料となるインゴット素材。

  • インゴット
  • スタルチウム
  • クリミネア
  • ゴルドテリオン
  • グランツオルゲン

は、実はクーケン島だけで調合は可能です。

インゴット

これに関しては隠れ家周辺でアマタイト鉱を採取できるので問題ないです。

スタルチウム-火山ヴァイスヴェルク-

ランドマーク『古い吊り橋』のやや北、

魔石の傀儡がスタルチウムに必要な

  • アークナイト
  • ペントナイト

をドロップします。クレリア地方でのノーマルクエスト/ワールドクエストで必要になります。

クリミネア- リーゼ峡谷-

リーゼ峡谷の土塊の使役者が

  • 創世の逆さ石
  • 白霊岩

をドロップします。

このクリミネアはクーケン島のワールドクエストで必要になります。

ゴルドテリオン-リーゼ峡谷-

同じクリーゼ峡谷の緑のゴーレム、メテオライトドールがゴルディナイトをドロップします。

クリミネアからのレシピ変化(品質指定あり)なので、旅人の水珠などで品質を上げてから調合します。

グランツオルゲン-火山ヴァイスヴェルクorリーゼ峡谷-

ひとつは

ノーマルクエスト『ライザの手も借りたい』達成後、見聞録で現れる巨岩の兵士からのドロップ。

そしてもう一つは、クーケン島のワールドクエストを達成後にランダムクエストとして出てくる

リーゼ峡谷に時々出てくる巨岩の兵士からのドロップ。

  • 七煌原石
  • セプトリエン

が入手可能です。また、ここから賢者の石に必要なエーテルコアも持っています。

百均グッズの弁当箱とフィードバック。

ふと思うことがあって弁当箱を新しくする機会があり、

  • ある程度の容量があること
  • レンジ対応であること
  • ロック機構が備わっていること
  • スリムな二段

という要件で探していたところ

百均(キャンドゥ)にて発見。さすがに500円弁当ですが、指定した要件通りです。

こちらを一週間ほど使ってみて

想像以上に入る。

鮭の切り身が丸々入り、副菜を入れてもなお余裕があります。底に卵焼きを追加したほどです。

開け閉めがやや大変。

ロック機構が少し不安定です。

パーツが少なめですっきりとしたデザイン。

  • 上段
  • 下段
  • 内蓋
  • 外蓋

の4種類なので、割と洗いやすいのも好感が持てます。

残る検証は耐久性や液漏れがないか。これを少し検証してから、このまま使うか他のに変えるかを確かめます。

Nextcloud 29.0アップグレード後の処理。(テーブルインデックス追加)

概要

Nextcloudを29.0にアップデート後、管理画面で以下のエラーが出てきました。

データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。 オプションのインデックス "oc_npushhash_di" がテーブル "notifications_pushhash"にありません

この問題に対処していきます。

Nextcloudが実行されているサーバにSSHログインして作業を行います。

環境

  • Ubuntu 20.04 または Ubuntu 22.04
  • PHP 8.1
  • Apache 2.4
  • MySQL
  • Nextcloud 28.x→29.0にアップグレード

ディレクトリ移動

cd /var/www/html/nextcloud/ && pwd

自分の環境に合わせます。

occ実行

  • 管理画面で出てきたコマンドを実行
sudo -u www-data php occ db:add-missing-indices
  • 実行結果
Adding additional oc_npushhash_di index to the oc_notifications_pushhash table, this can take some time...
oc_notifications_pushhash table updated successfully.

エラー解消確認

  1. 上記対処を行ったNextcloudサイトに管理者権限でログインします。
  2. 管理画面で、このエラーが解消されていれば完了です。

ベンチとピック。-百均グッズの撮影用小物(その51)-

新商品やら映えのためのグッズは便利です。

1/12ベンチ

1/12のフィギュアと一緒に合わせろと言わんばかりのベンチ。

思いのほか幅が広いので、背景としてもしっかり仕事をしてくれます。

聖なる武具ピック

キャラ弁に用いるであろうピック。これも、サイズ的に

1/12(figma)としっかり合わせることができます。

さらに撮影の幅が広がります。

アカウントファイルを用いたDBログインとバックアップ。

概要

バックアップスクリプトなどでMySQLにログインして処理を行う場合のTIPSです。

何かと使うのでメモに残します。

さっくりとした手順

  1. アカウントファイルを作ります。
  2. ログインできることを確認します。
  3. アカウントファイルを用いたコマンドでバックアップできることを確認します。

アカウントファイル作成

  • ディレクトリ作成
sudo mkdir -p /home/hoge/db_password

運用に合わせて指定ください。

cd /home/hoge/db_password && pwd

指定したディレクトリに移動します

  • アカウントファイル作成

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

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

password は""で囲みます。

  • アカウントファイルのパーミッション変更
chmod 400 account.txt
ls -l account.txt

パーミッションが400であることを確認します。

ファイルを用いてのログインを確認

mysql --defaults-extra-file=/path/to/directory/account.txt

--defaults-extra-file=は、アカウントファイルの絶対パスです。

ログインできることを確認します。

SHOW DATABASES;

アカウントの権限で指定されたDBの表示を確認します。

EXIT

MySQLから抜けます。

SQL Dumpの取得

  • SQL Dump
mysqldump --defaults-extra-file=/path/to/directory/account.txt --no-tablespaces -h [DBサーバ] [DB名] > backup.sql
  • --no-tablespacesはPROCESS特権がないユーザでもダンプできるようにするためです。
  • バックアップ先も必要に応じて絶対パスで指定できます。
  • ファイル確認
ls -l backup.sql

ファイルの内容にDBがあれば成功です。取り扱いには慎重を期してください。

日曜午後のヒトリコラ。

『ライザのアトリエ』アニメ版のデスクマットを手に入れたので、これが映えるボードゲーム『アグリコラ』を行いました。

職業と小進歩はシャッフルして7枚の完全伏せ札。

それらカードの中に

  • 大鎌使い
  • 小作人
  • 調教師

といった有用な職業と、職業3つ以上の強力な小進歩があり

  • 家族
  • 改築
  • 牧場

すべてがちょうどよく埋まりました。調教師のおかげで厩が少なく済んだのも助かりました。

結果は61点。こういう展開がいつもできればという感じです。

Page 22 of 238

Powered by WordPress & Theme by Anders Norén