1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

hbstudy 47

Last updated at Posted at 2013-07-17

====================

serverspec

何をするツール?

サーバの設定をテストするツール

設定をテストするにはどうするの?

ソフトのテストになぞらえると

  • 構文チェック
  • ユニットテスト
    • chefspec
    • rspec-check
  • 結合テスト←今回はここ
    • minitest cheaf handler
    • cucumber chef
    • serverspec ← New!!

serverspec

  • 既存ツールは機能が多すぎる=複雑
  • 他のツールに依存したくない(puppet,chef)

なんでテストが必要?

  • 一度書いたら設定変更しない?いやする
    • 変更が入るなら、テストしなきゃ!
  • 設定のリファクタリング
    • 継続的にやるには自動化!
  • テストコードの読みやすさ
  • テストツールはシンプルであるべき

serverspecってなにさ

  • サーバのテストを「簡潔」に書くための仕組み
  • 書式はrspec
  • テスト対象のサーバがリモートの場合はssh経由でコマンド実行
  • 概念は「スマートにかけるシェルテスト」

serverspecのはじめかた

gem install serverspec rake
serverspec-init
rake spec

簡単

  • sshconfigの設定をちゃんと読んでくれる
  • 意図的にユーザを指定するときは、helperのソースで指定しましょう
  • .rspec に color を書いておこう
  • 設定ファイルの中身も(ある程度)チェックできるよ

serverspecが生まれた経緯

1.puppet使って設定してみた
2.テスト報告書はExcelにあるコマンドをひたすら手実行
3.めんどう。assurerを使ってみたけど、これもめんどう
4.puppetマニフェストのリファクタリング(モジュール化)の必要に迫られた
5.既存のツールは、モジュールがないと出来ない
6.じゃぁ、puppet走らせた後の状態を確認するのがいいんじゃない?
7.作っちゃった

プログラム内部のお話

  • コールスタック例[type/file.rb → backend/exec.rb → commands/redhat.rb]
  • フォーク→ブランチ→コード書いてプッシュ→プルリクエスト
  • 途中で、方針、やり方の確認をしたいときは、[WIP]を付けましょう。

tips

  • テスト対象のサーバを増やすときは「spec」以下にサーバ名のフォルダを掘る
  • ukigumoとか、簡単でいいよね
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?