LoginSignup
17
16

More than 5 years have passed since last update.

RaspberryPi2にAnsibleでfluentdをインストールしてServerspecでテストする

Last updated at Posted at 2015-12-13

この記事はAnsible Advent Calendar 2015の14日目の記事です。

20151112090540.jpg

新しく買ったRaspberryPi2にfluentdをインストールしました。

その際にインストールなどの作業をAnsibleで自動化したので公開します。

使ったもの

  • Ansible
    • 構成管理ツール
    • YAMLファイルにサーバーの構成情報(必要なソフトウェアなど)を記載しておくと、その通りにサーバーを設定してくれるツールです。
  • Serverspec
    • サーバー自動テストツール
    • サーバーのあるべき状態(どのプロセスが動いている、など)をRubyのコード(といってもほとんどDSL)として書くことで、サーバーの状態があるべき状態になっているかチェックしてくれるツールです。
  • Ansible-spec
    • Serverspecのテスト実行先の指定として、Ansibleのinventoryファイルに書かれているホストを利用できるようにするパッケージです。

設定内容

スクリプトを流すことで、以下の設定を自動で行い、さらに正しく設定されているかテストしてくれます。

  • roles/common
    • aptパッケージのアップデート
    • Raspberry Piのファームウェアのアップデート
    • Linuxの基本的な設定
    • 時刻・言語を日本語へ
    • ファイルディスクリプタの最大値を上げる
    • ntpd, iptableの起動・設定
    • sshdのセキュリティ設定
  • roles/rbenv
    • rbenv / rubyのインストール
  • roles/supervisord
    • supervisordのインストールと起動
  • roles/fluentd
    • fluentdのインストール
    • 基本的なプラグインのインストール
    • supervisordによるデーモン化

冪等性があるので、何回流しても問題ありません。
ただしパッケージ・ファームウェアなどは最新版へアップデートされます。

使い方

準備

  1. Raspberry PiへRasbian OS(WHEEZY)をインストール
  2. 公開鍵認証でアクセスできるように設定
  3. git clone git@github.com:mia-0032/raspberrypi-fluentd-ansible.git
  4. raspberry_pi.sampleファイルをraspberry_piへリネームし、RaspberryPiのホスト、SSHポート、SSHユーザーを変更する。
  5. もしPC側にAnsibleやServerspecが入ってない場合はインストールする。
$ pip install -r requirements.txt
$ bundle install

実行

PCで以下のコマンドを実行します。

$ ansible-playbook -i raspberry_pi site.yml
$ bundle exec rake serverspec:fluentd

全部OKかChangedであれば成功です。

初回実行時はRubyのビルドに非常に時間がかかる(1時間くらい?)ので注意してください。

まとめ

  • 自動化しておくと、OSを再インストールする時に非常に便利です。
  • コードに落とし込んでおくことで、しばらく経ったあとに、どんな設定したのか忘れてしまう恐れもなくなるので良いですね。
17
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
16