Raspberry Pi 4
https://www.raspberrypi.org/homepage-9df4b/static/pi4-labelled@2x-0894491e6de97a282dde5a5010cc8b61.png
飼ってる Pi 一覧
Pi 共通のセットアップ
(たぶん) ロールによらない共通のセットアップ手順についてまとめておく。
Arch Linux のインストールと最低限の手積みセットアップ
SD カードリーダーが使える手元のマシンは macOS だったが、VirtualBox の USB サポートを使って仮想環境で Linux を起動して公式ドキュメントのインストール手順を踏むのが楽。わざわざ VirtualBox 上に Arch Linux をインストールせずとも、Arch Linux のインストール用の ISO ファイルを仮想マシンの光学ドライブに設定して起動すれば、fdisk や mkfs といったおなじみのツールで SD カードを操作できる。 ただし、wget で OS 一式をダウンロードするときに /root が埋まって disk full になるので、別途大きめのディスク領域を用意しておく必要がある。そこらへんにあった USB フラッシュドライブを使ったが、LInux の起動オプションで tmpfs の領域を大きくすることもできるかも (未確認)。 bsdtar コマンドの部分は、tar -zxvf tmp/ArchLinuxARM-rpi-4-latest.tar.gz -C root のように読み替えて展開した。
ちなみに、パーティションは MBR Only で切る必要がある。GPT にするともれなく起動しないので注意 (ハマった....)。
デフォルトで sshd と DHCP によるネットワーク接続がセットアップされているので、Pi から伸ばしたイーサネットケーブルをスイッチに接続し、電源を入れると SSH 可能。alarm および root ユーザが存在し、デフォルトではユーザ名と同様の文字列がパスワードとして設定されているので、適宜変更しておく。
SSH ログインしたら、pacman keyring の設定をして、以下の最低限必要な手積みによるセットアップをする。
code:bash
pacman -S vim sudo rsync base-devel # この辺は手積みで入れておかないと、のちのちこまる
visudo
# %wheel ALL=(ALL) NOPASSWD: ALL のコメントアウトを外す
useradd -m -G wheel -s /bin/bash mozamimy
passwd mozamimy
hostnamectl set-hostname selene-001
vim /etc/pacman.conf
pacman-key --recv-keys 17C611F16D92677398E0ADF51AD43CA09D82C624
pacman-key --lsign-key 17C611F16D92677398E0ADF51AD43CA09D82C624
# 後述の diff のようにして sorah の AUR リポジトリを追加する
pacman -Syuu
code:diff
--- pacman.conf.old 2019-12-03 19:41:24.120122461 +0900
+++ /etc/pacman.conf 2019-12-03 19:59:38.405020521 +0900
@@ -85,6 +85,8 @@
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
-#SigLevel = Optional TrustAll
-#Server = file:///home/custompkgs
+
+SigLevel = Required
+
ユーザを作ったら、scp で手元の公開鍵を ~mozamimy/.ssh/authorized_keys に設置し、パスワード認証の口を潰すために /etc/ssh/sshd_config を以下のように変更して systemctl restart sshd する。
code:diff
--- sshd_config.before 2019-12-01 07:33:55.493732362 +0000
+++ /etc/ssh/sshd_config 2019-12-01 07:41:05.707820727 +0000
@@ -34,7 +34,7 @@
-#PubkeyAuthentication yes
+PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
@@ -54,8 +54,8 @@
# To disable tunneled clear text passwords, change to no here!
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
+PasswordAuthentication no
+PermitEmptyPasswords no
# Change to no to disable s/key passwords
ChallengeResponseAuthentication no
また、SSH ログインしやすいように、Route53 に A レコードを追加したり、SSH config の更新もやった。 hocho の設定で、以下のように mitamae_prepare_script を設定すれば、アーキテクチャを判別して Pi の場合に ARM 用のバイナリをセットアップすることができる。 code:yaml
property_providers:
- add_default:
properties:
preferred_driver: 'mitamae'
driver_options:
mitamae:
mitamae_path: '/usr/local/bin/mitamae'
mitamae_prepare_script: |
echo "2d5d93b76c5a97c441f5693c5d7db5035bddcb8281f16ac96b5e12039d6dacbf /usr/local/bin/mitamae" | /usr/bin/core_perl/shasum -a 256 -c &&
chmod +x /usr/local/bin/mitamae
else
echo "c3e0a1d3e7dfaac5057cf63c94a0cb34ec5570edbcc164d1a0573130315d3076 /usr/local/bin/mitamae" | /usr/bin/core_perl/shasum -a 256 -c &&
chmod +x /usr/local/bin/mitamae
fi
Mitamae のバイナリさえ入ってしまえばこっちのもの。あとは適当に selene role を追加して、利用する cookbook を書いていけば快適に環境構築ができる。arch.sorah.jp に Mitamae のバイナリがあるので、そちらでインストールするのも手かも。 やってみた系メモ