0
3

More than 3 years have passed since last update.

CentOS8からUbuntu20.04に移行した話 (初期設定や録画環境構築)

Last updated at Posted at 2021-05-04

前記事に書いたように、CentOS8 が晴れてEOLを迎えるためGWの有り余るヒマ時間貴重な休日を割いてUbuntuに移行した。二度とRHEL系は使わないからな!!バーカ!!
将来再度環境構築する際の自分用の備忘録として記載していく。

お品書き

  • Ubuntuのインストールから初期設定まで
  • 録画環境の構築(人様の記事を見ながら)

Ubuntuのインストール

Ubuntuのインストール後作業

サーバーの完全なシャットダウン・再起動

  • Ubuntuの再インストール後、 「完全に」 シャットダウンする。
  • sudo shutdownの後電源コードを物理的に抜き、5分放置、再度電源をつなげて起動。
  • この作業を行わなかったがためにチューナーがエラーを吐き、1日費やした。

IPアドレスの固定・DNS設定

  • ネットワーク内の別PCから操作するため。
  • IP固定は個人的にはルータ側でMACで指定するのが好み。
/etc/netplan/99_config.yaml
  network:
    version: 2
    renderer: networkd
    ethernets:
      eth0:
        dhcp4: false
        dhcp6: false
        addresses: [192.168.xxx.yyy/24]
        gateway4: 192.168.xxx.1
        nameservers:
          addresses: [192.168.xxx.1, 8.8.8.8, 8.8.4.4]
  sudo netplan apply

