はじめに こんにちは植木和樹です。相変わらずCloudFormationとChefな毎日を送っています。そのおかげで、最近は実験用サーバを設定するときにも極力手作業はなくし、CloudFormationやChefを使って自動化・省力化する習慣がつきました。以前作ったCookbookを使用して、コマンド1つで新環境が構築されたときって気分いいですよね。 さてChefのCookbookが増えてきて徐々に再利用が進んではいるのですが、Cookbookを作成してから数週間もすると「本当にこのクックブックはまだ動くのかな?」と不安になってきます。ここはやはり、Cookbookが正しく適用されることを継続して保証する仕組みがほしいところです。本日はChef Cookbookのテスト自動化の一例として、JenkinsからEC2を起動してからchef-soloを使ってCookbooksを適用し、その後s
Chef で rbenv でruby をインストールするための Cookbook を以前作成したのですが、それに対する Serverspec テストを書きました。以下の Chef Cookbook に対応するテスト。 Chefでrbenvとruby-buildをインストール | EasyRamble ※ 2014/08/06 serverspec でsudo なしでコマンドを実行する方法について追記しました。全てのリソースで “let(:disable_sudo) { true }” や “:sudo => false” のオプションを付けるなどの方法で、sudo なしでコマンドを実行できるそうです。 rbenv,ruby が正しくインストールされているか確認する serverspec コード 以下をチェックしています。 1. /usr/local/rbenv/bin/rbenv に

社内勉強会で発表した資料です。 serverspecの基本から属性値の管理、カスタマイズ方法まで紹介しています。 ※2013/8/14 version 0.7.8時点の情報なので注意
こんにちは。小宮です。 今回で最終回です。 前回までにご紹介したレシピのテストするところをご紹介します。Serverspecを用います。 なぜServerspecがいいかというのは以下リンクにも書いてますが、以下の点がよいと思います。 ・Chefのテストツールでなく外部のツールなので依存関係がない(puppetでも使える) ・設計思想がシンプル簡単に使えるものということで、手間があんまりなくて簡単につかえた 参考: Serverspec at hbstudy #45 入門Chef Solo落ち穂拾い kayac/newbie-training 「入門Puppet」 resource_typeのマニュアル advanced_tips ncstudy#05 ハンズオン資料 parallel_tests ・セットアップ バージョン0.3と0.6だとテストの書き方が若干違う感じだったので、マニュア

tily/chef-serverspec-handler ·GitHub 『Chef のレシピは「こうあるべき」を記述するものだから、レシピからテストが自動生成できるべきだよな』とずっと思っていたんだけど、最近触りはじめた serverspec がシンプルで簡単に自動生成できそうなのでやってみた。 使い方は上記リンクに書いてある通りなのですが、たとえば Chef のレシピにこう書いてあるやつを、template '/var/tmp/template.txt' do source 'template.txt.erb' mode 0777 owner 'root' group 'root' variables(:val1 => 'val1', :val2 => 'val2', :val3 => 'val3') action :create end このような serverspec のテスト
Jenkins おじさんと戯れること半日、うまくいったので備忘録を残しておく。 やりたかったのは Chef で構築したサーバーを Jenkins で CI する、というもの。このときサーバーはテストが終わる度に破棄して、テスト開始時に再度真っ新な状態から立ち上げたい。(こういうサーバーを壊して作ってというテストはなんという名前で呼ばれるのだろう?) 仮想サーバーを破棄/作成をプログラマブルにやるのはもちろん Vagrant プロビジョニングは Chef Chef の環境を整えるのに knife-solo 0.3.0.pre3 テストは serverspec コードはGithub に上げる (https://github.com/naoya/jenkins-vagrant-test) CI は Jenkins という構成になっている。ひとまず Jenkins や Vagrant はローカル

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く