![[新人研修] ChefとServerspecでテスト駆動インフラ開発 #getchef #serverspec - クリエーションライン株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/3576b0b6208b91787eecff8e7914dcf893335a64/height=288;version=1;width=512/https%3A%2F%2Fwww.creationline.com%2Ftech-blog%2Fcms_x3GWkuX%2Fwp-content%2Fuploads%2F2013%2F01%2Fcl-logo.png)
Chef & Test Kitchen+Serverspec & Docker & PackerによるInfrastructure as Code事始めchefDockerserverspectest-kitchenpacker Chef、Test Kitchen+Serverspec、Docker、及びHashiCorp Packerを活用して、Infrastructure as Codeを体験してみる。 Test Ketchen + Serverspecを用い、ローカルのDockerコンテナ上でcookbookのテスト実施 Packerを用いてcookbookからDockerイメージを生成し、cookbook適用済のDockerコンテナをローカルで起動して動作確認 Knife zeroを用いて、テスト済みのcookbookを他のサーバに適用 cookbookを適用する対象のOSは、Ub
CircleCI自体もコンテナなんだが、さらにその上でdockerコンテナ立ててcookbookのテストしてしまうというアレです。 「Docker使えるならChef要らないじゃん」という話は大賛成なんだが、既存のcookbook資産を使いたいことも、まあある。 【追記】続きにさらにテストの時間短縮させる工夫書いた 動いたの? 動いた!!!!!!!!!!! 最小限で動いたところでタグを切った。コードは下記リンク参照。 CircleCI上で、 「chefでdockerコンテナにcookし、それをserverspecでテストする」 を実現しています。 以下、ポイントなど CircleCIでdockerをどう準備するか 無理にapt-get -y install dockerとかやってインストールしても、docker psすら返ってこなくなる。 公式にサポートしてるserviceを使うとうまくいっ
ここ最近、タイトルの通りのことをやろうとしていて、そのための雑記(記録)を書いていこうと思います。 目的 自動化できるところは可能な限り自動化し、テストできる(すべき)ところは可能な限りテストする、といった当たり前のことを当たり前にやって、開発業務を効率化する、というのが目的。 以下のようなアプリケーションをターゲットにします。ビルド職人、デプロイ職人への依存度を小さくし、なるべくシンプルで統一的なフローにしたいと思います。 Java EE Ruby on Rails Node.js ツールの検討 ツールは目的ではなく手段なので何でもよいのですが、Jenkins, Capistrano3, Chef, serverspec, Dockerといったツールを選ぶにあたっての評価ポイントは以下。 使い慣れているかどうか 情報量が多いか、公式のドキュメントが整理されているか オープンソースであるこ
僕 bats 好きなんですよ。なので Test-Kitchen でめっちょテスト書きます。なんとなくふわっとした複合的な要件は Serverspec で書きます。どちらにせよ、アプリじゃ無くてインフラなので、普段の25倍くらいは書きたいところです。 そんでいっぱしのレシピが書けて、クックブックが仕上がって、 git push して、そのあといろんなやり方で実際の環境、成果物をつくりますよね。自分の場合 docker のコンテナと IAM と Vagrant BOX にします。 VPS や自前のハードウェアに展開することが全く無いので、実際の論理マシンに直接 Chef を流すことが今はないのです。 なので、作るのは今 packer を gradle で動かして作ってます。 そこまではいいんですが、じゃあそこで例えば Vagrant の Box ができあがったとして、これもう一回、レシピ作った
[2014-01-09-1] からmasutaka.netのCIを開始したが、残念ながら masutaka.netに直接serverspecする、なんちゃってCIだった。 masutaka.netにcookしてからPRを出して、WerckerにCIさせていた。 WerckerとAWSを連携させて、テストのたびにサーバをまっさらな状態から 作り、終わったら破棄することが可能になったので、ここに記録しておく。 去年くらいに話題になったこの辺の話。 Vagrant + Chef Solo + serverspec + Jenkins でサーバー構築を CI - naoyaのはてなダイアリー naoya/circleci-serverspec なんで今までやらなかったかというと、cookが一発で通らないレシピになっ ていたから。。気づいてはいたんだけど、本番サーバのテストが通りさえ すればよかった
Dockerが使えるようになったため、Jenkinsにより仮想サーバの起動から、サーバ構築、テスト、仮想サーバの廃棄までを自動化してみました。 やりたいこと 以下のように、Chefのリポジトリの更新をトリガーに、仮想サーバの起動から、サーバ構築、テスト、仮想サーバの廃棄までをJenkinsにて自動化します。 Chefのレシピをリモートリポジトリへgit pushすると、Jenkinsが通知を検知 JenkinsからDockerの仮想サーバ(コンテナ)を起動 起動が成功すれば、Chefを実行し、サーバを構築 サーバ構築が成功すれば、serverspecを実行し、サーバの状態をテスト テストが成功すれば、Dockerの仮想サーバ(コンテナ)を廃棄 また、Dockerの起動停止、サーバ構築、テストは全てSSH接続により行います。 構成 CentOS 6.5 : Chef、serverspec、J
2014-08-14 DevOps道場というイベントに参加した 弊社新人謹製のGeekDojoで、興味を引くイベントが企画されていたので参加した。 ほっかい道場の第一回勉強会。 名前だけだとどんな内容かさっぱりだが、説明にある「DevOps」が琴線に触れた。 会場も銀座のコワーキングスペースでイケメンな感じだった。道に迷ったけど。 ChefやAnsibleとServerspecについて 最初に自己紹介した後、主催のhokkai7goさんのスライドを数枚見て、テーマであるDevOpsについてのイントロを行った。 僕は社内では、先輩が導入したAnsibleを使っていたことがありChefはHello World的knife solo程度だったが、hokkai7goさんはChefを使っていて今はAnsibleも使うとの事だった。 「Chefの本書いててなんでAnsibleなんだろう」と思った
概要 Test Kitchenの役割 以下を自動でやってくれます。 Dockerコンテナ起動 起動したDockerコンテナにChefレシピを適用 その後Serverspec実行 Dockerコンテナ破棄 環境 OS CentOS 6.5 このホストでTest KichenやDockerを動かします。 関連ミドルウェア 事前にインストールしておきます。 バージョンは以下のものを使用しました。 docker-io-1.0.0-6 test-kitchen-1.2.1-1 kitchen-docker-1.5.0-1 serverspec-1.11.0-1 テストするレシピ CentOS6系のサーバーに適用するレシピです。 /root/chef/repo/site-cookbooks/centos6/recipes/httpd.rb httpdのインストール デーモン起動 自動起動設定 これらを
test-kitchenの使い方を調べたり検証していたりしたのですが、インスタンスを作成してプロビジョニングするのに結構時間がかかって暇なので、書いてみました。 test-kitchenについて test-kitchenとは、任意に作成したインスタンス上に環境を構築し、その結果の検証が可能なツールです。インスタンスを作成するためのドライバはデフォルトでvagrantが選択されますが、vagrant以外、例えばkitchen-dockerを使えばdocker上でテストを行うことも可能です。 test-kitchen https://github.com/test-kitchen/test-kitchen.git 初期設定 〜 インスタンスの構築 実際にtest-kitchenとserverspecを使ったchef-repoのテストをやってみます。 test-kitchenの挙動 test-k
こんにちは。望月です。 以前書いたエントリ、Chefのテストツール kitchen-ec2を使う – 導入、チュートリアル | Developers.IOの続きとして、kitchen-ec2を利用したテストを実行してみます。kitchen-ec2では様々なテストフレームワークを利用可能なようですので、今回はserverspecを利用したいと思います。 設定 前回のブログの続きという想定で実施します。前回はapache2.4のレシピをkitchenを利用してEC2で起動し、Chef クックブックを適用するところまで行いました。 まずは、serverspecのspecファイルを作成しましょう。serverspecではサーバの現在の状態をRSpecの記法を利用して記述します。 kitchenでserverspecを利用するためには所定のディレクトリに*_spec.rbを配置します。ディレクトリ名
OSX上でお手軽chefci環境の再構築めも(整理中) vagrantは使わない - Ruby >= 2.0 - Docker >= 1.0(OSX,boot2docker) - Test-kitchen >= 1.0 - Serverspec 準備(Ruby,Docker) [Ruby] OS X Mavericks (10.9) に Homebrew + rbenv で Ruby をインストールする http://www.d-wood.com/blog/2014/03/20_5847.html はじめてのDocker on Mac OS X http://dev.classmethod.jp/tool/docker/getting-started-docker-on-osx/ boot2docker + docker # インストール brew update brew install
どうも炎の料理人三ツ星シェルの かっぱこと 川原 洋平(@inokara)です。 はじめに ansible にも test-kitchen のようなテストフレームワークは無いのかなーと探していたら provisioner として shell を指定していた記事を見つけたのでその記事に倣って試してみる。 尚、セットアップする環境は AWS の EC2 インスタンスを使いたい為、kitchen-ec2 を利用する。 参考 Shell Provisioner for Test Kitchen test-kitchen/test-kitchen とりあえず 作業メモ 作業のサマリ 以下のような流れ。 test-kitchen の導入 テスト用の bash 作成 kitchen-ec2 の導入 serverspec の spec を作成 実際の作業 試した環境 Mac OS X 10.9 Marve
昨夜、ドリコムさんで行われた「最新インフラエンジニア技術勉強会 〜Fluentd, Elasticsearch,Chefの実践実例〜」に足を運んできました。 タイトルにもありますように、Chef, モニタリング, Fluentd, そして elasticsearch が使われている現場の情報を伺える機会となりました。 それでは、いつものようにノートをアップしておきます。 概要 2014-05-23 ドリコム 本社 (目黒アルコタワー) 19:30-20:00 ひらしー ドリコムのInfrastructure as Code 20:00-20:30 mickey Winning the metrics battle 20:30-21:00 外山 寛 Fluentd プラグイン開発講座 21:00-21:30 yoshi_ken MySQLと組み合わせて始める全文検索エンジン「elastics
id:catatsuyが石狩DCでLTしていたように、 弊社のセットアップスクリプトもserverspecで管理されるようになった。 これによりセットアップスクリプトもテスト駆動になり、JenkinsによるCIでテストされるようになった。 手でセットアップしてみないと合ってるかどうかわからない時代は終わりを告げた。 そして世の中はImmutable Infrastructureに向かい始めている。 これは仮想化技術により、サーバをつくったり壊したりが簡単になったので、 冪等性とか考えずに新しいサーバをつくってバシッと切り替えれば、変に悩まなくてもすむよね、 ということだと理解している。 弊社はオンプレだけど、サーバのセットアップってのは毎日のようにやっていて、 セットアップしては壊してを繰り返している。 で、話は戻るのだけど、serverspecとかconfigspec、chef、ansi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く