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

Webアルバムシステム『Lychee』感想。

新サーバに導入したWebアルバム『Lychee』。極めて満足度が高いシステムでした。

長所

操作の簡単さ

  1. アルバムを作る
  2. ブラウザ内部に写真をドラッグ&ドロップ

で登録完了。別のアルバムに移動させるのもファイル名変更も直感的に分かります。

速さ

「ゲートウェイを通さない」アドバンテージを差し引いても画像のアップロード、表示、画像の切り替えが異次元の速度です。

これにより、ファイルサーバにため込んでいた写真を見返すことができるようになりました。

短所

メニューが日本語非対応

簡単に操作できますが、使い方やメニューが日本語非対応なので敷居は高めです。

フォルダをまるごとインポートできない

ルートフォルダ
 └フォルダA(写真x枚)
 └フォルダB(写真y枚)

という構成でルートフォルダをドラッグ&ドロップしてもインポートすることができません。
同じく、フォルダA/Bだけをドラッグ&ドロップしても中の写真がインポートできません。対象はあくまでも写真ファイルのみです。

まとめ

「フォルダをまるごとインポートできない」はやや大きめの短所。
とはいえ、この早さや簡便さは他の群を抜いています。

今までに撮りためた写真を再活用するためにも、この「Lychee」を扱ってみようと思いました。

Ubuntu 20.04にフォトアルバム『Lychee』をインストール。

「速い」「軽い」「扱いやすい」が揃ったWebアルバムLycheeをローカルで建てたUbuntu20.04(Kubuntu)にインスールしてみました。

(参考:写真サーバ Lychee)

前提

  • MySQL導入済み
  • Apache導入済み
  • php7.4導入済み

ハードウェアは「Chuwi Herobox Pro」。1TBのSSDをまるごとホームディレクトリに割り当てています。

手順

PHP設定

この通りにMemory Limitやアップロードできるファイル容量を増やしています。(大きめの写真ファイルを扱うため)

DB作成

mysql -u root -p
CREATE DATABASE lychee character set utf8 collate utf8_bin; 
CREATE USER 'lychee'@'localhost' IDENTIFIED BY 'パスワード'; 
GRANT ALL PRIVILEGES ON lychee.* TO 'lychee'@'localhost' WITH GRANT OPTION; 
FLUSH PRIVILEGES;
quit

Lycheeダウンロード

mkdir /home/www-data
# 上述した1TB/homeを有効活用するため、サイトディレクトリをここにします。
cd /home/www-data
git clone https://github.com/electerious/Lychee.git lychee

Lycheeディレクトリ設定

chown -R www-data:www-data /home/www-data/
chmod 777 /home/www-data/lychee/data/
chmod -R 777 /home/www-data/lychee/uploads/
cd /var/www/html
ln -s /home/www-data/lychee/ lychee

バーチャルサイト設定

vi /etc/apache2/sites-available/lychee.conf

設定内容

<VirtualHost *:80>
   DocumentRoot /home/www-data/lychee/
      <Directory /home/www-data/lychee/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
      </Directory>
</VirtualHost>

設定有効化

a2ensite lychee
systemctl restart apahce2

設定後、

http://[IP or ホスト名]/lychee

でインストール画面が現れました。

DB名
DBパスワード

などを入れれば設定完了です。

Lycheeの画面

基本的に

  • アルバムを作る
  • ドラッグアンドドロップで写真を放り込む

とシンプルな作り。(Dropbox連携などもあるようですがセキュリティの事情で省いています)

ただ、それを補って「高速描画/高速処理」が快適です。自分の写真管理の新たな友となることは間違いなく、後日、改めて紙幅を設けたいと思います。

Ubuntu20.04にTomcat8とknowledgeを導入。

バージョンを落としてでも用いたいシステムがありました。

Dockerではなくオンプレ環境で整えます。メインをredmineにしたものの

「redmineの障害に備えた構築メモ」が欲しかったのもあります。

また、PDFをプレゼン形式で表示してくれるのはこのシステムの強み。

先だってredmineとは別のサーバを入手したので早速のインストールです。

環境

  • Ubuntu 20.04(Kubuntu)

手順

JDKインストール

aptitude openjdk-8-jdk

java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

その後、Tomcatをaptitude(apt)でインストールを試みましたがaptitude(apt)でサポートするTomcatのバージョンは9。
knowlegeの対象外です。(knowledgeのシステム要件はTomcat8)

そこで、以下の手段を執りました。

Tomcatユーザー作成

mkdir /opt/tomcat

groupadd tomcat

useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Tomcat8のダウンロードと展開

cd /tmp
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
# DL先は2022/04/03時点のものです
tar -xf apache-tomcat-8.5.5.tar.gz -C /opt/tomcat/
ln -s /opt/tomcat/apache-tomcat-8.5.5 /opt/tomcat/latest
cd /opt/tomcat/latest/bin
chmod +x *.sh

