タグ: Linux Mint

Chuwi herobox proのLinuxサーバー化(準備編-1-)

こちらを進めるにあたり、まずは物理的な設定を行います。

SSD増設

この機体は、このサイズでありながらSSDスロットがあります。

  1. 蓋を開ける
  2. 固定スペースを取り外す
  3. SSDをコネクタに差し込む
  4. 固定スペースを取り付ける
  5. 蓋を閉める

の順番でSSD取り付け。

インストール前準備

(割と初歩的ですけれど、)こちらが必要です。

  • ディスプレイとケーブル(アナログかHDMIが利用可能)
  • キーボードとマウス
  • 有線と無線のブロードバンド環境
  • LANケーブル
  • Linuxインストールメディア(Rufusを用いてLinuxMint 20.03のブートディスクを作成しました)

インストール

LinuxMintのインストールを行いますが、上述しているようにSSDを取り付けているので、ちょっとした作業が必要でした。

無線LAN設定

Linux Mint 20.03は最初の段階ではherobox proの有線LANを認識しません。なので、無線接続を行い、ブロードバンド環境に接続します。

ディスクパーティション

ディスクの設定はカスタムです。Linuxからは

  • sda :増設した1TBのSSD
  • sdb :最初に備わっている256GBのSSDとして見えています。

これを以下のように設定しました。

sda

すべてを/varに割り当てます。(Webサーバとして運用するため)

sdb

  • 1GBほど、/efiで切ります。(これがないと正常にブートできませんでした
  • 4GBほどをスワップ領域に割り当てます。
  • 残り全ては/として用います。

そうしてディスクのインストールが完了し、

まずはLinuxにログインができるようになりました。

次はSSH接続できるまでを実施します。

redmineサーバのウイルス対策。(ClamAV定期スキャン)

ClamAVでの動作確認が終わりましたので、定期スキャンをかけるようにします。

最初、リアルタイムスキャンを考えてはいたのですが

スキャン中のCPU使用率が相当高いと分かったので、cronで設定しました。

設定

参考:

https://www.yokoweb.net/2017/04/15/ubuntu-server-clamav/

バックアップ用のスクリプトを作成します。

redmine 用
vi /backup/execution/directory/clam-redmine.sh
#!/bin/sh

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


echo =========================================
date
hostname
clamscan /var/lib/redmine/  \
     --infected \
     --recursive \
     --log=/var/log/redmine/clamav/clamscan.log \

     # redmineのログプラグインで見られるようにここにしています
     --remove \

if [ $? = 0 ]; then
  echo "ウイルス未検出."
else
  echo "ウイルス検出!!"
fi
date
フルバックアップ
vi /backup/execution/directory/clam-full.sh
#!/bin/sh

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


echo =========================================
date
hostname
clamscan  / \
     --infected \
     --recursive \
     --log=/var/log/redmine/clamav/clamscan_full.log \
     --remove \
     --exclude-dir=^/boot \
     --exclude-dir=^/sys \
     --exclude-dir=^/proc \
     --exclude-dir=^/dev \
     --exclude-dir=^/home/manualmaton/nas \

     #NASは独自のウィルス対策があるため、重複を防ぎます
     --exclude-dir=^/var/log/redmine/clamav/

if [ $? = 0 ]; then
  echo "ウイルス未検出."
else
  echo "ウイルス検出!!"
fi
date

スクリプトに実行権限を付与します。

chmod +x clam-*.sh

cronを設定します。

crontab -e
以下、追加内容
# Virus Scan daily (redmine)
00 03 * * * /backup/execution/directory/clam-full.sh

# Virus Scan weekly (full)
00 04 * * 5 /backup/execution/directory/clam-redmine.sh

動作確認

スクリプトを実行して動作を確認。

----------- SCAN SUMMARY -----------
Known viruses: 8613098
Engine version: 0.103.5
Scanned directories: 2384
Scanned files: 11764
Infected files: 0
Data scanned: 858.21 MB
Data read: 649.00 MB (ratio 1.32:1)
Time: 222.074 sec (3 m 42 s)
Start Date: 2022:04:24 19:08:02
End Date:   2022:04:24 19:11:44
ウイルス未検出.

これで、多少はセキュリティ対策ができてきました。

redmineサーバのウイルス対策。(ClamAVインストール)

redmineをファイルサーバ化したことでセキュリティ対策が更に重要となりました。

そこで、アンチウィルスソフトを入れることにします。

参考:
https://qiita.com/kannkyo/items/1cc32231afad88c11d8e

環境

  • Linux Mint 20.03
    • 2022/04/24時点でのアップデート完了済み
  • インストールしたClamAVのバージョン:0.103.5

インストール

必要なパッケージをインストールします。

aptitude install clamav clamav-daemon

サービスを起動します。

systemctl start clamav-daemon
systemctl start clamav-freshclam
systemctl enable clamav-daemon
systemctl start clamav-freshclam

動作チェック

cd /tmp
wget http://www.eicar.org/download/eicar.com
#Eicarテストファイルのダウンロード
clamscan --infected --remove --recursive /tmp
# tmp配下をスキャンし、ウィルスを取り除きます
動作後のログ
/tmp/eicar.com: Win.Test.EICAR_HDB-1 FOUND
/tmp/eicar.com: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 8613020
Engine version: 0.103.5
Scanned directories: 21
Scanned files: 8
Infected files: 1
Data scanned: 0.35 MB
Data read: 0.17 MB (ratio 2.02:1)
Time: 36.374 sec (0 m 36 s)
Start Date: 2022:04:24 14:42:12

動くことを確認しました。

次はこれを定期スキャンするように設定していきます。

RedmineのDBバックアップをcron化

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

バックアップ方針

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

USBメモリのフォーマット

Linux MintのGUIで行いました。

/medhia/hoge/USBMEM

として作成。

バックアップスクリプトを作成

vi mysql_backup

ファイル内容

#!/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/USB/Memory/redmine_backup.`date +%Y%m%d`
# 前述した外部ファイルと同じパスであることに注意してください。

Cron登録

sudo su -
crontab -e

cron内容

# redmine_backup (深夜2時に実施)
00 02 * * * /path/to/directory/mysql_backup.sh

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

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

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

Linuxデスクトップのアップグレードと若干の問題点。

ご時世がご時世です。外出できない分の鬱憤を晴らすがため、Linuxデスクトップのさらなる底上げを図りました。

今月半ばに増設したメモリに加え、

  • メインSSDを512MB→1TBに差し替え
  • 新たに4TBのHDDに増設

と、もはやワークステーションには過ぎるスペックにしました。今後のOSの差し替えがしやすいようにHDDのみを/homeに割り当てています。

そして、OSはLinx Mint18から19へとクリーンインストール。記録領域が底上げされたことで様々な検証ができると喜んでいたのですが……

  • HDDのアクセス音が耳に触る
  • VirtualBox上でUbuntuが動かない

という2つの問題が浮上。前者に対しては24時間運用を諦めるワークアラウンドを取るしかなく、後者はHDDの相性の可能性。なんにせよ、追加したものが仇になる勢いです。

Powered by WordPress & Theme by Anders Norén