カテゴリー: redmine Page 13 of 14

redmineにPDFのサムネイルを表示させるプラグインを導入。

ボードゲームのルールやスコアシート参照のため、PDFを用いる機会は多いもの。

そこで、redmineに導入してみました。

導入

aptitude install build-essential libmagic-dev ghostscript
# これが入っていないとインストールできませんでした
cd /var/lib/redmine/plugins
#redmineが導入されているディレクトリ
git clone https://github.com/nanego/redmine_preview_pdf.git redmine_preview_pdf
chown -R www-data:www-data redmine_preview_pdf
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

導入後のテスト

redmineにログインし、任意のテキスト編集画面(markdown)で以下の様に入力しました。

attachement:hoge.pdf

うまく表示されず。

apacheのエラーログに以下を発見。

App 385988 stderr: convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.

このエラーを頼りに検索すると以下の記事を発見。

http://sstto.blog.shinobi.jp/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86/imagemagick%E3%81%A7pdf%E5%A4%89%E6%8F%9B%E5%A4%B1%E6%95%97%E3%81%A8%E5%AF%BE%E5%BF%9C

ImageMagicの脆弱性対応のため、初期状態では無効化されているとか。

なので、この通りに対応します。

cd /etc/Image-Magic6
cp -pi policy.xml policy.xml.org

差分

以下の差分の通り編集。

   <policy domain="path" rights="none" pattern="@*"/>
   <!-- disable ghostscript format types -->
-  <policy domain="coder" rights="none" pattern="PS" />
+  <policy domain="coder" rights="read|write" pattern="PS" />
   <policy domain="coder" rights="none" pattern="PS2" />
   <policy domain="coder" rights="none" pattern="PS3" />
-  <policy domain="coder" rights="none" pattern="EPS" />
-  <policy domain="coder" rights="none" pattern="PDF" />
-  <policy domain="coder" rights="none" pattern="XPS" />
+  <policy domain="coder" rights="read|write" pattern="EPS" />
+  <policy domain="coder" rights="read|write" pattern="PDF" />
+  <policy domain="coder" rights="read|write" pattern="XPS" />

編集後

うまく表示されました。

この手のプラグインで機能を次々に改良できるのもredmineならではです。

redmineプラグイン「clipboard_image_paste導入」。

redmine4.1以降から、チケット発行時にクリップボード上の画像を直接貼り付けられるようになりました。

ですが、knowlegebaseではそれが反映されないので別途プラグインを追加しました。

参考

手順

※全て管理者権限で行います。

ディレクトリ移動・配置

cd /var/lib/redmine/plugins
# 自分のredmineプラグインが配置されている場所に読み替えてください
git clone https://github.com/peclik/clipboard_image_paste.git clipboard_image_paste
# 4.x以降に対応したフォーク版です

権限変更・反映

chown -R www-data:www-data clipboard_image_paste
systemctl restart apache2

反映後の挙動

記事入力欄に以下のようなボタンが追加されるのでクリックします。

Ctrl + Vで貼り付け、OKをクリックします。(このとき、さらに細かい範囲を指定できます)

後はWikiの記述に従って該当の画像を貼り付けます。

これで、redmineプラグインのknowledgebaseでもスクリーンショットの貼り付けができるようになりました。

redmineプラグイン「redmine_knowlegebase」での添付できない問題への対処。

以下、解決したのでメモとなります。

環境

  • OS: Ubuntu 20.04 (Linux Mint 20.3でも同様)
  • redmineバージョン:4.2.4
  • Rubyバージョン:2.7.0
  • Railsバージョン:5.2.6.2
  • knowlegebaseのバージョン4.1.1

発生していた現象

  1. プラグインredmine_knowlegebaseをインストール後、設定を有効にする。
  2. ナレッジベースで任意の記事を登録/更新する。
  3. ファイルを添付し、保存する。
  4. 登録/更新した記事の「ファイル」タブで添付ファイルが表示されず。

この事象はかなり厄介でした。各種ナレッジにファイルを添付したいことは多々あり、回避策としてredmineの「ファイル」機能のリンクを張るのも迂遠だったからです。