Tomcat8の起動スクリプトを作成

vi /etc/systemd/system/tomcat.service
スクリプト内容

(CentOSから流用したので怪しい部分があります)

[Unit]
Description=Tomcat 8 servlet container
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/latest/temp.pid
RemainAfterExit=yes

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
ExecReStart=/opt/tomcat/latest/bin/shutdown.sh;/opt/tomcat/latest/bin/startup.sh

[Install]
WantedBy=multi-user.target

Tomcat8のサービス化

chmod +x /etc/systemd/system/tomcat.service
systemctl daemon-reload
systemctl enable tomcat
systemctl start tomcat
systemctl status tomcat

ステータス確認

 systemctl status tomcat
● tomcat.service - Tomcat 8 servlet container
     Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2022-04-03 09:29:44 JST; 30min ago
    Process: 12416 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 12416 (code=exited, status=0/SUCCESS)

Knowlegeインストール

cd /opt/tomcat/latest/webapps/
wget https://github.com/support-project/knowledge/releases/download/v1.13.1/knowledge.war
chown -R tomcat:tomcat knowledge.war 
systemctl restart tomcat

インストール後、

http://[インストールしたホスト]:8080/knowledge

でアクセスできることを確認しました。

2台目の自宅サーバ。(Chuwi Herobox Pro 2台目)

先週手に入れたChuwi Herobox Pro。

  • 取り回しが良く
  • 無音
  • 小型

ということで、こうなりました。

2台目、到着。

2台構成にすることにより、相互にバックアップを取ることができるとの判断です。

そして、もう一台置いてもスペースを取らないコンパクトさも購入のハードルを下げました。

改めての開封確認

小型ながら、インタフェースの多さには驚かされます。

  • USB3.0 ×2
  • USB2.0 ×2
  • Micro SDカードスロット

それに加えて蓋を開けるとSSDをそのまま取り付け可能。ホームユースとしては必要十分な容量が確保できます。(今回は1TBのSSDを同時に注文しました)

OSインストール

1台目がLinux Mintだったので、こちらはKubuntuにしました。

画像

カーネルを差し替えることなく有線が認識。

早速、DNSを構築してそれぞれの向き先も変更です。

今後の展望

こちらはDNSだけではなく

  • Zabbixサーバの本番運用
  • redmineのバックアップ先
  • メディアサーバ

と、別のことにチャレンジします。

自宅サーバの監視システム。(Ubuntu 20.04にZabbix追加)

Zabbixサーバ追加

宅内サーバの障害の切り分けのため、監視システムであるZabbixを導入しました。

環境

  • Kubuntu 20.04
  • MySQL / Apache導入済み

手順

LAMP設定

aptitude install libapache2-mod-php
aptitude install php php-mbstring php-gd php-xml php-bcmath php-ldap php-mysql

PHP構成変数の更新

vi /etc/php/7.4/apache2/php.ini
変更内容
memory_limit 256M
upload_max_filesize 16M
post_max_size 16M
max_execution_time 300
max_input_time 300
max_input_vars 10000
date.timezone = 'Asia/Tokyo'

Zabbix リポジトリの設定

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb 
dpkg -i zabbix-release_5.0-1+focal_all.deb

Zabbix サーバのインストール

aptitude update
aptitude install zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-apache-conf

Zabbixデータベースとユーザの作成

mysql -u root -p 
CREATE DATABASE zabbixdb character set utf8 collate utf8_bin; 
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'パスワード'; 
GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbix'@'localhost' WITH GRANT OPTION; 
FLUSH PRIVILEGES;
quit
cd /usr/share/doc/zabbix-server-mysql 
zcat create.sql.gz | mysql -u zabbix -p zabbixdb

Zabbix構成の更新

vi /etc/zabbix/zabbix_server.conf
ファイルの内容
  DBHost=localhost
  DBName=zabbixdb
  DBUser=zabbix
  DBPassword=パスワード

zabbix有効化

systemctl enable zabbix-server 
systemctl restart zabbix-server

ディレクトリ権限変更

ここで [サーバIPorドメイン/zabbix]を入力しましたが404 Not Found。以下を施しました。

cd /usr/share
chown -R www-data:www-data zabbix
systemctl restart apache2

その後、インストーラ画面が出てきたので後に続きます。

サーバ追加後

このように、監視システムが現れました。

  • 監視設定の精査
  • メール通知などの追加

が残っていますけれど、まずは一歩前進。

余談

Zabbix-AgentはWindowsにも対応しています。そこでメインで使っているデスクトップにもAgentを入れてみたら

  • マザーボード備え付けのLANポートが認識しない
  • 同様にマザーボードのサウンドも認識しない
  • 壁紙設定が強制的に上書きされる

