Mac用。RaspbianでもChefが使えるのでknife-solo
を実行するまでのメモ。
RaspbianをSDカードに焼く
- DownloadからRaspbianイメージをダウンロードする
-
.zip
の場合は.img
ファイルに展開しておく
- SDカードを指す
-
df -h
でSDカードのディスク名をチェックする
-
/dev/diskNsX
がディスク名なら/dev/rdiskN
がrawディスク名となる - 例えば
/dev/disk1s1
なら/dev/rdisk1
-
dd
コマンドでイメージを焼く
Macがインストールされたハードドライブを間違えて更新しないように指定するディスクは注意して確認すること
実行例: SDカードが/dev/disk2s1
で~/Download/2015-05-05-raspbian-wheezy.img
を焼く場合
cd ~/Downloads
sudo diskutil unmount /dev/disk2s1
sudo dd bs=1m if=2015-05-05-raspbian-wheezy.img of=/dev/rdisk2
sudo diskutil eject /dev/disk2s1
raspi-config
最初の起動時にraspi-config
が起動する。しない場合はTerminalから sudo raspi-config
を実行する。任意のタイミングでraspi-config
は呼び出せる。
設定後、rebootを促されたら再起動する。
パーティションの拡張
初期イメージのままだと2GBまでしか使えないのでSDカードをフルに利用するためにパーティションの拡張を実行する。
- Expand Filesystem
日本仕向け設定
日本語フォントがないとja_JP.UTF-8
で文字化けするのでLocaleの設定はPCからリモートで繋いでからでも良いかもしれない。
- Internationalisation Options > Change Locale > ja_JP.UTF-8
- Internationalisation Options > Change Timezone > Asia > Tokyo
- Internationalisation Options > Change Keyboard Layout > Generic 101-key PC > Other > Japanese > Japanese > The default for the keyboard layout > No compose key
ホスト名設定
ホスト名を変更しておく、デフォルトだとraspberrypiなので複数台管理するとややこしくなる。
- Advanced Options > A2 Hostname >
rpi01
無線LANの設定
優先LANを使うのであれば必要なし、USB無線LANアダプタ使う場合は無線LANの設定をする。
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YOUR_SSID"
psk="YOUR_PASSWORD"
# 0: default, 1: stealth
scan_ssid=0
}
YOUR_SSID
やYOUR_PASSWORD
を置き換えて、ステルスSSIDならscan_ssid
を1
に設定するなど。
sudo reboot
IPアドレスのチェック
リブート後、Username: pi
Password: raspberry
でログインし、IPアドレスを調べる。
ifconfig
実行するコマンドをコピペしていきたいのでIPアドレスがわかったらPCからsshで接続する。(192.168.1.30
を置き換えて読む)
ssh pi@192.168.1.30
パッケージを更新
パッケージを更新。時間がかかるのでしばし待つ。
sudo apt-get update
sudo apt-get upgrade
vimを使う
nanoが使いこなせないので /usr/bin/vim.tiny を使う。
sudo apt-get install -y vim
sudo update-alternatives --set editor /usr/bin/vim.tiny
ユーザの作成
電気工作で遊ぶだけならpi
ユーザのままでいいけど、外部公開するサーバの場合は以下のような対応を行うのが良いと思われる。(<youraccount>
のところを自分のアカウント名に置き換えて読む)
-
pi
ユーザでpasswd
コマンドを実行しpi
ユーザのパスワードを変更しておく -
sudo passwd
コマンドを実行しroot
のパスワードを変更しておく -
sudo adduser <youraccount>
でユーザを追加する -
sudo visudo
で<youraccount> ALL=(ALL) NOPASSWD: ALL
を最後に追加する - Chef Soloを使うため パスワード無し
sudo
を実行できるようにしておく
#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
<youraccount> ALL=(ALL) NOPASSWD: ALL
sshの設定
sshの公開鍵を送りつける。(ssh-copy-id
はHomebrewからインストールできる)
ssh-copy-id 192.168.1.30
追加できたらパスワードなしでssh出来るかチェック。
ssh 192.168.1.30
ログインできたらsudo vi /etc/ssh/sshd_config
で編集してrootのログインとパスワード認証を無効にしておく。外部公開するサーバならポートも変更しておく。
#PermitRootLogin yes
PermitRootLogin no
...
#PasswordAuthentication yes
PasswordAuthentication no
一番最後に以下を追加してLAN内からはパスワード認証を許可しておく。
Match Address 192.168.*.*
PasswordAuthentication yes
ssh再起動
sudo /etc/init.d/ssh restart
Chefでセットアップ
chef-soloでセットアップしたい人向け。
jessieではRaspbian側にruby2.1-dev
を入れておかないとknife solo prepare
でchefがインストールされなかった、以下でruby2.1-dev
をインストールする。
sudo apt-get install ruby2.1-dev
Ruby 2.2.2以上が必要なRack 2.0がインストールされるようになりknife solo prepare
でchefがインストールされない場合、自分でchefをインストールする。
sudo gem i rack -v 1.6.4 --no-ri --no-rdoc
sudo gem i chef --no-ri --no-rdoc
あとはChefのレシピ書いてMacからknife-solo
で頑張る。
knife solo prepare 192.168.1.30
knife solo cook 192.168.1.30
ChefでPlatformを使って分岐する場合、Raspbianは以下のような値を持つ。
key | value |
---|---|
platform | raspbian |
platform_family | debian |