糸口

そんな中で以下の記事を発見。

https://github.com/alexbevi/redmine_knowledgebase/issues/351

I am using Redmine 3.4.4 and knowledgebase 3.3.1. Perhaps, the "knowledgebase" plugin /plugins/redmine_knowledgebase/app/views/attachments/_links.html.erb works until Redmine 3.3, but since Redmine 3.4 the specification has changed, so _links.html.erb Does not it work as an attached file processing? I thought, and deleted or moved _links.html.erb on the plugin side, it worked.

要約すると

  • Redmine 3.3→3.4以降で添付ファイルの仕様が変わった。
  • /redmine格納ディレクトリ/plugins/redmine_knowledgebase/app/views/attachments/_links.html.erb の添付ファイル処理がうまくいかない。
  • _links.html.erb を移動/削除すれば動いた。

解決

手順

全て管理者権限で実行します。

SSHログイン&ディレクトリ移動

cd /var/lib/redmine/plugins
#redmineのプラグインが格納されているディレクトリに読み替えてください
cd redmine_knowledgebase/app/views/attachments/

該当ファイル退避&設定反映

mv _links.html.erb ../_links.html.erb.org
# このケースでは上のディレクトリに退避させました
systemctl restart apache2

設定反映後

無事に動きました。これで、様々なファイルの添付が可能になります。

redmineのチケットによるボードゲームプレイレポート管理。

このツールの伸びしろと自由な運用に驚かされました。

きっかけ

「ボードゲームを自分のツールで管理する」はもともと考えており、redmineで購入した作品の一覧を転記することまでは行いました。

その途上で

「遊んだときの記録をチケットとして残していけば」

  • いつ
  • どこで
  • 誰と
  • 何をプレイし
  • 得点はどのぐらいか
  • 反省点など

を効率的に残せるのではないかと思った次第です。

作成

カスタムフィールド

先に上げた項目をリストアップし、カスタムフィールドとして登録します。人数や作品名などは必須として漏れをなくします。

ワークフロー作成

そしてワークフロー作成。その中にカスタムフィールドを付け加えます。

記録

ここまでやれば、あとは記録です。

先だっての『ガイアプロジェクト』のプレイレポートはこれを元にしたものだったりします。

使ってみての感想

予想通り、「いつ、何をプレイしてどういう反省点があったか」や「もっと得点を伸ばせる要素はなかったか」などを記録して見返すことができるというのは後々のフィードバックに繋がります。

次はチケットテンプレートを用意して作品ごとのスコアシートを作っていけば後々楽になっていくことが予想されます。

自室redmineサーバ上でリマインダーメールを設定。

概要

redmineには期日が間近であるか、過ぎてしまったチケット一覧をメールで通知することができることを確認しました。

そこで、

  • 自動的にリマインダーメールを送付する

設定をサーバ自身に施します。

動作確認環境

  • Ubuntu 20.04
  • Redmine 4.2

前提

既にredmineでのメール設定は終わっているものとします。(ここではGmailと連携させました)

参考記事

期日が間近のチケットをメールで通知する(リマインダ機能)

https://redmine.jp/faq/issue/send_reminders/

手順

全て管理者権限で実行しています。

スクリプト作成

mkdir ~/sh # 任意のホームディレクトリに読み替えます
vi ~/sh/reminder_ndays_before.sh
スクリプト内容
#!/bin/sh

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
​
cd /var/lib/redmine
bundle exec rake redmine:send_reminders days=3 RAILS_ENV=production

実行権付与・動作確認

chmod +x ~/sh/reminder_ndays_before.sh
/sh/reminder_ndays_before.sh

実行後、以下のようなメールを確認します。

※ 自分はこれに加え

  • 31日前
  • 7日前
  • 1日前

をそれぞれ作成しています。

cron登録

指定の時刻に自動的に上記のスクリプトを実行できるよう、cronを修正します。

crontab -e
cron内容
#設定したスクリプトのパスを記載
30 8 * * * ~/sh/reminder_31days_before.sh
40 8 * * * ~/sh/reminder_1day_before.sh

