While there are many ways to test your code under Docker, for example puppet modules with dockunit, discussions about how to run acceptance checks against docker image and container creation are less common. In this post we’ll present one approach using the docker api and serverspec to test the creation and execution of a dockerised Redis. As our first step we’ll create the directory we’ll be test
Dockerfileもある程度かけてきて、次のステップとしてちゃんとイメージが構成されているのか、をテストする方法を実際に構築したDockerfileを用いて記載したいと思います。 Dockerfile まずはDockerfileに構築したい環境を記述していきます。 下記のDockerfileはCentOSにserverspecとansibleの環境を構築したサンプルです。 そのうちwerckerのイメージで使えるか試そうかと構築したものです。 FROM centos:6 MAINTAINER hogehoge RUN yum update -y # install dependency RUN yum install -y git tar gcc openssl-devel epel-release \ libyaml-devel readline-devel zlib-devel \
ServerspecでDockerコンテナをテストするのにDockerバックエンドを利用してみました。 Dockerコンテナ内にSSHDを立てたくなかったので、SSHバックエンドではなくDockerバックエンドでテストを実行したかったのですが、Web上にもあまり情報がなかったのでメモしておきます。 DockerバックエンドについてはServerspec本の中で紹介されています。 DockerバックエンドはDocker Remote APIを利用してテストを実行しているようです。 Serverspec 作者: 宮下剛輔出版社/メーカー: オライリージャパン発売日: 2015/01/17メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る ディレクトリ構成 . ├── Dockerfile ├── Gemfile ├── Gemfile.lock └── spec ├──
インフラをアレしてる佐野です。トレタのコア部分はEngineyardで運用していますが、事業拡大に伴いサブシステムも増えてきました。新しいサブシステムは主にAWSで運用しています。そこで今回は事例として弊社の新規部分のインフラ運用のやり方、そこで使われている道具(Packer, Terraform, Serverspec, Ansible, Roadworker, Circle CI)、考え方などについて書きます。これらの道具はもはやよく知られたものであり、あまり真新しくはないとは思っています。しかしながら弊社に遊びに来た方や採用の応募者の方などからトレタのシステム運用に関する質問をいただくことがあり、その説明資料のかわりになるかな、という目的もあって書かせていただきます。これ以外にも道具はあるのですが、なんとなく興味をもってくれそうなワードをタイトルに羅列させていただきました。以下、目次
フリーランスになって1年が経った というエントリで少しだけ触れた、仕事でも絡んでいる Walter を自分はどう使っているのか、という話を書きます。 TL;DR Serverspec/Specinfra 本体のインテグレーションテストに Walter を Wercker と組み合わせて利用している Wercker は並列実行サポートしてないけど、Walter と組み合わせることで並列実行できて便利 Docker on CoreOS, CentOS 6.5, CentOS 7.0, Ubuntu 14.04, FreeBSD 10.1 の各 VM を使ったテストを並列で実行してる ローカルでも実行できて便利 (Wercker v2 でもできるようになってるけど、Walter の場合は Docker 環境なくてもできる) Dogfooding のため、Walter を Wercker と組み合
著者のmizzyさんこと宮下剛輔氏よりご恵贈いただきました。ありがとうございます。 Serverspec 作者: 宮下剛輔出版社/メーカー: オライリージャパン発売日: 2015/01/17メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る さて、本書について、技術的な側面で語れるひとはたくさんいるだろうので、ちょっと趣向を変えて、エッセイ的な話を書く。ちょうど、著者も「本書は、単なるServerspecに関する解説書ではなく、Serverspecに関する思いを綴ったエッセイとも言えるかもしれません」(「はじめに」より)と書いていることだし。 Serverspec誕生の頃 約2年前の今頃、ある新しいシステムのためにサーバを構築しようとしていて、我々(mizzyさん、@lamanotramaさん、僕)は苦心していた。Puppetでサーバ構成を記述するに際して、もっといけ
Ansibleの設定ファイルを使ってServerspecを実行するテンプレート作成用Gem(ansible_spec)を作りました。Ansible v0.1へアップデートしました。(2015/01/12) 今後はv0.1を使用してくださいm(_ _)m まえがき あけましておめでとうございます。 正月休み中に、タイトルの通り、ansbile_specというGemを作りましたので紹介します。 Gemを覚えたてで何でもGemにしたい症候群に罹っています。 テンプレート作成用Gem(ansible_spec)がすること。 専用のRakefileとspec/spec_helper.rbを生成します。それだけです。 いくつかの決まり事(制限)を守ることで、Ansibleの設定ファイルをもとにSeverspecのテスト先とその内容(ロール)を決め、テストを実行します。 Rakefileとspec/sp
serverspecとdocker-apiでDockerfileをTDD いくつかDockerfileを書いてきた.今書いているDockerfileは短くてシンプルなものばかりだが,もっと長く複雑化した時に不安になりそうだ.不安を解消するにはテストしかない.さらにテスト駆動的にDockerイメージを開発できたら素敵だ.つまり, テストを書く Dockerイメージを作成して,テストの実行 -> RED Dockerfileの編集 Dockerイメージを作成して,テストの実行 -> GREEN テストを… の流れができるとよい. ということで,RSpecを使ってTDDでDockerfileを開発するというのをやってみた,tcnksm/docker-rspec.今回実現したのは以下. Docker Remote APIでDockerfile特有のコマンド(e.g, CMDやEXPOSE)のRSp
全国1000万人のVagrant利用者のみなさんこんにちは。 Vagrantいいですよね!そしてインフラの状態をテストするserverspecもいいですよね!この2つがシームレスに統合されるとかなりうれしいですよね! ということで本日12/2にvagrant-serverspecというプラグインがリリースされたので早速紹介します。 インストールインストールは簡単です。いつも通りvagrant plugin install vagrant-serverspec としてください。 コード自体は https://github.com/jvoorhis/vagrant-serverspec で公開されています。まだバージョン0.0.1なので、問題を見つけたらPR送るなりIssueを切るなりすると良いと思います。 使い方使い方も簡単です。まずVagrantfileを見てみましょう。 これは何をやって
July 31, 2013 2013/12/25 update Testing #chef Cookbook by #serverspec #devopsの続きみたいなものですが Chefのjsonファイルでフラグ立てたりしてると、そのフラグによって テスト対象が変化する場合があるかと思います。 その場合、serverspecにはpropertyの機能があるのでそれを利用します。 spec/spec_helper.rb {% gist 6118553 spec_helper.rb %} set_propertyの項目を追加します。 nodes/host.json {% gist 6118553 nodes_host.json %} こんな感じでこのMySQLはSlaveですみたいなフラグがあって cookbooks/mysql/templates/default/my.cnf.erb {%
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 のテスト
概要 こちら の中で Ansible という python で書かれた構成管理ツールを知った そう言えば、前回の Chef Casual Talks Vol.3 で @urasoko さんも言っていたような... ということで試してみる Ansible についてはこちら インストール 環境 amazon Linux(t1.micro) Debian Wheezy Ansible をインストールする cookbook あえて chef の cookbook で導入 cookbook はこちら knife ec2 server create knife ec2 server create -S xxxxxx -i ~/pathto/xxxxxx -r "recipe[ansible_install_cookbook::ansible]" -I ami-39b23d38 --flavor t1.
昨日 http://d.hatena.ne.jp/naoya/20130620/1371729625 で書いたように Docker を使えば、欲しい VM を "任意の状態" で簡単にかつ" "瞬時に" コピーして作り出すことができる。 「任意の状態」というのは、例えば「OS は CentOS で、Ruby と Chef が入っている」みたいな VM のこと 「瞬時に」というのは本当に瞬時。VM の起動時間を待ったり、Ruby や Chef を入れる時間を待つ必要はない serverspec でテストをする場合、真っ新な VM を用意してそれにプロビジョニングを行って、その後に破棄するみたいなことを良くする。このとき「真っ新なVM」を立ち上げるのに、Vagrant などが使えるが、Vagrant だとテストの度に VM を一から作り直す・・・つまり vagrant up しなければいけない
Busser::RunnerPlugin::Serverspec(以下 busser-serverspec)とは、テストフレームワークBusserのserverspecプラグインです。 Cookbookテストフレームワークtest-kitchen 1.0にて、serverspecを用いたテストを行えます。 serverspecの適用 まず、作業マシンにてRubyGemsでserverspecをインストールしてください。 % gem install serverspec --no-rdoc --no-ri Fetching: serverspec-0.5.0.gem (100%) Successfully installed serverspec-0.5.0 1 gem installed % 適用したいCookbookの test/integration/default/ ディレクトリに移
About V2 Serverspec/Specinfra v2 has been just released. See the document about v2. About With Serverspec, you can write RSpec tests for checking your servers are configured correctly. Serverspec tests your servers’ actual state by executing command locally, via SSH, via WinRM, via Docker API and so on. So you don’t need to install any agent softwares on your servers and can use any configuration
追記(2013/06/04) Warning メッセージについて ***************************************** Using a string as a subject is obsoleted. Please use a subject type object instead. See: http://serverspec.org/matchers.html ***************************************** 上記のメッセージについて serverspec を作られた mizzy さんから、以下のようなコメントを頂いた。 describe partisions do を describe file(partisions) do にしないといけないですね。文字列を直接渡すやり方は、今後サポートされなくなります。 また、 あ
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 はローカル
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く