Ansible playbookを作成する過程でプロビジョニングが正しく行われていることをテストすることがあります。その際に利用されるテストツールの一つとしてServerSpecというツールがあります。( TestKitchenとDocker・Serverspecで作るAnsibleTDD環境 )ServerSpecはサーバ間の通信が正しく行われていることやプロセスが正しく起動していることなどのテストが行えます。そのServerSpecを利用したAnsible専用のテストツールとして AnsibleSpec というツールが存在します。AnsibleSpecはSeverSpecと同じ構文で記述ができ、テストファイルをAnsibleのプロジェクト内に組み込めるという特徴があります。 今回はAnsible専用のテストツールとして公開されているAnsibleSpecの特徴および使い方を紹介します。

テストしてますか? 渡辺です。「進捗どうですか?」のダメージは計り知れないことはご存じかと思いますが、「テストしてますか?」のダメージも侮れません。 前者はほぼ全てのエンジニアに有効なアタックですが、後者はそれなりの経験を積んだエンジニアにしか有効でない点は異なりますね...。 さて、Ansibleを運用してくるとなれば、どうしても「どうやってテストをすべきか?」という問題にぶち当たります。 そこで、Ansibleを運用する中でのテストの考え方についてまとめておきます。 Ansibleの考え方とテスト Ansibleのような宣言型の構成管理ツールが登場するまで、サーバ構築の自動化といえばセットアップスクリプトの実行でした(自動化されていない場合は、ひとつひとつコマンドを打ち込んでいたでしょう)。 例えば、CloudFormationのcfn-initのUserDataでは次のようなセットア

概要 手動で設定している部分を serverspec を使ってサーバー構築後に一斉にテストしてみた 設定 テストの内容 サーバーごとに以下のファイルに適切にホスト名が設定されているかをチェックした。 /etc/hosts /etc/hostname /etc/mailnameホストごとに spec ファイルを用意してみる 対象ごとに serverspec-init を叩こうとしたが、ちょっと待て...どうやら、spec ディレクトリ以下のホスト名(又は IP アドレス)を解析してそやつを使って対象ホストにアクセスしているようだということで... serverspec-init を実行した後で... cd spec cp -rf ${host1_dir} ${host2_dir} cp -rf ${host1_dir} ${host3_dir} とひたすらコピー... そして defaul
いじってたの6月なので既にだいぶ忘れているのですが、 やりたかったこととしては、 ①attributes.yml方式で、fqdnではなくIPベースで通信先を指定したい。 ②複数host実行でもパスワード入力1回にしたい。 ③指定したhostに対して実行できるようにする。 これらを実現するためにRuby初心者ながら1日くらいかけてRakefileをカスタマイズしてみました。 以下、それぞれ説明します。 ①attributes.yml方式で、fqdnではなくIPベースで通信先を指定したい。 Serverspecのデフォルトは対象host毎にディレクトリを作って実行する方式ですが、 自分の場合はAdvancedTips(http://serverspec.org/advanced_tips.html)の中で紹介されている roleをattributes.ymlで指定する方式で使用しています。 サ
|-- Rakefile `-- spec |-- app | `--ruby_spec.rb |-- base | `-- users_and_groups_spec.rb |--db | `--mysql_spec.rb |-- proxy | `--nginx_spec.rb `-- spec_helper.rb require 'rake' require 'rspec/core/rake_task' hosts = [ { :name => 'proxy001.example.jp', :roles => %w( base proxy ), }, { :name => 'proxy002.example.jp', :roles => %w( base proxy ), }, { :name => 'app001.example.jp', :roles => %w( bas

最近は担当システムが平和だけど俺が平和じゃない。疲れてる。忘年会の連チャンもきっついトシになっちまった。会社の制度で1週間くらい休みがとれるので、一人で温泉とスノボと開発合宿でもしに北海道にでも行こうかなって思ってる。1月か2月くらいに。 えーと、担当しているサービスにserverspecを導入した。それにあたってテスト項目を考えたので軽くまとめる。もちろんserverspec導入前もサーバ構築後は動作確認というか、テストらしいことはしていたっちゃしていたんだけど、テスト項目をまともに考えたのはこれが初めてかもしれない。serverspecのバージョンは0.13.2である。Rubyは2.0.0。 0. 環境 下記のような環境に導入した。ありふれた構成だと思う。60台くらいの規模。DBはマスタ3台に分割されていて、それぞれにスレーブがn台ぶらさがっている。LBの箱は二つあるが、物理的には1台
Resource Typesbond | bridge |cgroup | command |cron | default_gateway |docker_container |docker_image | file | group | host | iis_app_pool | iis_website | interface | ip6tables | ipfilter | ipnat |iptables | kernel_module |linux_audit_system |linux_kernel_parameter |lxc | mail_alias |mysql_config | package |php_config | port | ppa | process | routing_table | selinux | selinux_module | s
September 20, 2013 ミドルウェアの管理はchefを使用している サーバへのデプロイはcapistranoを使用している 上記2点が当てはまる場合、serverspecの使い方として Testing #chef Cookbook by #serverspec #devops / さよならインターネット serverspecでchefのjsonを読み込む / さよならインターネット serverspecをJenkins氏で回す場合について / さよならインターネット 上記エントリーを参考にして頂ければchef + serverspecである程度の インフラストラクチャの構築とテストが行えるかと思います。 また、こちらのエントリーのように、chefのrecipeからserverspecのテスト自体を 生成してしまうという素晴らしいアイデアもあります。最高ですね。 Chef のレ
インフラエンジニア勉強会 hbstudy @hbstudy 【今日】 #hbstudy は今日19:00〜 mizzyさんによる「serverspecが拓いたサーバテストの世界」です!18:45頃開場予定。満員御礼につき予定の確認をお願いします!!! hbstudy#45 - connpass http://t.co/F35g85GtEh 2013-06-21 12:09:09インフラエンジニア勉強会 hbstudy @hbstudy 今日の #hbstudy に参加できないけどserverspecの話を聞きたい方は7/14(日)のJulyTech Festa #techfesta という手も!参加は右上リンクからEventregistから! http://t.co/dYNtxcoXPv 2013-06-21 12:10:08

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