初めまして。エンジニアのくぼっちです。
今までの経歴ではWEBのサーバやインフラを中心にフロントエンドも加えてやってきたのですが、今はiOSアプリのフロントエンドについて開発しながら勉強しています。
今後はフロントエンドの知識を強化していきたいと思っており、特にJavaScriptでモダンWEBアプリケーションを一度どこかで作りたいと思っています。
今回記事にしますのは社内サーバ用に行ったRaspberry Piの構築手順の覚書となります。
似たような記事は世の中溢れているとは思いますが、以前と比べて随分簡単になっていますしエンジニア以外でも興味を持って貰えると嬉しいです。
事の発端としては、オフィスが決まってしばらく社内インフラの整備を行っていく中で、社内サーバが欲しいという話になりました。
ファイルサーバとしては既にNASを用意していたのですが、やはりバッチ等プログラムの実行が可能な環境が必要でした。
しかし現状、会社の規模もまだ小さいので端末の管理等を行いたいわけでもなく、精々が定期的にバッチを実行したいだとか、NASとスキャナを中継したいだとか、その程度の要件です。
それくらいのためにウン万円のPCを用意するのもバカらしいということで、「ラズベリーパイでいいんじゃないですか?」と言った案が通ることになりました。
今回購入したのはケース付きのこちらの品。
http://www.amazon.co.jp/dp/B00WLHTPW4/ref=twister_B00WLHTPQA?_encoding=UTF8&psc=1
ケースに掘られたラズベリーマークがキュートです。
お値段もその他必要なもの含めてトータル¥8,000行かないので、PCを一台そろえることを考えれば破格です。
OSを書きこむブートディスクはmicroSDです。
OSにはRasberry Pi用にビルドされたDebianであるRaspbianがあるので、それをインストールします。
以前にRaspberry Piを設定したときには、OSのイメージファイルをダウンロードしてきて直接SDカードにブートディスクとして書き出すことをしていましたが、NOOBSという便利なインストーラがあるらしいので今回はそれを利用します。
下記のリンクからzipファイルをダウンロードします。
https://www.raspberrypi.org/downloads/noobs/
windowsのエクスプローラ上で解答したzipの中身を丸ごとSDカードにコピーしてしまいます。
そのままSDカードをラズベリーパイに差し替え、USBマウス、LANケーブル、HDMIケーブルを接続します。
電源を入れます。電源となるmicroBのUSBを接続すれば勝手に立ち上がります。
NOOBSが立ち上がりました。
色々出てきますが、今回使用するRaspbianを選択してInstallを実行します。
インストールが開始されます。とても簡単です。
イメージファイルをSDカードに直接書き込んでいた時にはここまで持ってくるのも面倒なことも多かったですが、便利な時代になったものです。
しばらく待っていればRaspbianが立ち上がります。
この時点でもうPCとして十分に動作するので、とりあえずRaspberry Piを試したいという人はここまでで良いでしょう。
以降ではサーバとして運用するための設定を行います。
ここからはエンジニア以外には難しいかと思います。
一旦ログアウトしてマウスとディスプレイを取り外してしまいましょう。
デフォルトでSSHが立ち上がっているので、Tera Termでクライアントマシンから接続します。
ユーザ/パスワード=pi/raspbianでログインが可能です。
ここまで来れば後は大体ただのDebianです。
ユーザ pi はsodoerなので各種設定を進めていきます。
以降、”$”が頭につく行はコマンドを表します。
・とりあえずアップデートします。
$ sudo apt-get update
・vimがSmall版で色々と勝手が悪いのでインストールします。
$ sudo apt-get install vim
・piユーザのセキュリティがガバガバなので、SSHを鍵認証のみにします。
$ mkdir ~/.ssh
$cd ~/.ssh
$ ssh-keygen -t rsa -f raspberry
$ chmod 600 raspberry.pub
$ cat raspberry (内容をローカルのテキストファイルに保存する)
$ sudo vi /etc/ssh/sshd_config
・削除
PermitRootLogin without-password
・追記
AuthorizedKeysFile %h/.ssh/raspberry.pub
PasswordAuthentication no
PermitRootLogin no
$ sudo service sshd restart
以上で一旦、サーバとして運用できるものになりました。
この後cronの設定や、プリンタドライバのインストール等を行うのですが、せっかくなのでDockerを導入してサービス毎に環境を切り分けたいと考えています。
その辺りのことはまたの機会にお伝えしたいと思います。