30 17 * * * ~/sh/reminder_7days_before.sh
40 17 * * * ~/sh/reminder_1day_before.sh

30 20 * * * ~/sh/reminder_3days_before.sh
40 20 * * * ~/sh/reminder_1day_before.sh

上記設定では

  • 8:30 - 31日前
  • 8:40 - 1日前
  • 17:30 - 7日前
  • 17:40 - 1日前
  • 20:30 - 3日前
  • 20:40 - 1日前

に送信するようにして、設定完了です。

ゲーム『ソフィーのアトリエ2』進行とredmineでのメモ。

色々と気になっていたので購入した『ソフィーのアトリエ2』。その進行に自分で立てたredmineが活躍しています。

攻略時のメモ

詰まったところのスクリーンショットを貼り付けたり

「調合」で足りなかった部分をメモして後でフィードバックとしたり。

かんばん

特に、このタスクの優先度や状況を一瞥できる「かんばん」が役に立っています。

  • 攻略のために道具を調合する必要がある
  • 道具に中間素材が足りない
  • 中間素材の調合をしているうちに当初の目的を見失う

がなくなるのは助かります。

ゲーム進行時の気づき

調合のパズル感

様々な形の素材を限られたマスの中に入れていくのはそれ自体がミニゲームとして成立していて、バランスよく配置していくのがとても楽しいです。

採集道具の難しさ

素材を放り込んでいけばアイテムになる反面、その性能を引き出すのは難しかったです。

特に鎌、ハンマーといった採集道具のランクを上げるのは前シリーズ『ライザのアトリエ2』より至難。

  • リバースパズルを用い
  • 資源を選びぬき
  • 触媒のレベルを上げる

でようやく形になりました。

その他思ったこと

  • クエスト時、マップでそれが明示される
  • 戦闘のテンポがよく、戦略を組み立てられる
  • 音楽の良さは健在
  • レシピ獲得の条件が具体的
    • 指定のアイテムを採取/調合する
    • 特定の魔物を討伐する

など、前シリーズ『ライザのアトリエ』』と結構異なっている部分があるのでそれに同アジャストしていくかが今後の課題です。

自室redmineサーバのタグ検索。

やりたいこと

作成したredmineは順調そのもの。ゲームのデータのみならず

  • 日常のToDo
  • 買い物リスト
  • 今後の予定

など、様々なものを入れていこうという気概が生まれました。そこで問題になってくるのが「増えてくるチケットをどう管理するか」

です。そこでチケットにタグを付与して検索しやすくなるように設定をしました。

前提

手順

ダウンロード、アクセス権変更

cd /var/lib/redmine/plugins/ #プラグインが入っているパスに読み替えてください
git clone https://github.com/ixti/redmine_tags.git
chown -R www-data:www-data redmine_tags/

インストール、設定反映

bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

redmine側での設定

以下の通り設定しました。

  1. 管理者権限でredmineにログインします。
  2. 管理>プラグイン>Redmine Tagsに移動します。
    • タグをサイドバーに表示する:タグクラウド(シンプル)
    • チケット数を表示する:チェックを入れる
    • オープンしているチケットのみ表示する:チェックを外す
    • カラー表示する:チェックを入れる

設定後の確認

チケット登録の下部にタグ挿入のフォームが追加されていました。

サイドバーにもタグが表示されて情報を追いやすくなっています。

自室redmineサーバ上とGmailの連携。

運用の仕方が分かってきた自室redmineサーバ。

Image with no description

自室で登録したチケットを出先でも見られるよう、メール連携を行います。

やりたいこと

  • redmineのメール通知を有効化するため、Gmailと連携する。

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

  • redmine 4.2
  • Ubuntu 20.04

Gmailとの連携

以下の記事を参考にしました。

[Redmine] 通知メールをGoogleのSMTPサーバーから発信する方法

https://a1-style.net/how-to-connect-to-gmail-smtp-from-bitnami-redmine-for-windows/

前提

  • 自分のGmailアカウントを保有していること。
  • 2段階認証プロセスが有効になっていること。

