屑籠というかゴミ箱

主に家のサーバーの遍歴と使った製品のレビュー

CentOS8入れる

大方針

新型コロナな待機でカッとなってMicroserverGen8の中古をポチって色々やったので、Full Updates期限の切れるCentOS7から8へ移行。Gen8だし
今回のコンセプトは

  • MicroserverがHDD5台行けたけどGen8は4台+αなのでディスク容量どうにかする
  • 一部サービスをコンテナ側に持っていく

な感じ。容量の問題はHDD8TBを追加で買って2TBと3TBのHDDを合算させて終了。
どうせなので、起動ディスクと録画データ用のディスクはSSDに。これまで2TBのHDDを起動用+録画データ保存用に使っていたので、SSD2TBと500GBの2台買って役割分担させることに。

調べたところ、Gen8はスリム光学メディアがオプションにありそこの空きスペースにSSDを転がして換装するのが基本みたい。ただし、相変わらず起動ディスクにはできない罠があるとのことなのでここを2TBのSSDにして、起動用は500GBのSSD買って、3.5インチマウンタに合致するようにアダプタ噛ます形に。
購入したものは光学ドライブがついているやつだったので、そのまま抜き取ると穴が空いて微妙な感じになるのでどうにかできないか調べていると、ノートPC用の光学ドライブのところにSSD突っ込むアダプタが売っていたのでコレを購入して試すことに。

購入したのはアイネックスのHDM-40 HDM-40 | Ainex
説明不足感がすごいけど、購入しても説明書これだけ。

Gen8、固定用に金具が光学ドライブについているんだけどコレを固定できるかが鍵って感じだったけど問題なく付いた。
注意は標準で用意されている工具だと回せなかったこと。トルクスネジのサイズは違った。
工具は以前一式そろえてたので問題なかったけどちょっと気になった。中古だからってことはない気がする
あと、電源がFDDの頃の懐かしのコネクタだったので変換が必要、と書かれていたけどノートPC用のコネクタ(SATA+電源一体型)のものがそのままつけられたので、試すならコレおすすめ。ジャンパで設定色々買えられるらしいけど変更なしで認識した。

f:id:teandt:20200424011507j:plain
SATA+電源のコネクタ


f:id:teandt:20200424011405j:plainf:id:teandt:20200424011245j:plain
HDM-40取り付け
f:id:teandt:20200424011718j:plain
取り付け完成図


とりあえず認識しているので大丈夫そう。
何使ったかは後で書く

インストール

メディアはUSBメモリ
USB3.0のところに指してたらブートできなかったのでブートできるのは2.0のところだけっぽい。
とりあえず最小構成でインストール

最初にvisudo設定。
いつも使ってるグループ設定だけやっておく。

visudoで開いて上記の内容を最下部に記載でOK
ただし、グループ(gomigomi)全体に権限与えたいので以下の記載を

# visudo

最終行に
%gomigomi ALL=(ALL) ALL

IPアドレス設定はDHCPでインストール時にやってしまったのでyum
エイリアス設定がデフォルトで入っているのでyum

# sudo yum update

コマンド関係の入力補完させるのに

# sudo yum install bash-completion

あと作業しやすいようにsshdだけ起動
rootログインだけ不許可に

# sudo vi /etc/ssh/sshd_config

46行目を修正
PermitRootLogin yes
↓
PermitRootLogin no

そして起動

# sudo systemctl restart sshd 

後々色々入れるのでepel入れておく

# sudo yum install epel-release

SELinux

セキュリティレベル的にいらないので無効化

# /etc/selinux/config
で以下に編集
SELINUXTYPE=disabled

環境設定

Docker

※2020/12/11 補足
docker-ce stableにCentOS8用のパッケージが存在するため、このやり方でやらないほうが良さそうなのでそのうちテストする…つもりだったけどCentOS8があっさり終わるので次は検討中
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/

# sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

CentOS8というかRHELがDockerそのまま入れられないようにしているようなので調整
とりあえずwgetも入ってなかったので入れる

# sudo yum install wget
# wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
# sudo yum install containerd.io-1.2.13-3.1.el7.x86_64.rpm
# sudo yum install docker-ce

CentOS7のところから持ってくるとかもうめんどくさ

サービス有効化

# sudo systemctl start docker
# sudo systemctl enable docker

ユーザーをdockerグループに参加

# sudo usermod -aG docker $USER

確認
# id $USER

カレントグループの変更
# newgrp docker

kusomemo.tokyo


このままだとコンテナ内から名前解決できないのでNAPT設定しておく

# sudo firewall-cmd --add-masquerade --permanent
# sudo firewall-cmd --reload

qiita.com

動作確認

・DockerコンテナのDL(Pull)
# docker pull alpine

・DLしたDockerを確認
# docker images

・alpineを起動させる
# docker run -it --rm alpine /bin/sh

・ping
# ping www.google.com

docker-compose

バージョンはgithub調べて調整

# sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose

docs.docker.com

SSDのTrim管理

# sudo systemctl start fstrim.timer
# sudo systemctl status fstrim

NTPクライアント設定

# sudo yum install chrony

設定を変更

# sudo vi /etc/chrony.conf

