TORIPIYO DIARY

recent events, IoT, programming, security topics

Raspberry Pi 3で自宅git serverを構築してみた

f:id:ha107chan:20160627223817p:plain

この前、soracom主催のIOTの勉強会に参加して、Raspberry Piを初めて触りました。

ラズパイxソラコム キャンペーン 家でもRaspberry Piを扱いたくなり、Rasberry Pi 3で自宅git serverを構築してみました。

まず、Raspberry Piを購入

手元にRasberry Piがなかったので、まずはRasberry Piの購入からです。

Rasberry Piには種類がたくさんありRaspberry Pi - Wikipedia 、どれを購入したらよいかで迷います。大体いまだとRaspberry Pi 2 Model BRaspberry Pi 3 Model Bのどちらかを利用することが主流のようです。最初はRaspberry Pi 2 Model Bのほうがインターネット上に情報がたくさんありそうで、消費電力も低いのでこちらを購入しようと思いましたが、

Raspberry Pi 3 Model Bは、

  • 無線LANを内部に搭載しているので家のいろんな場所に配置できる
  • Raspberry Pi 2 Model Bと値段がそんなに変わらない
  • いまは情報が少ないけど、長くつかえるのはRaspberry Pi 3 Model Bだろう

ということで、Raspberry Pi 3 Model Bを購入しました。

楽天Amazonで値段など比較すると、こちらの商品が一番安くてケースなどもつくのでRaspberry Pi 3の本体と一緒に電源ケーブルmicroSDカードなどを購入しました。お値段、合計で9000円ほど。Raspberry Pi 3には、Element 14版とRS components版があるのですが、インターネットで調べるとどちらもほとんど仕様は変わらないということなのでElement 14版にしています。

Raspberry Pi 3は、Raspberry Pi 2よりも消費電力が大きく、Raspberry Pi 2用の電源では動作が不安定になるそうです。

 

 

Raspberry Piスターターパック (Standard) - Pi3検証済

Raspberry Piスターターパック (Standard) - Pi3検証済

 

Raspberry Piを組み立てる

組み立てると言っても大したことをする必要がありません。 

f:id:ha107chan:20160626154334j:plain

 

付属の説明書に記載の通りにUSB端子にキーボードとマウスのUSBを差し込み、Raspbian OS (Jessie)の入ったmicro SDをRaspberry Pi本体に挿入。(少し挿入口を探すのに迷った。)電源ケーブルを差し込めば勝手にOSが起動します。(電源オンオフのスイッチはないみたい。)

www.raspberrypi.org

電源ケーブルを差し込んでからOS起動するのがすごく早いです。30秒ぐらいでマウスで操作できるようになります。

Raspbian OSの設定

設定を進めます。

ssh 設定

OSを起動すると今回購入したmicroSDのRaspbian OSでは最初からSSH接続できるように設定されていました。パスワードは付属の説明書に記載済み。piユーザというユーザでログインするのですが、すでにsudoで実行する権限が付与されていました。一応、鍵認証でsshできるようにしたかったので、SSHの鍵認証設定 - Qiita このあたりをみて鍵認証に設定変更しました。

無線LABインターフェースのpower managemnetをオフ

sshでRasbian OSにログインしてしばらくすると応答が非常に遅くなります。また、クライアントからpingをRasbian OSに向けて打っても帰ってこない現象が頻発しました。最初は、家のルーターの調子が良くないのかと思っていたのですが、原因は無線LANのUSBアダプタのパワーマネジメント機能がONになっていることでした。

Raspberry Piで無線LANの反応が悪い時の対処法 | ものづくりエクスペリメント

こちらのブログを参考にして、

 

# 変更前のpower managementの状態を見る

sudo iwconfig

# interfaces ファイルを編集する
sudo vim /etc/network/interfaces

# 以下の行を追加する。
wireless-power off

# networkを再起動
sudo /etc/init.d/networking restart

# 変更後のpower managementの状態を見る
sudo iwconfig

 

とすると、安定してSSH接続できるようになりました。

diskサイズの確保

自分が購入したmicroSDに入っていたRaspbian OSは、ルートパーティションに4GBがあてられていて、すでに98%近く使用されていました。このままだと、gitlabがインストール出来ないので

sudo apt-get purge wolfram-engine libreoffice-core libreoffice-common

でwolfram engineやlibre officeなど不要そうなパッケージを削除しましたが、それでもまだ十分な容量を確保出来ません。

microSDは16GBのはずなのに、なんで4GBしかないのかと思い調べるとパーティションを拡張している人がいました。

Raspberry Piの設定【SDカード使用容量の変更(リサイズ)】 - Aldebaranな人のブログ

raspi-configというコマンドがあるらしく、ブログ記載のとおりに実行すると内部でパーティション拡張のスクリプトが走るらしく再起動で無事に拡張できました。

GUIのオフ

Raspberry PiGUIを利用しないのであれば、GUIをオフにしたほうが(気持ち)少しメモリの使用量が減りました。

How to disable desktop GUI on Raspberry Pi - Ask Xmodulo

こちらの記事に書いてあるように、

 

sudo raspi-config

 

のコマンドを実行して、"Boot Options"を選択。さらに、"Console"(Console Autologinではない。)を選択してokすればCUI環境がreboot後に設定されます。

 

rsyslogd-2007: action 'action 19' suspended, next retry is

というメッセージのログが/var/log/syslogに頻繁に出力される場合は、

Raspberry Pi で syslog に rsyslogd-2007: action 'action 17' suspended が出た時の対策 - Qiita

こちらの記事にあるようにrsyslog.confの設定ファイルを修正してrsyslogを再起動すると直るようです。

 

gitlabのインストール

gitlabのページで、Raspbian OS向けのパッケージが配布されています。(Raspberry Pi 2向けのようだけど、いまのところRaspberry Pi 3でも特に問題なく動いている。)

Download GitLab Community Edition (CE) | GitLab

下記のとおりに実行するとgitlabをインストールできます。

 

# 事前に必要なパッケージをインストール

sudo apt-get install curl openssh-server ca-certificates postfix apt-transport-https

# gitlabのkeyを登録
sudo curl https://packages.gitlab.com/gpg.key | sudo apt-key add -

# istall gitlab (結構容量が大きいのでディスクに1GB以上の空きが必要そう)
sudo apt-get install gitlab-ce

 

Rasberry PiのIPアドレスにブラウザからアクセスすると、gitlabの画面が表示されます。

f:id:ha107chan:20160627223817p:plain

 

とりあえず、個人で進めているプロジェクトをここに置いていこうと思います。