渡辺です。 Ansibleを使っている皆様、テスト書いてますか? え、書いてない? 弊社では、社内共有しているAnsibleのRoleの検証にServerspecを利用しています。 今日はよく使うリソースタイプを紹介します。 テストの流れ テストのフレームワークとしてはTest Kitchenを利用しています(kitchen-ansiblepushを利用したAnsible roleのテスト環境構築)。 はじめに、Test KitchenのEC2 Driverを利用し、AWS環境にEC2インスタンスを作成します。 次に、ひとつのRoleを実行するAnsibleのPlaybookを流します。 続けて、サーバの状態が期待された状態になっているかをServerspecで検証します。 最後に、AWS環境にEC2インスタンスが破棄されます(検証失敗時は破棄されない)。 Ansibleでもテストの仕組み

この記事はNIFTY Advent Calendar 2016 20日目の記事です。 昨日は二つの意味で自分の同僚である@megane42さんのアイドルに囲まれて仕事がしたかったという記事でした。 最近@megane42さんからアイドル駆動開発という素晴らしいライフハックを教えていただき、自分も開発で合法的(?)に担当アイドルのダイレクトマーケティングがしたいと思っている今日この頃ですが、今回は全く関係ない話です。謹んでお詫び申し上げます。 はじめに 自分が所属している部では自前でvCenterを持って運用していて(社内では珍しい(?)脱ニフティクラウドです)、サーバーの構成管理をするために以下のものを使っています。 serverspec ansible vagrant-vsphere本日はこれらをどのように活用してテスト駆動サーバー運用を行なっているかを書きます。 テスト駆動サーバー運

Serverspec のDocker Backend を使ったDocker コンテナのテストをCircleCI 上で実行する際、多少手こずったので、その試行錯誤によってできた、サンプルプロジェクトを公開しました。GitHub Repository quay.io RegistryCircleCIBuilds 前回の記事で紹介した事例はRails を採用していたので、コンテナ側にもRuby がインストールされており、コンテナ側にマウントするだけで Serverspec を実行できました。docker run \ -eDATABASE_URL="${DATABASE_URL}" \ -e REDIS_URL="${REDIS_URL}" \ -v "$(pwd)/docker/serverspec"\:/mnt/serverspec \ --name "serverspec