Googleアカウント設定

  1. Googleサービス>設定>アカウントセキュリティに移動。
  2. 「アプリパスワード」をクリック。
  3. 「アプリを選択」で「その他(名前を入力)」をクリック。
  4. 任意の名前を入力(ここではredmine)し、「生成」をクリック。
  5. このとき表示されたパスワードを控えておきます。

redmineサーバ設定

※全て管理者権限で実行します。

cd /var/lib/redmine/config
# redmineのコンフィグが格納されているディレクトリに読み替えてください
vi configuraltion.yml
# 既に何かを記載している場合は追記します
追記内容
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com"
      authentication: :plain
      user_name: "gmail_account"  #Gmailアドレス
      password: "app_password" #先ほど控えておいたアプリパスワード 

設定反映

chown www-data:www-data configuraltion.yml 
systemctl restart apache2

redmine側での設定

  1. redmineに管理者権限でログインします。
  2. 管理>設定>メール通知タブに移動します。
  3. 送信元メールアドレスをredmineサーバで設定したgmailアドレスにて保存します。
  4. 管理>ユーザー>通知対象を行うIDで任意のメール通知設定をします。

設定確認

チケットを作成/更新後、以下のようなメールを受信したことを確認します。

ここまでの流れ

「自分のToDoや知識をまとめる“道具”を作る」までの7日間、様々な学びがあったというのが今回の知見。

他にもまだ手を加えるところはあるし、何よりも運用に乗せることが第一。

始まったばかりという所です。

自室redmineサーバ上にローカルDNS(BIND)構築と解決。

先日の続き。「Windows機のクライアントでの名前解決不可」問題の解決篇です。

原因

/etc/bind/named.conf.options を修正する際、

+        allow-query { localhost; internal-network; };
+        allow-transfer { localhost; };
+        recursion yes;

-       listen-on-v6 { any; };
+       listen-on-v6 { none; };

として、IPv6でリッスンしないような修正を施したことが原因でした。

それが証拠に、Windowsクライアントのコマンドプロンプトで

nslookup

を実行したときにIPv6アドレスが現れていたのです。

そこで、以下を修正していきます。

解決策

LinuxサーバのIPv6無効化

OSはUbuntu派生Kubuntu 20.04 LTSで実証です。

UbuntuでIPv6を無効にする

https://qiita.com/htshozawa/items/77dd0be079cdf817a5a6

の記事を参考に、Ubuntu 20.04のIPv6を永続的に無効にします。

その後、もう一手間ありました。

Windows 11クライアントのIPv6無効化

今度はWindows側の設定です。「ファイル名を指定して実行」から

ncpa.cpl

と入力し、イーサネット>プロパティから「インターネットプロトコルバージョン6(TCP/IPv6)のチェックを外します。

そして再起動。

結果:

うまくいきました。

無事、Windows機のクライアントでの名前解決も成功です。

自室redmineサーバ上にローカルDNS(BIND)構築と失敗。

やりたいこと

サーバのローカルIPアドレス/redmine から自室サーバのredmineにアクセスするのではなく、

任意の名前/redmine

として、名前解決をできるようにしたい。

そこで、サーバ内にローカルDNSを立てます。

やったこと

基本的にはこちらのサイトを参照して行っただけです。

BIND : 内部ネットワーク向けの設定

https://www.server-world.info/query?os=Ubuntu_20.04&p=dns&f=1
  • ローカルドメイン名は: shizuku.hioriに設定。
  • 内部NWは192.168.1.0/24。
  • IPv4のみでの運用。

結果

設定後、名前解決できることを確認しました。

mio.shizuku.hiori/redmine

アクセス後

にアクセスできるまではよかったのですが、問題が発生。

他クライアントでの名前解決不可

Windowsクライアントで名前解決ができないという結果に。

  • Windowsでのネットワーク設定で構築したDNSサーバのIPを入力
  • Linuxサーバ上では正常に名前解決できる

にも関わらずです。

ワークアラウンド

やむなく、Windows機のhostsファイルをいじるという本末転倒な運用に終わりました。

これはもう一度、確認が必要です。

※その後

LinuxとWindows両方の設定変更で解決しました。

Page 13 of 14

Powered by WordPress & Theme by Anders Norén