CentOS 8.2.2004をRaspberryPi 4 Model Bへインストール後の初期設定
目次
概要
Raspberry Pi 4 Model Bを購入後、使いみちを考えた結果、 開発したアプリケーションの構成管理サーバとして利用することにしました。 OSは使い慣れているRed Hat系で無料のものが良かったのでCentOS 8を選定。 今後手始めにGitLabをインストール予定ですが、その前にOSの初期設定を行ったので その時の作業メモを残しておきます。
初めて利用するミドルウェアをインストールして検証するため、 firewalldの停止やSELinuxの無効化などセキュリティレベルをあえて下げていますが、 検証が終わって本格利用する時は元に戻す予定です。
構成
サーバ・ハードウェア構成
ハードウェアはRaspberry Pi 4 Model Bのメモリ4GBモデルを利用しました。 ハードウェアスペックは以下のとおりです。 記載を省略していますが、モニタ、キーボード、マウスもラズパイに接続しています。
項目 | 内容 |
---|---|
SoC | Broadcom BCM2711 |
CPU | ARM Cortex-A72 1.5GHz |
GPU | Broadcom VideoCore VI Dual Core 500MHz |
メモリ | LPDDR4 SDRAM 4GB |
有線ネットワーク | Gigabit Ethernet |
microSDカード(システム用) | microSDHCカード 32GB |
サーバ・ソフトウェア構成
OS
CentOS Linux release 8.2.2004 (Core)
ソフトウェア・パッケージ
- CentOS-Userland-8-aarch64-RaspberryPI-Minimal-4-sda.raw.xz
環境構築
インストール
Raspberry Pi 4のシステムディスク準備
OSのバージョンは異なりますが、以下の手順に沿ってラズパイ4用のシステムディスク(microSDカード)を準備しています。
CentOS 7.8.2003をRaspberry Pi 4のmicroSDカードへインストール
使用したCentOS 8.2.2004のOSイメージは下記ページからダウンロードしました。
CentOS-Userland-8-aarch64-RaspberryPI-Minimal-4-sda.raw.xz
設定
タイムゾーンの設定
OSインストール後の初期状態ではタイムゾーンの設定がUTCとなっているので、日本とは時刻が9時間ズレています。 タイムゾーンに東京を設定し、JST(日本標準時)を表示できるように変更します。
# timedatectl Local time: Tue 2021-04-13 21:44:56 UTC Universal time: Tue 2021-04-13 21:44:56 UTC RTC time: n/a Time zone: UTC (UTC, +0000) ←初期設定はUTC System clock synchronized: yes NTP service: active RTC in local TZ: no # timedatectl set-timezone Asia/Tokyo ←タイムゾーンを東京に設定 # timedatectl Local time: Wed 2021-04-14 06:46:22 JST Universal time: Tue 2021-04-13 21:46:22 UTC RTC time: n/a Time zone: Asia/Tokyo (JST, +0900) ←JSTに変わった System clock synchronized: yes NTP service: active RTC in local TZ: no
ロケールとキーマップの設定
OSインストール後の初期状態ではロケールは米国、キーマップも英字キーボードとなっているので、 ロケールを日本、キーマップも日本語キーボードに変更します。
# localectl System Locale: LANG=en_US.UTF-8 ←ロケールは米国 VC Keymap: us ←英字キーボード X11 Layout: n/a # localectl set-locale LANG=ja_JP.utf8 ←ロケールを日本に設定 # localectl set-keymap jp106 ←キーマップを日本語キーボードに設定 # localectl System Locale: LANG=ja_JP.utf8 ←ロケールが日本に変わった VC Keymap: jp106 ←キーマップが日本語キーボードに変わった X11 Layout: jp X11 Model: jp106 X11 Options: terminate:ctrl_alt_bksp
ルートファイルシステムの拡張
CentOSのOSイメージをmicroSDカードに書き込む方法でOSをインストールした後は、 microSDカードの容量に関係なくルートパーティションのサイズが2.2GBとなっています。 そのうち70%をOSが使用しているので、残りは30%(約650MB)しかなく、 ミドルウェアをインストールしたりログが書かれることを考えると小さすぎます。 また、microSDカードに空きがあるままだともったいないので、空き容量を全て ルートファイルシステム(ルートパーティション)の拡張に使うこととします。
# fdisk -l /dev/mmcblk0 Disk /dev/mmcblk0: 29.2 GiB, 31322013696 bytes, 61175808 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x09fa559b Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 8192 593919 585728 286M c W95 FAT32 (LBA) /dev/mmcblk0p2 593920 1593343 999424 488M 82 Linux swap / Solaris /dev/mmcblk0p3 1593344 6281215 4687872 2.2G 83 Linux ←ルートパーティションは2.2GB # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 2241560 1536760 664980 70% / ←ルートファイルシステムはOSだけで70%使用済み devtmpfs 1911148 0 1911148 0% /dev tmpfs 1944428 0 1944428 0% /dev/shm tmpfs 1944428 24964 1919464 2% /run tmpfs 1944428 0 1944428 0% /sys/fs/cgroup /dev/mmcblk0p1 292696 54872 237824 19% /boot tmpfs 388884 0 388884 0% /run/user/0 # rootfs-expand ←ルートファイルシステムの拡張 /dev/mmcblk0p3 /dev/mmcblk0 3 Extending partition 3 to max size .... CHANGED: partition=3 start=1593344 old: size=4687872 end=6281216 new: size=59582431,end=61175775 Resizing ext4 filesystem ... resize2fs 1.45.4 (23-Sep-2019) Filesystem at /dev/mmcblk0p3 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 4 The filesystem on /dev/mmcblk0p3 is now 7447803 (4k) blocks long. Done. # fdisk -l /dev/mmcblk0 Disk /dev/mmcblk0: 29.2 GiB, 31322013696 bytes, 61175808 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x09fa559b Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 8192 593919 585728 286M c W95 FAT32 (LBA) /dev/mmcblk0p2 593920 1593343 999424 488M 82 Linux swap / Solaris /dev/mmcblk0p3 1593344 61175774 59582431 28.4G 83 Linux ←ルートパーティションが28.4GBに拡張された # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 29259424 1542352 27677252 6% / ←ルートファイルシステムも拡張され使用率6%となった devtmpfs 1911148 0 1911148 0% /dev tmpfs 1944428 0 1944428 0% /dev/shm tmpfs 1944428 24968 1919460 2% /run tmpfs 1944428 0 1944428 0% /sys/fs/cgroup /dev/mmcblk0p1 292696 54872 237824 19% /boot tmpfs 388884 0 388884 0% /run/user/0
有線ネットワークの設定
OSインストール後はIPアドレスなどネットワークの設定をDHCPで取得するようになっています。 サーバとして利用するにはIPアドレスが動的に変わると都合が悪いので、ネットワーク設定を固定にします。
# nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 b9f7a826-6728-32e7-abaa-6698b85bb041 ethernet eth0 ←設定対象の有線ネットワークコネクション名を確認 # ip a ←設定変更前のネットワーク設定・状態を確認 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 ←設定変更対象の有線ネットワーク link/ether dc:a6:32:8f:0d:37 brd ff:ff:ff:ff:ff:ff inet 192.168.0.252/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0 valid_lft 82693sec preferred_lft 82693sec inet6 fe80::a08c:88fc:1fbf:e040/64 scope link noprefixroute valid_lft forever preferred_lft forever # nmcli connection modify "Wired connection 1" ipv4.address 192.168.0.106/24 ←IPアドレスの設定 # nmcli connection modify "Wired connection 1" ipv4.gateway 192.168.0.1 ←ゲートウェイの設定 # nmcli connection modify "Wired connection 1" ipv4.dns 192.168.0.1 ←DNSサーバの設定 # nmcli connection modify "Wired connection 1" ipv4.method manual ←ネットワークを手動設定に変更 # nmcli connection down "Wired connection 1" ←設定変更を反映させるためにネットワークの停止 # nmcli connection up "Wired connection 1" ←ネットワークの起動 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) # ip a ←設定変更後のネットワーク設定・状態を確認 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether dc:a6:32:8f:0d:37 brd ff:ff:ff:ff:ff:ff inet 192.168.0.106/24 brd 192.168.0.255 scope global noprefixroute eth0 ←設定変更が反映されている valid_lft forever preferred_lft forever inet6 fe80::a08c:88fc:1fbf:e040/64 scope link noprefixroute valid_lft forever preferred_lft forever
firewalldの停止
今回はARM版ミドルウェアの動作検証目的でOSを準備しているので、firewalldを停止しておきます。 正常に動作しないときに問題の切り分け対象を減らしたいので。 本番運用するときはfirewalldを停止せずに運用します。
# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) ←自動起動有効 Active: active (running) since Fri 2018-06-22 20:12:07 JST; 2 years 9 months ago ←起動状態 Docs: man:firewalld(1) Main PID: 316 (firewalld) Tasks: 2 (limit: 23888) CGroup: /system.slice/firewalld.service mq316 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid 6月 22 20:12:00 localhost systemd[1]: Starting firewalld - dynamic firewall daemon... 6月 22 20:12:07 localhost systemd[1]: Started firewalld - dynamic firewall daemon. 6月 22 20:12:07 localhost firewalld[316]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure config> # systemctl disable firewalld.service ←firewalldの自動起動無効化 Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. # systemctl stop firewalld.service ←firewalldの停止 # systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: man:firewalld(1) 6月 22 20:12:00 localhost systemd[1]: Starting firewalld - dynamic firewall daemon... 6月 22 20:12:07 localhost systemd[1]: Started firewalld - dynamic firewall daemon. 6月 22 20:12:07 localhost firewalld[316]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure config> 4月 14 21:30:01 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon... 4月 14 21:30:02 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
SELinuxの無効化
firewalldと同じ理由で無効化します。 設定変更したあとは変更を反映させるためにOSを再起動します。
# cd /etc/selinux/ # vi config
※以下、該当箇所のみ変更※ SELINUX=enforcing ↓変更 SELINUX=disabled
# shutdown -r 0