などの不具合が発生し、やむなくWindowsからエージェントをアンインストールしました。

Chuwi Heroboxの有線接続化とNASマウント。

既知の問題点

  • 小さい
  • 無音
  • それでいて拡張性がある

ということで使い始めているChuwi Herobox Pro。Linuxを運用する上で

「オンボードNICを認識しない」

という問題点がありました。それを解決するために検索していたらUbuntu 20.04にはHeroboxに適合するドライバが入っていないとの情報にたどり着きました。

解決

以下の方法で解決しました。なお、入っているOSはLinux Mint 20.03(una)です。

  1. 無線LAN接続設定無効化
  2. 以下のコマンドを実行
aptitude install linux-image-oem-20.04d

機器再起動後、無事に有線接続を確認。後は無線に入れ込んでいたIPアドレス設定を施せば完了です。

こうして、接続も安定化したのでもう一つの解決策にも着手します。

NASのマウントとバックアップ向き先変更

先日、「MySQLのバックアップ先をUSBメモリにする」暫定作を書きましたが、もっと容量があって冗長化されているところ:NASに変更します。

これを元にNASをマウント。mysqlのバックアップ先も以下のように変更します。

#!/bin/sh

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

cd /home/manualmaton/bin
mysqldump --defaults-extra-file=dbaccess.conf --no-tablespaces -h localhost redmine > /path/to/NAS/Directory/redmine_backup.`date +%Y%m%d`

これで、平常時のDBバックアップもうまくいきました。

後は、redmine全体のバックアップ設計を考えていきます。

RedmineのDBバックアップをcron化(2023年時の状況に合わせ修正)

無事にredmineのDBバックアップとリストアができていたので、それを定期的に取るように設定します。

バックアップ方針

  • データベースのダンプ取得は日ごとに行います。
  • 現時点でのバックアップ先はUSBメモリ。(16GB)
  • ローカル運用なのでここは割り切ります。
  • 別の手段は改めて考えます。

USBメモリのフォーマット

Linux MintのGUIで行いました。

/medhia/hoge/USBMEM

として作成。

ここから先は2023年2月時点の運用に併せ、以下のように修正しました。

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

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

Ubuntu 20.04ではcronのログをデフォルトで出力しなかったため、以下の通り設定。

https://www.server-memo.net/ubuntu/ubuntu_cron_log.html

そして、時間が来てバックアップが取れていることを確認しました。

RedmineのDBバックアップ/リストア検証試験

概要

redmineの障害に備え、DBのバックアップ/リストアの検証試験を行いました。

これはあくまでもDBのみでの結果です。添付ファイルやソースに関しては検討課題となります。

MySQL Dumpを行う

まずは公式サイトのように

https://redmine.jp/faq/system_management/backup/

mysqldump -u [redmineのDBユーザ] -p[DBパスワード] [DB名] > /バックアップ先のパス/backup.sql

と入力したら、以下のエラーが出てきました。

mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

1つめのWarning:

[以下引用]
これは、「警告:コマンドラインインターフェイスでパスワード使うのは安全ではない場合があります」というメッセージで、パスワードをそのままシェルスクリプトに記述するのは望ましくない、ということです。
(中略)
このWarningは、パスワードを外部ファイルから読み出すようにすれば出なくなります。

https://resource-sharing.co.jp/mysql-command-password-warning/

そこで、MySQLのユーザー名とパスワードを保存したファイルを別に作成します。

外部ファイル作成

vi dbaccess.conf

ファイル内容

[client]
user = [ユーザー名]
password = [パスワード]
host = localhost
# DBの接続先。

作成後、

mysql --defaults-extra-file=dbaccess.conf
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

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

Warning解消後のmysqldumpエラー

この外部ファイルを用いてmysqldumpを試みましたが

mysqldump --defaults-extra-file=dbaccess.conf -h localhost redmine > ./test.sql
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

このエラーを検索したところ以下の記事に行き当たりました。

https://www.koikikukan.com/archives/2021/02/17-235555.php

MySQLを5.7にバージョンアップしたことで、PROCESS特権が必要になるようです。
テーブルスペース情報をダンプする必要がないユーザーは、-no-tablespacesオプションを指定してmysqldumpを呼び出すことにより、前述の要件を回避できます。

そこで、もう一度試します。

mysqldump --defaults-extra-file=dbaccess.conf --no-tablespaces -h [DBサーバ] [DB名] > backup.sql

今度はエラーがありません。DBのバックアップが取れたことでいよいよリストア試験を行います。

DBリストア確認

リストア前準備

まず、バックアップが取れた状況で、トップページを編集します。


 ↓

リストア

mysql --defaults-extra-file=dbaccess.conf redmine < [取得したバックアップsql]
sudo systemctl restart apache2

httpdサービス再起動後、

