インフラ自動化とテストについて
2014.10.07
ITインフラ 業務自動化現状確認会
名前
 ひらしー(twitter: y05_net)
 出身:グンマー
お仕事
 某ソーシャルゲーム会社のインフラ全般
※3年前までプログラマ
• インフラ自動化について
• テストドキュメントについて
• テスト実行フローについて
• serverspec-runnerというツール作ってみた
• デモ
• インフラ自動化について
• テストドキュメントについて
• テスト実行フローについて
• serverspec-runnerというツール作ってみた
• デモ
少人数のインフラメンバ
効率的にプログラマにサーバ環境を渡すため
3年前からChefで構築自動化
詳しくは => http://www.slideshare.net/y05_net/
 Chefによるサーバ構築コードをgitで管理
nginx設定ファイルを配布するコード
7
CIサーバ
DC
DC
DC
本番環境
GitLab
Jenkins Vagrant
• インフラ自動化について
• テストドキュメントについて
• テスト実行フローについて
• serverspec-runnerというツール作ってみた
• デモ
昔(BtoBプログラマ時代)の現場にて…
上司
テストはしましたか?
してません(半笑)
自分
上司
テストは納品物です(怒)
顧客エンジニア 営業エンジニア
ソースコード・システムそのもの
でコミュニケーションが可能
ソースコード・システムそのもの
でコミュニケーションが困難
会社A 会社B 会社C
エンジニアと非エンジニアとの品質の共有に
てテストドキュメントが必要となるケースが
多い
テスト項目書といえば…
いつものアレ
• インフラ自動化について
• テストドキュメントについて
• テスト実行フローについて
• serverspec-runnerというツール作ってみた
• デモ
serverspecについて
ご存知の通りインフラのテストをrspecの
rubyコードで書ける
詳しくは「http://serverspec.org」まで
nginxの設定をテストするコード
システムに対して変化を加える際に正しい状態
をテストコードで定義(git push)
テスト内容について問題の提起、修正
(issue, pull request)
指摘された内容の修正、修正のマージ
システムに対しテスト実行
テストコードとgitワークフロー
テストのソフトウェア化と共にgitを中心にした
ワークフローも一般的に
テストをインフラ構築時の設計書として使える
• インフラ自動化について
• テストドキュメントについて
• テスト実行フローについて
• serverspec-runnerというツール作ってみた
• デモ
 元々Chefのレシピ実行時にserverspecでテストし
ていた(前述のインフラ設計書の役割も果たす)
 Chefを介さない作業やChefでサポートしていない
箇所のテストもserverspecでテストしたい
このような環境でserverspecを
一気に実行するには?
Debian6.0
user:aaa
CentOS5.1
0
CentOS6.5
user: bbb
privatekey: ~/.ssh/id_rsa_bbb
http://serverspec.org/advanced_tips.html
本家のspec_helper.rbやRakefileを直接
コーディングするサンプル
https://github.com/hiracy/serverspec-runner
• scenario.yml
テスト毎のrbファイルの
ディレクトリ階層
テスト対象のサーバの
IPアドレス・FQDN又はエイリアス名称
エイリアス指定時の詳細オプション
エイリアス指定時のIPアドレス・FQDN
サーバ毎のsshオプション
net::ssh::config準拠
テストコード内でサーバ固有のパラメータを付与
• テストコードのスケルトン生成
先程のテストシナリオテンプレート
このディレクトリ・ファイル
を再利用する
• describeにテスト項目の階層構造を作ればそのまま
テスト項目書となる
• インフラ自動化について
• テストドキュメントについて
• テスト実行フローについて
• serverspec-runnerというツール作ってみた
• デモ
まだ結構発展途上(・ω<)
 もっと綺麗な階層構造(Exelベタ貼りできるくらい)
 テスト・サーバ単位のインタラクティブ実行
 GUI。。。(スキル不足)
 なんと2日前にServerspec2.0.0がリリースして動か
なくなった!!!<=華金消費して対応済み
お待ちしています!!

インフラ構築とテストについて(ITインフラ業務自動化現状確認会)

Editor's Notes

  • #2 インフラ自動化とテストについてというタイトルで初めさせて頂きます
  • #3 名前はひらしーと呼ばれています 出身は群馬です。まだ続々とコンテンツと成り立っている所がすごいですね 所属はソーシャルゲーム作っている会社のインフラエンジニアです 実は3年前までPHPやAndroidのプログラマでした
  • #4 今日はこの内容についてお話させて頂きます <全部読む>
  • #5 今日はこの内容についてお話させて頂きます <全部読む>
  • #6 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #7 自動化の内容にざっと説明しますと、まずChefでの構築手順書にあたるRubyコードとserverspecのRubyコードを社内で運用しているgitlabを使って管理します
  • #8 そして、この図のようにJenkinsとVagrantを使ってコードがプッシュされたタイミングで一から仮想環境で、Chefのコードに従いサーバを構築・テストして、問題なければRundeckというサーバオペレーションツールで本番環境を構築しています
  • #9 今日はこの内容についてお話させて頂きます <全部読む>
  • #10 まずはインフラの自動化について
  • #11 まずはインフラの自動化について
  • #12 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #13 まずはインフラの自動化について
  • #14 今日はこの内容についてお話させて頂きます <全部読む>
  • #15 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #16 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #17 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #18 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #19 今日はこの内容についてお話させて頂きます <全部読む>
  • #20 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #21 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #22 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #23 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #24 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #25 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #26 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #27 今日はこの内容についてお話させて頂きます <全部読む>
  • #28 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非
  • #29 自分の会社ではRailsエンジニアが幅を利かせているのですが、インフラメンバは少なく、実際自分も先程話したように3年前にプログラマから転向しました。 で、少人数ということの自由度の高さもあり、私が主体的に自分が楽になりたいため自動化に取り組んできました。 この詳しい内容は以下のスライドシェアに上がっているので興味のある方は是非