Knife-ZeroによるRaspberry Pi3の構成管理

お題

Raspberry Piの構成管理をChefで行いたい。 細かい環境構築やセットアップなどをコード化したい。

環境

・OS: Mac OSX Yosemite ・Chef: 14.5. ・ラズパイ: Raspberry Pi 3 ・ラズパイOS: Raspbian GNU/Linux 9 (stretch)

Knife Zeroのインストール

Knife-Zeroのサイトに記載されている方法に従ってknife zeroコマンドをインストール Installation · Knife-Zero

以下のようにknife zerと打ってUsageが出てくればOK。

$ knife zero
FATAL: Cannot find subcommand for: 'zero'
Available zero subcommands: (for details, knife SUB-COMMAND --help)

** ZERO COMMANDS **
knife zero apply QUERY (options)
knife zero bootstrap [SSH_USER@]FQDN (options)
knife zero chef_client QUERY (options) | It's same as converge
knife zero converge QUERY (options)
knife zero diagnose # show configuration from file

Rasbbian用の設定ファイル用意

bootstrap時には-tオプションで実行したいテンプレートを指摘できる。 以下のサイトにRaspbian用のテンプレートがおいてあったのでそれを利用する。

GitHub - dayne/raspbian_bootstrap: chef bootstrap for raspberry pi

bootstrapの実行

$ knife zero bootstrap -t raspbian-jessie-gems.erb --ssh-user pi --sudo 192.168.11.15
(中略)
ERROR:  Error installing chef:
  ohai requires Ruby version >= 2.4.
Starting the first Chef Client run...
sh: 112: chef-client: not found

よくみると先程ダウンロードしたテンプレート内に以下の記述が。

RUBY_VER=2.3.3

2.4.0に書き換えてあげる

RUBY_VER=2.4.0

別のエラー OpenSSL::OpenSSLError: password must be at least 4 bytes

knife.rbに以下を書き加えてあげる

ssl_verify_mode  :verify_none

bootstrapまではなんとか成功した。