sshdの設定変更

  • セキュリティ向上のため
  • 直接sshd_configを設定するのではなく、/etc/ssh/sshd_config.d/*.confを作成。
/etc/ssh/sshd_config.d/my_config.conf
  # 接続ポートの変更
  Port XXXXX 

  # ルートログインの禁止
  PermitRootLogin no

  # 公開鍵認証の有効化
  # パーミッションを .sshは600, authorized_keysは700に設定
  PubkeyAuthentication yes
  AuthorizedKeysFile .ssh/authorized_keys

  # パスワード認証の制限(オプション)
  # PasswordAuthentication no

  # sshバージョンの制限
  Protocol 2
  sudo service ssh reload

firewall無効化

AppArmor無効化

rootのパスワード変更

  • Ubuntu初期インストールにおいてrootの初期パスはなし。
  • sudo passwd root

パッケージマネージャの更新

  • sudo apt update
  • sudo apt upgrade

PostfixからGmail経由でメールを送信する

ClamAVのインストール

  • セキュリティのため。毎日深夜に実行するよう設定
  # インストール
  sudo apt install clamav clamav-daemon

  # ログ関係でエラーが出るので以下を設定
  sudo rm /var/log/clamav/freshclam.log
  sudo touch /var/log/clamav/freshclam.log
  sudo chown clamav:clamav /var/log/clamav/freshclam.log

  # 設定ファイルの書き換え
  #   old: create 640 clamav adm
  #   new: create 640 clamav clamav
  sudo vi /etc/logrotate.d/clamav-freshclam

  # 定義更新
  sudo freshclam

  # サービス起動の確認
  sudo service clamav-freshclam status

  # 定期スキャンスクリプトの作成
  sudo vi /root/script/clam-full.sh
  sudo chmod +x /root/script/clam-full.sh
  sudo mkdir /root/virus

  # 定期スキャン設定
  sudo crontab -e
  # 0 2 * * * /root/script/clam-full.sh >> /var/log/clamav/clamav_scan.log
/root/script/clam-full.sh
  #!/bin/sh
  echo =========================================
  date
  hostname
  clamscan / \
      --infected \
      --recursive \
      --log=/var/log/clamav/clamscan.log \
      --move=/root/virus \
      --exclude-dir=^/boot \
      --exclude-dir=^/sys \
      --exclude-dir=^/proc \
      --exclude-dir=^/dev \
      --exclude-dir=^/var/log/clamav/virus

  if [ $? = 0 ]; then
    echo "Virus not found."
  else
    echo "Virus found."
    cat /var/log/clamav/clamscan.log | mail -s "Server: Virus found" [RecievedErrorMail]@test.com
  fi

Timezoneの設定

ntpを日本のものに変更

  • これをやらないと録画冒頭が10sec程切れて泣きを見る。
/etc/systemd/timesyncd.conf
  [Time]
  NTP=ntp.nict.jp
  FallbackNTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp
  systemctl restart systemd-timesyncd

PowerTopで省電力化

  • 常に起動するサーバーなので省電力化する。
  sudo apt install powertop tlp tlp-rdw
  sudo powertop --auto-tune
  sudo systemctl enable tlp
  sudo systemctl start tlp

ファン制御

  • サーバーを寝室に設置しているのでファンを制御し静穏化する。
  sudo apt install lm-sensors fancontrol
  sudo sensors-detect

  sudo service fancontrol stop
  sudo pwmconfig

mdadmで作成したRaid1ストレージの移行

  • [おま環]一度解除し、再度作成してresyncする必要があった??
  # 一度解除し、再度raid1で設定
  # 通常の環境ならこの作業は必要ないように思う。
  # どうも前環境の時点でデグレ運用していた模様。気づいていなかった…
  mdadm --misc --stop /dev/md0
  mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1

  # 設定の保存とresyncしているかの確認
  mdadm --detail --scan > /etc/mdadm.conf
  cat /proc/mdstat
  • fstabに設定して起動時マウント可能にする
    • sudo blkidでuuidを確認
  # /etc/fstab
  UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /share auto defaults  0 0
/etc/mdadm/mdadm.conf
  ARRAY /dev/md0 metadata= ....
  # メール通知先を設定
  MAILADDR [RecievedErrorMail]@test.com
  • メールのテスト送信
    • mdadm --monitor --test --oneshot --scan

docker, docker-compose インストール

sambaでネットワークファイル共有(Docker, Docker-compose利用)

  • dockerで環境を汚さず共有。録画ファイル等を別PCで見るために利用。
docker-compose.yml
  version: '2'

  services:
    samba:
      image: dperson/samba
      container_name: samba
      ports:
        - "139:139"
        - "445:445"
      volumes:
        - /path/to/share:/mnt/pub
      restart: unless-stopped
      command:
        "-s share;/mnt/pub;yes;no;no;samba;samba -u samba;<PASSWORD>"
    # ---Commandの説明---
    # 設定詳細は https://hub.docker.com/r/dperson/samba を確認
    # Windowsからの接続なのでパーミッションで悩まないAdminにする。
    # 共有用のディレクトリを用意し、Ubuntu上のシステムファイル等を共有しない。
    -s "<name;/path>[;browse;readonly;guest;users;admins;writelist;comment]"
    -u "<username;password>[;ID;group;GID]"

録画環境構築

前記事を記載した時点ではサーバーに直でインストールする方法の記事が多かったが、ここ1年でdockerで作成する方法が増えている。そもそもの本家MirakurunもDocker化しており、少し知識があれば誰でも手間なく録画サーバーを作成できるようになった。また、EPGStationもバージョンが上がりかなり使いやすくなっている。特に検索回りは楽になった。素晴らしい。
参考記事で丁寧に紹介されているため、参考記事を選定理由と共に述べるにとどめる。

  • こちらで紹介されている方法を使用した。

  • 選定理由

    • px4_drvでmirakurun 3.5を利用可能。
    • Dockerfileがあり最悪自分での修正が容易、ただしコンテナ作成に結構な時間がかかる。
    • 過去自分が利用していた方法に近い。
  • その他の方法

    • tv-recorder | https://github.com/collelog/tv-recorder
    • たぶんこれが一番楽だと思います。
    • mirakurun 3.5を試してみたかったので選定から外した。
      • 今回参考にした方法と組み合わせることで少量の改変でtv-recorderでも利用可能になりそう。
    • mirakcやハードウェアエンコが使えそうな雰囲気がある。
      • ラズパイ利用者やハードウェアエンコできる環境ならこちらの方がよい。
      • 自分の場合、厳選したものを録画しCMカットして別のつよつよPCでソフトエンコしてるのでハードエンコの恩恵が薄い。
      • 市販のTVレコーダーのようにとりあえず予約して見たら消すような使い方の人には重宝しそう。

あとがき

1年ちょっとでこれだけ快適に進化してるというのは驚いた。常に勉強することが一番の省力化なのだなと痛感するところです。
あと、スーパーカブの空気感が良い。みんなも録画しよう。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3