3行目コメントアウトしてNICTに変更
# pool 2.centos.pool.ntp.org iburst
pool ntp.nict.jp iburst

再起動

# sudo systemctl start chronyd.service
# sudo systemctl enable chronyd.service

xrdpインストール

まずはデスクトップ環境インストール

# sudo yum group install "Server with GUI"
# sodo yum install xrdp
# sudo yum install tigervnc-server
# sudo systemctl start xrdp.service
# sudo systemctl enable xrdp.service

firewallの穴あけ設定はサービス追加で

# sudo vi /usr/lib/firewalld/services/xrdp.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>xrdp</short>
  <description>xrdp service</description>
  <port protocol="tcp" port="3389"/>
</service>
# sudo firewall-cmd --add-service=xrdp --permanent
# sudo firewall-cmd --reload

/etc/xrdp/xrdp.iniの設定をいくつか変更

max_bbp=32を24に修正

[XVnc]の項目をコメントアウト

以下追記

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask-1
delay_ms=2000

ログイン後、日本語入力できるようにKana Kanji入れる
[アクティビティ] --> [ソフトウェア]で検索「ibus - kkc」
再ログイン後、システム設定のRegion&Languageで入力ソースに日本語(かな漢字)を追加して、第一リソースに設定

レポジトリからmozc入れられることが判明

# sudo yum install mozc ibus-mozc

再ログイン後、システム設定のRegion&Languageで入力ソースに日本語(Mozc)を追加して、第一リソースに設定

標準のディレクトリが日本語になる問題を解消

# LANG=C xdg-user-dirs-gtk-update

JDownloader

たまに巨大ファイルをDLするときに使っているのでセットアップ
公式からLinux用のセットアップツールDLしてきて

# chmod +x JD2Setup_x64.sh
# ./JD2Setup_x64.sh

GUIでポチポチすすめる

/etc/xrdp.iniのmax_bbp=32を24に修正しないとJavaの画面がまっしろ
そして日本語文字化けするのでVLゴシックフォントを追加。
多分日本語のttfフォントが無いのかな

# sudo yum install vlgothic-*

git

とってくるのと送るのに使うので

# sudo yum install git
# git config --global user.name "First-name Family-name"
# git config --global user.email "username@example.com"

ツール関係

センサー温度確認

lm_sensors入れる

# sudo yum install lm_sensors

設定関係

samba

共有ディレクトリ用にユーザー作ってそこに格納する方針で今回はいく

# sudo yum install samba

ユーザー作ったら、

これでsambaのシンボリックリンクがホームディレクトリ外に出ていけなくなる問題は解決できるはず

Graylog

なんか以前書いてた気がしたけど履歴になかったので。
Docker-composeでGraylog入れる
composeファイルは別途記載

# docker-compose up -d
# sudo vi /usr/lib/firewalld/services/graylog.xml
?xml version="1.0" encoding="utf-8"?>
<service>
  <short>graylog</short>
  <description>graylog service</description>
  <port protocol="tcp" port="8000"/>
  <port protocol="udp" port="514"/>
  <port protocol="tcp" port="514"/>
</service>
# sudo firewall-cmd --add-service=graylog --permanent
# sudo firewall-cmd --reload

ポート番号は設定に合わせて

# sudo vi /etc/rsyslog.conf

最終行に
*.* @192.168.1.xx:514
*.* @@192.168.1.xx:514

# sudo systemctl restart rsyslog

ffmpeg

# docker pull jrottenberg/ffmpeg:4.1-alpine

gcc

gccやmakeすら入ってなかったわってことで

# sudo yum install gcc
# sudo yum install make

miniDLNA

firewallに穴あけしてdocker-composeファイル作ってやる
vladgh/minidlnaを使うけど、そのままだとメディアディレクトリがパーミッション問題で読めないので、共有ディレクトリ用のグループを追加してやる。
やり方よくわからなかったので、Dockerfileでグループ追加することにした。

xmlいれる
docker-compose.yml

version: '3'
services:
        home_build:
                build:
                      context: .
                      dockerfile: Dockerfile
                      # GIDに共有フォルダのgidを設定する
                      args:
                              GID: 1000
                container_name: minidlna
                restart: always
                logging:
                        driver : "syslog"
                        options:
                                syslog-address: "tcp://192.168.1.1:514"
                network_mode: "host"
                ports:
                        - "8000:8000"
                        - "1900:1900/udp"
                environment:
                        MINIDLNA_MEDIA_DIR_1: V,/media/video
                        MINIDLNA_FRIENDLY_NAME: DLNA Server

                volumes:
                        - /media/videos:/media/video
Dockerfile

FROM vladgh/minidlna

#コンテナ内で追加するグループのid(共有ディレクトリのグループ)
#環境に合わせてgidを設定する
ARG GID

USER root
RUN apk --no-cache add shadow

RUN echo "add group id : $GID"
RUN groupadd -g $GID sharegroup
RUN usermod -aG $GID minidlna

USER minidlna
# docker-compose up -d
# sudo firewall-cmd --add-service=minidlna --permanent
# sudo firewall-cmd --reload


ここから先はまた別の日に一気にやる