Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

67,163 views

Published on

2014/10/7に行われた @koemu さん主催のITインフラ業務自動化現状確認会で発表した資料です

Published in: Engineering
  • Be the first to comment

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

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

×