serverspecみんなで集めて(゚Д゚)ウマー?
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

serverspecみんなで集めて(゚Д゚)ウマー?

  • 2,777 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,777
On Slideshare
2,519
From Embeds
258
Number of Embeds
1

Actions

Shares
Downloads
21
Comments
0
Likes
12

Embeds 258

http://d.hatena.ne.jp 258

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. serverspecみんなで集めて(゜Д゜)ウマー?serverspecみんなで集めて(゚Д゚)ウマー?橋本 将
  • 2. serverspecみんなで集めて(゜Д゜)ウマー?serverspecというgemで遊んでみました● できる事● 構築済みサーバをRSpecでテスト● 参考URL● http://serverspec.org● http://mizzy.org/blog/2013/03/24/3/
  • 3. serverspecみんなで集めて(゜Д゜)ウマー?導入● おもむろに以下を実行$ gem install serverspec$ serverspec-init※以下、出力は加工したもの※Select a backend type: 2(local)Select OS type of target host: 3(Debian)
  • 4. serverspecみんなで集めて(゜Д゜)ウマー?ファイル構成● Rakefile● spec/spec_helper.rb● 接続の仕方(SSHなど)やOS(Debianなど)を変更する場合はここ● あるいはこのファイルだけ削除して再init(作成済みのspecはそのまま)● spec/<ホスト名>/<なにか名前>_spec.rb● ntpd_spec.rbやhttpd_spec.rbなど好みの単位で分けてspecを作成
  • 5. serverspecみんなで集めて(゜Д゜)ウマー?specの作成● こんな記述を追記● 環境によってうまいことやってくれる● 詳細は後述describe httpd doit { should be_installed }it { should be_enabled }it { should be_running }end
  • 6. serverspecみんなで集めて(゜Д゜)ウマー?実行● 以下のコマンドを実行● 構築済みのサーバのテスト!!!● 超age$ rake spec/usr/bin/ruby -S rspec spec/localhost/httpd_spec.rb...Finished in 0.99715 seconds3 examples, 0 failures
  • 7. serverspecみんなで集めて(゜Д゜)ウマー?httpd_spec.rbの詳細(1)● should be_installed● 主語がインストール済みを期待● Debianならdpkg -s <主語>● Redhatならrpm -q <主語>● よしなにしてくれる
  • 8. serverspecみんなで集めて(゜Д゜)ウマー?httpd_spec.rbの詳細(2)● should be_enabled● 主語が有効(ブート時に起動する)事を期待● Debianならls /etc/rc3.d/ | grep <主語>● Redhatならchkconfig --list <主語> | grep 3:on● よしな(ry
  • 9. serverspecみんなで集めて(゜Д゜)ウマー?httpd_spec.rbの詳細(3)● その他● http://serverspec.org/matchers.html● ファイルがsymlinkか見たり● iptablesチェックしたり● ファイルの中身見たり● 色々ある● spec_helper.rbについても省略
  • 10. serverspecみんなで集めて(゜Д゜)ウマー?試しにspecをいくつか書いてみた● 後で以下にpushします● https://github.com/sho-h/serverspec-examples.git$ ls spec/localhostbootlogd_debian_spec.rb mysql_debian_spec.rbpostgresql_debian_spec.rbcron_debian_spec.rb ntpd_spec.rbssh_debian_spec.rb hosts_spec.rbp2p_spec.rb users_spec.rbhttpd_spec.rb postgresql_redhat_spec.rb
  • 11. serverspecみんなで集めて(゜Д゜)ウマー?いくつかピックアップ● bootlogd_debian_spec.rb● users_spec.rb● ntpd_spec.rb● p2p_spec.rb
  • 12. serverspecみんなで集めて(゜Д゜)ウマー?bootlogd_debian_spec.rb● /var/log/bootに起動時のログを保存する設定の確認describe /etc/default/bootlogd doit { should contain "BOOTLOGD_ENABLE=Yes" }end
  • 13. serverspecみんなで集めて(゜Д゜)ウマー?users_spec.rb● ユーザ設定の確認me = ENV["USER"]describe me doit { should_not belong_to_group me }it { should belong_to_group adm }end
  • 14. serverspecみんなで集めて(゜Д゜)ウマー?ntpd_spec.rb● NTPまわりの設定確認● NTPの同期が継続している事を確認describe ntp doit { should be_installed }end...describe ntpq -pn doit { should get_stdout /^*d/ }end
  • 15. serverspecみんなで集めて(゜Д゜)ウマー?p2p_spec.rb● P2P関係のソフトウェアがインストールされていない事を確認● これ関係は深くやるなら別のツールがよい● 簡単なチェックをついでにする程度describe amule doit { should_not be_installed }enddescribe azureus doit { should_not be_installed }end
  • 16. serverspecみんなで集めて(゜Д゜)ウマー?サンプルは以上● 超簡単● コードも少ないので把握も簡単(serverspecも含めて)
  • 17. serverspecみんなで集めて(゜Д゜)ウマー?うれしい事● ヒューマンエラー削減● 経験に頼らないチェックが可能● chef的なツールを使ってなくても導入可● プロジェクト間の共有のしやすさ● 使いまわしやすい● 集まるほどうれしい● 選ぶだけで終わる可能性すらある
  • 18. serverspecみんなで集めて(゜Д゜)ウマー?まだ気をつける必要がある事● アップデート回数が多い● 少し注意● みんなで枯らして使いましょう
  • 19. serverspecみんなで集めて(゜Д゜)ウマー?以上です● ご清聴ありがとうございました● 何かいいアイディアかspecがあればください