タグ: Kubuntu Page 1 of 2

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からエージェントをアンインストールしました。

自室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日前

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

自室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両方の設定変更で解決しました。

ローカルサーバのredmineの見た目を変更。

はじめに

この事務的な見た目をなんとか親しみやすいものにしたいと思い、探してみたら同じようなことを既に考え、実行に移している先駆者がいらっしゃったようで。

その先人の知恵に預かります。

こどもredmine

おおよそredmineらしからぬ見た目やフォントが素晴らしかったので、こちらに差し替えます。

手順

1.ディレクトリ移動

cd /var/lib/redmine/public/themes

2.ダウンロード&アクセス権変更

sudo git clone https://github.com/akiko-pusu/redmine_theme_kodomo_midori.git kodomo_midori
sudo chown -R www-data:www-data kodomo_midori

3.反映

sudo systemctl restart apache2

4.テーマ変更

  1. redmineにログインする。
  2. 管理>設定>表示に移動
  3. テーマを「Kodomo midori」に変更。

変更後

華やかな見た目とタブの視認性がよく、これだけでも「使って良かった」と実感です。

Page 1 of 2

Powered by WordPress & Theme by Anders Norén