cloud-initの利用
現在Raspberry Pi用のAlmaLinuxでは、cloud-initを使って初期設定をすることができるようになっています。
具体的には、mSDなどのストレージにコピーしたAlmaLinuxのイメージのブートパーティション(現在のバージョンではラベル名がCIDATA
となっています)にあるuser-data
というファイルを編集することで、最初の起動時に初期設定を実行することができます。
現在のバージョンには、次のような内容のuser-data
ファイルが存在しています。
hostname: almalinux.local
ssh_pwauth: false
users:
- name: almalinux
groups: [ adm, systemd-journal ]
sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
lock_passwd: false
passwd: $6$EJCqLU5JAiiP5iSS$wRmPHYdotZEXa8OjfcSsJ/f1pAYTk0/OFHV1CGvcszwmk6YwwlZ/Lwg8nqjRT0SSKJIMh/3VuW5ZBz2DqYZ4c1
ssh_authorized_keys:
# Put here your ssh public keys
#- ssh-ed25519 AAAAC3Nz...
ホスト名はalmalinux.local
となっています。初期ユーザーとしてalmalinux
とパスワードのalmalinux
が設定されています。また、このバージョンからはRaspberry Pi OSのようにsudo
コマンドをパスワード無しで実行できるように設定されています。続けて、現在は空になっていますがssh用の公開鍵
を設定することができます。
このファイルを編集することで、任意のホスト名、初期ユーザー名、初期ユーザー用のパスワード、またssh用の公開鍵などをAlmaLinuxの起動時に設定することができるようになりました。
パスワードの設定
上記の例では、SHA-512のハッシュ値を使用したパスワードとなっています。また、その際のソルトとして”EJCqLU5JAiiP5iSS”が使われています。このようなパスワードを作成するためには、いくつかの方法がありますがopenssl
コマンドを使う場合には、次のようにして作成することができます。
$ openssl passwd -6 -salt=EJCqLU5JAiiP5iSS almalinux
ここでは、例としてソルトの値も”EJCqLU5JAiiP5iSS”としてパスワードも”almalinux”としていますが、これらを任意の内容にすることでパスワードを作成して、前期のuser-data
ファイルに設定しておくことができます。
なお、openssl
コマンドのバージョンによっては上記の-6
を指定したSHA-512
に対応していない場合がありますから注意して下さい。
また現在のRaspberry Pi OSでは、-5
としてSHA-256
のハッシュ値が採用されています。
ssh用の公開鍵設定
さらに、user-data
のssh_authorized_keys:
の値としてssh用の公開鍵を設定しておくことができます。
例えば、次のようにしてed25519
の公開鍵を作成することができます。
$ ssh-keygen -t ed25519 -P ""
ここで作成されたid_ed25519.pub
ファイルの内容を上記user-data
ファイルにコピーしておきます。
ssh_authorized_keys:
- ssh-ed25519 AAAA(中略)0BY6
Wi-Fiの接続設定
Wi-Fiの接続設定の場合には、user-data
の最後でnmcli
コマンドを実行する内容を追加することができます。
runcmd:
- nmcli dev wifi connect "SSID" password "パスワード"
これで、起動時からWi-Fiに接続してインターネットを使用できるようになります。
このようにcloud-init
を使用することで、AlmaLinuxをさらに便利に利用できるようになります。
無事に起動したら、インストールされているパッケージを最新の状態に更新してAlmaLinuxを使い始めることができます。
参考: Configuration using cloud-init AlmaLinux公式ドキュメント