Raspberry Piの初期設定を自動化する

1 min read読了の目安(約800字

Raspberry Pi Zeroの初期設定をコードで管理して自動化したい、と思い調べたところ、標準のRaspberry Pi OSにそういった機構は無いようでした。cloud-initが最初から入っていたりしたら嬉しいな〜なんて期待も少ししていたんですが。

調べた中ではOSをインストールしたあとにAnsibleをインストールして……といった手法がありました。が、個人的にはもう少し手軽にできたらいいなあと考えていたら、sshでログインせずにコマンドを実行すればいいことに気がつきました。(要事前のSSHとWifiのheadlessセットアップ)

Terminal
$ ssh -t pi@xxx.xxx.xxx.xxx 'curl -L https://git.io/sasaplus1-setup-raspberry-pi | bash'

https://git.io/sasaplus1-setup-raspberry-pihttps://git.io で初期設定スクリプトにリダイレクトされるようにしている[1]ので、curl -Lでリクエストするとそのスクリプトの内容が取得できます。それをbashに渡しているので初期設定スクリプトが実行されて初期設定される、といった流れになっています(至って普通……)。ssh -tとしているのは初期設定スクリプトの中でsudoを使っているからです。

まあ、これならログインしてスクリプトをダウンロードして実行する手間とさほど変わらない気はしますね……

脚注
  1. URLは https://raw.githubusercontent.com/sasaplus1/setup-raspberry-pi/master/setup に向いています。https://git.io へのURLの登録については https://github.blog/2011-11-10-git-io-github-url-shortener/ に書いてあります。 ↩︎