Memo/serverspec

http://dexlab.net/pukiwiki/index.php?Memo/serverspec
 

serverspec


Custom Matcher


Host Inventory

  • ec2 metadataの場合
    • host_inventory['ec2']['ami-id'] # => ami-35072834

リソースタイプ

予め用意されているリソースタイプが使える場合は、積極的に使う。 commandは未対応のリソースタイプの場合に使いたい。


rpmでインストールしたい

gemでインストールされるものは多くの依存パッケージがあり、バージョンの依存等の管理が面倒


spec_helper.rb : パスワード認証、公開鍵認証に対応させる

  • filespec_helper.rb
    1. # SSH_USER: 現在のユーザと接続先ユーザが同一の場合は省略可能
    2.  
    3. # パスワード認証
    4. SSH_HOST=localhost SSH_USER=user1 SUDO_PASSWORD=user1pass rake spec
    5.  
    6. # パスワード認証(パスワード入力)
    7. SSH_HOST=localhost SSH_USER=user1 ASK_SUDO_PASSWORD=1 rake spec
    8. > Enter sudo password: user1pass
    9.  
    10. # 公開鍵認証(user1がパスワード無しでsudo出来る場合)
    11. SSH_HOST=localhost SSH_USER=user1 SSH_KEY=~/.ssh/id_rsa rake spec
    12.  
    13. # 公開鍵認証(user1がパスワード有りでsudo出来る場合)
    14. SSH_HOST=localhost SSH_USER=user1 SSH_KEY=~/.ssh/id_rsa SUDO_PASSWORD=user1pass rake spec

設定

  • rspecの設定ファイル (~/.rspec)に設定する
    • --color : 結果に色を付ける
    • --format documentation : 実行時にテスト内容を表示
      1. cat > ~/.rspec << 'EOS'
      2. --color
      3. --format documentation
      4. EOS
  • 環境変数 SPEC_OPTS に設定する
    1. SPEC_OPTS="--color --format documentation" rake spec

インストール

  • ruby 2.0.0以上が良さそう(ruby 1.8.7だと構文エラーが出たため)
    1. rvm install 2.0.0-p451
  • CentOS6.x
    1. gem install serverspec rake
    2.  
    3. # rspec 3.0.0.beta2だと動作しなかったのでダウングレード(エラー: `block in <top (required)>': undefined method `its' for RSpec::ExampleGroups::FileEtcHttpdConfHttpdConf:Class (NoMethodError))
    4. gem uninstall rspec rspec-core rspec-expectations rspec-mocks rspec-support -v 3.0.0.beta2
    5. gem install rspec -v 2.14.1
    6.  
    7. # テスト
    8. serverspec-init
    9. rake spec

添付ファイル: filespec_helper.rb 398件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-17 (金) 14:26:05 (4d)