RSpec::Matchers.define :have_mysql_entry do |entry| match do |subject| if subject.class.name == 'Serverspec::Type::File' @content = subject.content if @value !! @content.lines.find {|line|line =~ /^\s*#{entry}\s*=\s*#{@value}\s*$/ } else !! @content.lines.find {|line|line =~ /^\s*#{entry}\s?=/ } end else raise "have_mysql_entry matcher should target to file resource" end end chain :with_value do

仮想化やクラウド化が進み、インフラ環境をプログラマブルに構築できるようになってきました。この流れにより、サーバ構築をプログラムにより自動化することも多くなってきています。自動化が進むと、本当に意図した通りに正しくサーバのインストールや設定が実施されているかの確認テストも自動化することが求められるようになってきています。本記事では、このような場面で有用なサーバ状態のテスト自動化フレームワークであるserverspecを紹介します。 serverspecとはなにか? 既に多くの技術系記事にて、serverspecの紹介がされているためご存知の方も多いかと思いますが、本技術ブログでは初登場のテーマであるためserverspecとはなにか?から順を追って解説します。 serverspecは宮下剛輔氏によって開発されたサーバの状態をテストするためのフレームワークです (Serverspec公式
変化の激しいビジネスに対応するためにシステムやサービスには、これまで以上に迅速な導入や安定した運用が求められるようになってきています。このような要求を満たすために、仮想環境やクラウド環境を基盤として利用し、サーバの構築プロセスや構成管理プロセスの効率化のためにChefやPuppet、Ansibleといった自動化ツールが活用されるようになってきています。 このように自動処理で手軽にシステムやサービスをセットアップできるようになると、構築時の人為的ミスを防げるようになるなど便利になる反面、内部で実施されている処理が人の手から離れて、把握しづらくなる傾向にあります。また自動化の導入に際しては、システムが意図した状態に作り上げられているのかを確認する作業も重要になってきます。特に大規模で複雑な環境において、この確認作業を手作業で実施することは、高コストの要因となってしまいます。 参考: Think

第1回では、Serverspecの概要とテストコードを書くまでの事前準備についてご紹介しました。第2回では、より具体的な環境を例として、実際に即したServerspecのテストコードの書き方をご紹介します。テストコードを記述する際のポイント等をまとめ、テストコードの記述をスムーズに実施できるようになることを目的として解説します。 LAMP構成のシステムのテスト 具体的なシステムとして、LAMP(Linux、Apache HTTP server、MySQL、PHP)構成の環境を想定し、この環境に対するテストコードの一例を紹介します。 LAMPの構成を採るシステムの例として、今回は統合監視ソフトウェアのZabbixを稼働させるための環境を取り上げます。LAMP環境のベースとなるLinuxは、CentOS 6.5を想定しています。 稼働状況のテストとして、大まかに以下の4つの部分に分けて各部分の

第1回では、Serverspecの概要とテストコードを書くまでの事前準備についてご紹介しました。第2回では、より具体的な環境を例として、実際に即したServerspecのテストコードの書き方をご紹介します。テストコードを記述する際のポイント等をまとめ、テストコードの記述をスムーズに実施できるようになることを目的として解説します。 LAMP構成のシステムのテスト 具体的なシステムとして、LAMP(Linux、Apache HTTP server、MySQL、PHP)構成の環境を想定し、この環境に対するテストコードの一例を紹介します。 LAMPの構成を採るシステムの例として、今回は統合監視ソフトウェアのZabbixを稼働させるための環境を取り上げます。LAMP環境のベースとなるLinuxは、CentOS 6.5を想定しています。 稼働状況のテストとして、大まかに以下の4つの部分に分けて各部分の

さよならインターネット:CircleCIでDockerコンテナに対してansibleを実行しserverspecでテストをする こちらの補足エントリです。 OSS版Drone.io https://github.com/drone/drone drone.io のオープンソース版です。Golang+Dockerで実装されているCIサービスです。 社内用のCIサービスとして使い勝手良いのでJenkinsの変わりに結構利用しています。 .drone.yml リポジトリにこんなの置いておきます。 Droneではgit入りのイメージが必要なので、今回はDockerRegistry上の別イメージで実行してみました。 2回目以降は前回pullしたイメージを使いまわすので速くなります。 image: tvservices/ubuntu-ansible:13.04 script: - echo "sta
サーバの状態を自動でチェックするためのテスティングツールである「Serverspec」。開発者のmizzyさんが書き下ろした書籍が出版されるということで、著者/出版社の方々からご献本いただきました。ありがとうございます! Serverspec 作者: 宮下剛輔出版社/メーカー: オライリージャパン発売日: 2015/01/17メディア: 単行本(ソフトカバー)この商品を含むブログ (6件) を見る いきなりですが余談 当方も、サーバまわりのプロビジョニングツールとして、2008年頃よりPuppet、2010年頃よりChefを使っていますが、特にChefを使ってからは、それなりの規模の環境で複数名でメンテナンスするケースが多かったので、テストについてはそれなりに頭を悩ませました。 使い始めの頃は、おはずかしながらテストなど全く無く、仮想環境でチェックしていた(普通に目見の他、出力された文字列

About V2 Serverspec/Specinfra v2 has beenjust 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, viaDockerAPI and so on. So you don’t need to install any agent softwares on your servers and can use any configuration
はじめに こんにちは植木和樹です。相変わらずCloudFormationとChefな毎日を送っています。そのおかげで、最近は実験用サーバを設定するときにも極力手作業はなくし、CloudFormationやChefを使って自動化・省力化する習慣がつきました。以前作ったCookbookを使用して、コマンド1つで新環境が構築されたときって気分いいですよね。 さてChefのCookbookが増えてきて徐々に再利用が進んではいるのですが、Cookbookを作成してから数週間もすると「本当にこのクックブックはまだ動くのかな?」と不安になってきます。ここはやはり、Cookbookが正しく適用されることを継続して保証する仕組みがほしいところです。本日はChef Cookbookのテスト自動化の一例として、JenkinsからEC2を起動してからchef-soloを使ってCookbooksを適用し、その後s
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く