と、バックアップを取った直後に切り戻った後に戻りました。

ToDo

  • 定期バックアップのスケジュールをとる
  • 添付ファイルのバックアップを行う

などがありますけれど、まずはクリティカルな部分の検証が完了しました。

Chuwi Heroboxにインストールしたredmineに入れたプラグイン。

こちらは、以前にご紹介した記事の集大成的な記事ではありますが、「今後、一から作り直すときにそのままコピペできるようにした備忘録」を兼ねています。

redmineそのもののインストールや設定は過去に実施したので、これに倣います。

インストール

Gmailとの連携

テーマ変更(kodomo redmine)

環境

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

  • Linux Mint 20.03
  • Ruby 2.70-p0
  • Rails 5.2.6.3
  • MySQL 8.0.28

プラグインをインストールする場所は、redmineのプラグインが格納されているディレクトリに読み替えてください。

View Customize ※mariadbでこれをインストールすると500エラーになる事象が発生しました。

cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/onozaty/redmine-view-customize.git view_customize
cd ../
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

redmica_ui_extension

※Mermaid_Macroの差し替えです。

cd /var/lib/redmine/plugins/
sudo -u www-data git clone https://github.com/redmica/redmica_ui_extension.git
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

knowlegebase

cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/alexbevi/redmine_knowledgebase.git
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

knowlegebaseでファイルが添付できない問題に対処

cd /var/lib/redmine/plugins
cd redmine_knowledgebase/app/views/attachments/
mv _links.html.erb ../_links.html.erb.org
systemctl restart apache2

Kanban

cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/happy-se-life/kanban.git
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
sudo systemctl restart apache2

チケットテンプレート

cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/akiko-pusu/redmine_issue_templates.git
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

チケットタグ

cd /var/lib/redmine/plugins/
sudo -u www-data git clone https://github.com/ixti/redmine_tags.git
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

導入後の設定

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

clipboard_image_paste

cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/peclik/clipboard_image_paste.git clipboard_image_paste
systemctl restart apache2

ログローテーション

ログを参照するプラグインを導入

cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/haru/redmine_logs.git redmine_logs
systemctl restart apache2

シンボリックリンク貼り替え

mkdir /var/log/redmine
chown www-data:www-data /var/log/redmine
cd /var/lib/redmine/log
mv *.log /var/log/redmine
cd ../
rmdir log
ln -s /var/log/redmine/ log
chown -R www-data:www-data log
ls -la log
# log -> /var/log/redmine/となっていることを確認

ログローテーション設定

cd /etc/logrotate.d
vi redmine

設定ファイル内容

/var/lib/redmine/log/*.log {
        missingok
        notifempty
        copytruncate
        compress
}

ログローテート実行

logrotate -d redmine
# テストして問題ないことを確認
logrotate -f redmine
# 強制的にローテーションさせる

用語集

cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/torutk/redmine_glossary.git redmine_glossary
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

pdf preview

プラグイン導入

aptitude install build-essential libmagic-dev ghostscript
cd /var/lib/redmine/plugins
sudo -u www-data git clone https://github.com/nanego/redmine_preview_pdf.git redmine_preview_pdf
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

設定変更

cd /etc/Image-Magick-6
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" />

Message Customize

cd /var/lib/redmine
sudo -u www-data git clone https://github.com/ishikawa999/redmine_message_customize.git plugins/redmine_message_customize
cp -pir plugins/redmine_message_customize/35_change_load_order_locales.rb config/initializers/35_change_load_order_locales.rb
systemctl restart apache2

Chuwi HeroboxにLinux Mintをインストール。

導入したファンレス小型PC・Chuwi HeroboxにはWindows 10がプリインストールされておりますが、それは日の目を見ることはありませんでした。

OSインストール

今回はUbuntu系で比較的軽いLinux Mintを使いました。

下準備

  1. Linux Mint公式サイトからISOイメージをダウンロードします。
  2. RufusでUSBブートディスクを作ります。
  3. Heroboxに500GBのSSDを接続します。

インストール

redmine専用サーバにするため、ディスクの割り当ては

  • 増設した500GB SSD:/var
  • 元々の256GB SSD:/ およびスワップ

としてOSインストールは完了。

固有の問題

問題なく動きましたけれどLinux Mintのファームウェアの関係か、有線LANを認識してくれませんでした。

無線LANで運用するのでそこは割り切ります。

Linux Mint初期設定

以下を施しました。

  1. aptitude updage → upgradeでパッケージを更新
  2. IPアドレスを固定
  3. 以前作成していたローカルDNSサーバ設定
  4. それに伴いIPv6を無効化

後はSSHを入れてWindowsターミナルから接続を確認しました。

次はredmineとプラグインのインストールです。

Page 50 of 85

Powered by WordPress & Theme by Anders Norén