CentOS 8/9 設定 Tips

インストール時

パッケージ管理

yum から dnf に変わった。yumも使えるが、中ではdnfが呼ばれている。

dnfのリポジトリにEPEL/SCLを追加

#以下の操作をしようと思ったら、枯れた Base Repo.ではキツい。

sudo yum install epel-release
sudo yum install centos-release-scl

ソフトウェアRAID

fdiskを使うのはそろそろやめよう。。。

#Disk確認
grep -H "" /sys/block/*/device/model
parted -l

#パーティションテーブル作成
sudo parted /dev/sdb #partedのプロンプト起動
#使用方法
(parted) help
(parted) help [command]
#現在のパーティションテーブル確認
(parted) print
#パーティション設定
(parted) mklabel gpt
(parted) unit MiB
(parted) mkpart primary xfs 0% 100%

#ソフトウェアRAID構築
sudo mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1
cat /proc/mdstat
#Build終了後にファイルシステム構築
sudo mkfs.xfs /dev/md0

#マウントポイント作成
sudo mkdir /data
sudo chmod 0777 /data
#起動時に自動マウントするには/etc/fstabに下の行を追加
/dev/md0 /data xfs defaults 0 0

#以下未確認
#(おまけ)UUIDを使う場合
sudo blkid
/dev/sda1: UUID="872543d7-8f94-4542-8283-a4c70e280ddd" TYPE="xfs" PARTLABEL="primary" PARTUUID="1632dd72-1dfc-475c-a68b-576f88ec5ed3"
#起動時に自動マウントするには/etc/fstabに下の行を追加
UUID=12345abcd.... /data xfs defaults 0 0

RAIDチェック

#/etc/sysconfig/raid-check を下記のように変更
ENABLED=yes
CHECK=check
NICE=low
CHECK_DEVS="md0"
#/etc/cron.d/raid-check にこう書かれているかチェック
0 1 * * Sun root /usr/sbin/raid-check #毎週日曜1時に自動チェック開始
#自動チェックを手動で止めたいとき
cat /sys/block/md0/md/sync_action #idleではなくcheckになっているはず
echo idle > /sys/block/md0/md/sync_action

#エラー時にメール
#/etc/mdadm.confに以下の行を追加
MAILADDR something@*****.com
#sendmail設定
sudo yum install sendmail sendmail-cf sendmail-devel mailx
mail something@*****.com
Subject: test
hogehoge
.
EOT
#でメールが届けば一段階クリア。
#ダメなら何が起こったか以下のログで確認。
#因みに、champは@localhost.localdomainからのメールを弾く仕様です。gmailは問題なし。
sudo tail /var/log/maillog
#mdmonitorが生きているか確認
systemctl status mdmonitor
#テストメール送信
mdadm --monitor --test --oneshot --scan

#RAID運用コマンド
mdadm --detail /dev/md0
mdadm --detail --scan
mdadm --fail /dev/md0 /dev/sdb #ディスクに障害を発生させる
mdadm --remove /dev/md0 /dev/sdb #アレイからディスクを外す
mdadm --add /dev/md0 /dev/sdb #アレイにディスクを追加

#ディスク交換時はconfig fileに情報保存
mdadm --detail --scan > /etc/mdadm.conf

LDAP設定

- Add below in /etc/hosts
192.168.100.101 repicnas repicnas.local
192.168.100.103 repicmet repicmet.local
192.168.100.104 repicdb repicdb.local
192.168.100.105 repicdaq1 repicdaq1.local
192.168.100.106 repicdaq2 repicdaq2.local
192.168.100.107 repicdaq3 repicdaq3.local

- Make SELinux disabled
This is needed to create a home folder by oddjob.
Edit /etc/selinux/config.

- Enabling sssd for authentication
For CentOS 7:
sudo authconfig --update --enablesssd --enablesssdauth --enablemkhomedir
sudo authconfig --test | egrep 'pam_sss|pam_mkhomedir'
For Rocky 8
sudo authselect select sssd with-mkhomedir --force
sudo authselect current

- SSSD setting
sudo yum install sssd sssd-tools sssd-dbus
Create /etc/sssd/conf.d/authconfig-sssd.conf
Contents should be ...
----------------------------
[sssd]
domains = atlasj-itk.repic.jp
[domain/atlasj-itk.repic.jp]
id_provider = ldap
ldap_uri = ldap://repicnas.local/
ldap_search_base = dc=atlasj-itk,dc=repic,dc=jp
----------------------------

Then, create /etc/sssd/sssd.conf
Contents should be ...
----------------------------
[sssd]
config_file_version = 2
services = nss, pam
domains = atlasj-itk.repic.jp
debug_level = 2

[domain/atlasj-itk.repic.jp]
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://repicnas.local/
ldap_search_base = dc=atlasj-itk,dc=repic,dc=jp
ldap_default_bind_dn = CN=admin,DC=atlasj-itk,DC=repic,DC=jp
ldap_id_use_start_tls = True
ldap_tls_reqcert = never
ldap_default_authtok_type = password
ldap_default_authtok = siliconj
cache_credentials = True

[nss]
override_shell = /bin/bash
override_homedir = %H/%u
homedir_substring = /nas/home
----------------------------

sudo chmod 600 /etc/sssd/sssd.conf
sudo chown root:root /etc/sssd/sssd.conf

sudo systemctl start sssd
sudo systemctl enable sssd

#Useful commands to debug the setting
ldapsearch -h repicnas.local -x -D "cn=admin,dc=atlasj-itk,dc=repic,dc=jp" -W -b "ou=people,dc=atlasj-itk,dc=repic,dc=jp" cn=hirose
sudo sssctl user-checks hirose
sudo sssctl domain-status atlasj-itk.repic.jp
Log files are in /var/log/sssd/
Logs for authentication status /var/log/messages and /var/log/secure

TIPS

GCC7導入

sudo yum install devtoolset-7
#下記コマンドでgcc7を使えるようにする
scl enable devtoolset-7 bash

tmux導入

screenは標準repoからは消えた。epelには入っているらしい。

sudo dnf install tmux

~/.tmux.confに以下を追加。PrefixをCtrl-bからCtrl-oへ変更

set-option -g prefix C-o
unbind-key C-b
bind-key C-o send-prefix

システムモニタ導入

#これもepelにしかない
sudo dnf install gkrellm
#以下未確認
sudo dnf install lm_sensors
sudo sensors-detect
sensors

メモリの規格確認

sudo dmidecode --type memory

ネットワーク使用率

ifstat -i [NIC]

ポート確認

#ポートを使用/接続待ちしているプロセス表示
lsof -i -P
ss -ltunp

#ポートスキャン
nmap -p 0-65535 localhost #TCP
nmap -sU localhost #UDP (only for well known ports)
nmap -p 53,37000 -sU localhost #UDP (only for specified ports)

メモリのスペック

dmidecode -t memory

Function GeneratorなどのUSB接続Tips

lsusb -l
#でUSBTMCデバイスであることなどが確認できる場合は、
/dev/usbtmcXXX
#として認識される。
echo "*IDN?" > /dev/usbtmc0
#などでコマンドを送り、別terminalで
cat /dev/usbtmc0
#などで期待しているデバイスのIDが返って来ればOK。
#NI-VISAのドライバなどをインストールして、
rmmod usbtmc
#などで、システムデフォルトのusbtmcドライバを無効化しないとダメな場合もあり。
#そういうケースなら常時無効化するために、
echo 'blacklist usbtmc' > /etc/modprobe.d/nousbtmc.conf
#とかで無効化できる。

ストレステスト

#stressよりも高機能なstress-ngを推奨
sudo dnf install stress-ng
#CPU
stress-ng -c 1
stress-ng -c 1 -l 50 #CPU loadを50%にもできる
#メモリ
stress-ng -m 1 --vm-bytes 128M --timeout 10
#ディスク
stress-ng -d 1 --hdd-bytes 512M

VNCサーバを複数立てる

TigerVNC Serverで複数VNCサーバを立てるには、ディスプレイ番号の違うサービスを新たにスタートする。 ディスプレイ番号は、vncserver@:[N]のようにして[N]に与える数字。この数字が5900に足されたポートでサービスがスタートする。 サーバを追加するには以下。

cp /etc/systemd/system/vncserver@\:1.service /etc/systemd/system/vncserver@\:2.service
systemctl daemon-reload
systemctl start vncserver@\:2.service
systemctl enable vncserver@\:2.service
#必要であればポートも開放
firewall-cmd --list-all #どのサービスが許可されているか確認
firewall-cmd --add-service=vnc-server --permanent #vncを許可。590X/tcpが許可される。
firewall-cmd --reload