SlideShare a Scribd company logo
Copyright Drecom Co., Ltd. All Rights Reserved.
itamae + Serverspecで
テスト駆動インフラやってみた
2015/03/18 shibuya.rb
@sue445
Copyright Drecom Co., Ltd. All Rights Reserved.
sue445
● drecom
○ 社内ツールとか社内ライブラリとか
○ サーバサイドをアプリからインフラまで浅く広く
見守り業務
○ PO (Precure Ojisan)
● RubyKaja 2014 @Shibuya.rb
自己紹介
Copyright Drecom Co., Ltd. All Rights Reserved.
【今期の嫁】キュアトゥインクル
Copyright Drecom Co., Ltd. All Rights Reserved.
今期の黄色は肩背中が丸出し!!!!
Copyright Drecom Co., Ltd. All Rights Reserved.
【本妻】キュアピース
Copyright Drecom Co., Ltd. All Rights Reserved.
● 経緯
● itamaeについて
● Serverspecについて
● 実際のテスト駆動インフラの流れ
● itamaeレシピを社内に公開した
● 参考書籍
● 所感
Agenda
Copyright Drecom Co., Ltd. All Rights Reserved.
● 【目的】Railsミドル全部入りのOpenStackのJenkins Slave
のスナップショットを作りたかった
● ミドル全部入りならインフラがchefで作ったスナップショットが
あるとの情報
● 差分はJenkinsユーザの作成とrbenvのインストールくらいあ
ればよさそう
○ が、インフラのchefのレシピはカオスすぎて素人にはハードル高かった
● 全部入りスナップショット対して差分をitamaeでプロビジョニ
ングすることに
● せっかくなので今流行のテスト駆動インフラに挑戦してみた
経緯
Copyright Drecom Co., Ltd. All Rights Reserved.
itamae
● クックパッドが作ったプロビジョニングツール
○ http://itamae.kitchen/
○ https://speakerdeck.com/ryotarai/itamae-infra-as-
code-xian-zhuang-que-ren-hui
● Ruby製、シンプルで軽量なChefみたいなやつ
● DSLなので記述がシンプル
● DSLもRubyのコードなので適度にリファクタリングできる
● プラグインをgemから取り込める
○ 依存性をbundlerで管理できる
○ rubygems.orgに公開していればみんなが使える
Copyright Drecom Co., Ltd. All Rights Reserved.
● @mizzy氏が作ったインフラ構成をテストするためのツール
○ http://serverspec.org/
○ http://www.oreilly.co.jp/books/9784873117096/
● Ruby製
○ RSpecベースだけどテンプレをコピペするだけなので
RSpec使ったこと無くても問題ない
● 特定のプロビジョニングツール(itamaeとかChefとかPuppet
とかAnsible)に依存しないで使える
Serverspec
Copyright Drecom Co., Ltd. All Rights Reserved.
● OS毎のコマンドの違いを吸収するgem
○ https://github.com/serverspec/specinfra
○ Debianならapt-get install使うとか、yumならyum instll
使うとか
● Serverspecから切りだされてgem化されている
○ capistranoとsshkitのような関係
● itamaeもSpecinfraに依存しているので、Specinfraの中身
を知ってたらitamaeとSercerspecの両方で役に立つ
Specinfra
Copyright Drecom Co., Ltd. All Rights Reserved.
1. インフラの確認項目をテストコードで書く
2. 期待したエラーが出ることを確認 (Red)
3. サーバで適用したいインフラコードを書く
4. テストコードが通っていることを確認(Green)
5. ダメなら3に戻る
6. 必要ならリファクタリング (Refactor)
7. 1に戻る
実際のテスト駆動インフラの流れ
Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/27
テスト駆動インフラでもTDDの黄金の回転
Copyright Drecom Co., Ltd. All Rights Reserved.
● 新しいサーバを作ると自分のhomeディレクトリがないので手
軽に作りたい
【例】自分のhomeディレクトリを作る
Copyright Drecom Co., Ltd. All Rights Reserved.
describe file("/home/sueyoshi_go") do
it { should be_directory }
it { should be_mode 700 }
it { should be_owned_by "sueyoshi_go" }
it { should be_grouped_into "drecom" }
end
TARGET_HOST=xxx.xxx.xxx.xxx rspec spec/myhome_spec.rb
Serverspecのテストコード(myhome_spec.rb)
Copyright Drecom Co., Ltd. All Rights Reserved.
Serverspecのテストコード(myhome_spec.rb)
/home/sueyoshi_go が
 ディレクトリで
 パーミッション700で
 ownerがsueyoshi_go で
 drecom groupに所属していること
describe file("/home/sueyoshi_go") do
it { should be_directory }
it { should be_mode 700 }
it { should be_owned_by "sueyoshi_go" }
it { should be_grouped_into "drecom" }
end
TARGET_HOST=xxx.xxx.xxx.xxx rspec spec/myhome_spec.rb
Copyright Drecom Co., Ltd. All Rights Reserved.
Serverspecのテストコード(myhome_spec.rb)
/home/sueyoshi_go が
 ディレクトリで
 パーミッション700で
 ownerがsueyoshi_go で
 drecom groupに所属していること
describe file("/home/sueyoshi_go") do
it { should be_directory }
it { should be_mode 700 }
it { should be_owned_by "sueyoshi_go" }
it { should be_grouped_into "drecom" }
end
TARGET_HOST=xxx.xxx.xxx.xxx rspec spec/myhome_spec.rb
それっぽく読める!
Copyright Drecom Co., Ltd. All Rights Reserved.
directory "/home/sueyoshi_go" do
mode "700"
owner "sueyoshi_go"
group "drecom"
not_if "ls /home/sueyoshi_go"
end
itamae ssh -h xxx.xxx.xxx.xxx -p 10022 recipes/myhome.rb
itamaeのレシピ (myhome.rb)
Copyright Drecom Co., Ltd. All Rights Reserved.
itamaeのレシピ (myhome.rb)
ディレクトリが存在していなければ
/home/sueyoshi_go を作って
 パーミッション700で
 ownerがsueyoshi_goで
 groupをdrecomにすること
directory "/home/sueyoshi_go" do
mode "700"
owner "sueyoshi_go"
group "drecom"
not_if "ls /home/sueyoshi_go"
end
itamae ssh -h xxx.xxx.xxx.xxx -p 10022 recipes/myhome.rb
Copyright Drecom Co., Ltd. All Rights Reserved.
itamaeのレシピ (myhome.rb)
ディレクトリが存在していなければ
/home/sueyoshi_go を作って
 パーミッション700で
 ownerがsueyoshi_goで
 groupをdrecomにすること
directory "/home/sueyoshi_go" do
mode "700"
owner "sueyoshi_go"
group "drecom"
not_if "ls /home/sueyoshi_go"
end
itamae ssh -h xxx.xxx.xxx.xxx -p 10022 recipes/myhome.rb
それっぽく読める!
Copyright Drecom Co., Ltd. All Rights Reserved.
● 目視確認の自動化
○ インフラコードを書く、適用、確認のサイクルを素早く回
せる
● インフラコードがリファクタリングできる
○ バグってもテストコードで検知できる
テスト駆動インフラのメリット
Copyright Drecom Co., Ltd. All Rights Reserved.
● itamae-recipe-jenkins_slave (Jenkins slaveを作るための
レシピ)
○ jenkinsユーザの作成
○ sshの鍵の転送
○ rbenvのインストール
○ jenkinsユーザの鍵を使ってのmasterからslaveへの疎
通確認
○ mysqlやmemcachedなどの起動
● (itamaeやServerspecを書いたことない状態から)開発期
間1週間ちょい
itamaeレシピを社内に公開した
Copyright Drecom Co., Ltd. All Rights Reserved.
source "https://rubygems.org"
gem "itamae"
gem "itamae-plugin-recipe-rbenv", ">= 0.2.2"
group :test do
gem "serverspec"
end
source "http://gem.xxxxxxx.com" do
gem "itamae-plugin-resource-sudo_remote_file", ">= 0.0.2"
gem "specinfra-plain_sudo", ">= 0.0.2"
end
Gemfile
社内gem
Copyright Drecom Co., Ltd. All Rights Reserved.
● itamae-plugin-resource-sudo_remote_file
○ レシピ実行ユーザが直接コピーできないファイルを
remote_fileするためのプラグイン
○ sudo cp /tmp -> sudo chmod -> scp -> remove
tmp_file な感じ
● specinfra-plain_sudo
○ 弊社環境だと sudo /bin/sh ~ が動かないことがあった
のでspecinfraのsudo実行周辺にモンキーパッチあてて
る
● どっちも弊社環境に起因していることが原因のような気がす
るので社外公開はしない予定
作った社内gem
Copyright Drecom Co., Ltd. All Rights Reserved.
● WEB+DB PRESS vol.80
○ http://gihyo.
jp/magazine/wdpress/archive/2014/vol80
○ テスト駆動インフラ特集
● Serverspec
○ http://www.oreilly.co.jp/books/9784873117096/
○ 体系的にまとまってる
○ 付録でitamaeについてもふれられてる
参考書籍
Copyright Drecom Co., Ltd. All Rights Reserved.
● itamaeはそんなにドキュメント充実してない
○ ソースは大した量じゃないのでサクッと読める
○ githubのスライドが一番よくまとまってるw
○ そんなに学習コスト高くない
● Serverspecはドキュメント充実してる
○ ベースはrspecなので普段から使ってるととっつきやす
いはず
○ オライリー本おすすめ
● どっちも日本人が開発してるので日本語でググった時の資
料が充実してる
● コマンドの作業履歴(.bash_historyとか)をコードとして残せ
るのはでかい
所感

More Related Content

PDF
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
PDF
Chef SoloからItamaeに完全移行した話+
PDF
ドリコムを支える課金ライブラリを支えるJenkins
PDF
Mina 20130417
PDF
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
PDF
成長を加速する minne の技術基盤戦略
PDF
ドリコムのインフラCI
PDF
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Chef SoloからItamaeに完全移行した話+
ドリコムを支える課金ライブラリを支えるJenkins
Mina 20130417
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
成長を加速する minne の技術基盤戦略
ドリコムのインフラCI
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

What's hot (20)

PPTX
Itamae-Serverspec入門
PDF
Consul は 全自動オーケストレーションの 夢を見るか?
PDF
ChefとPuppetの比較
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PPTX
明日から始める Chef 入門 #bpstudy
PDF
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
PDF
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
PDF
ご注文は監視自動化ですか?
PDF
Ansible 入門 #01 (初心者向け)
PDF
いまどきのPHP開発現場 -2015年秋-
PDF
Redmine Ansible
PDF
Ansible 2.8 アップデート情報 -機能追加と注意点-
PDF
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
PPTX
Pythonユーザのための構成管理入門 #pyconapac
PDF
ATSプログラミングチュートリアル
PPTX
Chef概論とレシピ実践入門
PDF
Ansible 2.0 のサマライズとこれから
PDF
インフラ自動化とHashicorp tools
PDF
Chef社内勉強会(第1回)
PDF
Haikara
Itamae-Serverspec入門
Consul は 全自動オーケストレーションの 夢を見るか?
ChefとPuppetの比較
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
明日から始める Chef 入門 #bpstudy
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
ご注文は監視自動化ですか?
Ansible 入門 #01 (初心者向け)
いまどきのPHP開発現場 -2015年秋-
Redmine Ansible
Ansible 2.8 アップデート情報 -機能追加と注意点-
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
Pythonユーザのための構成管理入門 #pyconapac
ATSプログラミングチュートリアル
Chef概論とレシピ実践入門
Ansible 2.0 のサマライズとこれから
インフラ自動化とHashicorp tools
Chef社内勉強会(第1回)
Haikara
Ad

Similar to itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb (20)

PDF
プリキュアのRuby実装の紹介 #tqrk08
PDF
Rubyでプリキュアを作った #cure_advent #shibuyarb
PDF
First step of Rails Contribute‎ #shibuyarb
PDF
こんな辛いテストはいやだ
PDF
RSpec Performance Turning
PDF
プリキュアのRuby実装の紹介 #RubyHiroba
KEY
activerecord-turntable
PDF
「AROW」お披露目(実用編)
PDF
Serverspecを使ってみた話
PDF
愛せよ、さもなくば捨てよ。
PDF
使えるDjango1.4
PDF
Cloudera impala
KEY
実録!Railsのはまりポイント10選
PDF
技術書へのいざない
PPTX
ドリコムのInfrastructure as code
PPTX
PPTX
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
PPTX
FabricとRailsと私
PDF
ACI + Ansible
PPTX
serverspecを使用したサーバ設定テストの実例
プリキュアのRuby実装の紹介 #tqrk08
Rubyでプリキュアを作った #cure_advent #shibuyarb
First step of Rails Contribute‎ #shibuyarb
こんな辛いテストはいやだ
RSpec Performance Turning
プリキュアのRuby実装の紹介 #RubyHiroba
activerecord-turntable
「AROW」お披露目(実用編)
Serverspecを使ってみた話
愛せよ、さもなくば捨てよ。
使えるDjango1.4
Cloudera impala
実録!Railsのはまりポイント10選
技術書へのいざない
ドリコムのInfrastructure as code
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
FabricとRailsと私
ACI + Ansible
serverspecを使用したサーバ設定テストの実例
Ad

More from Go Sueyoshi (a.k.a sue445) (15)

PDF
gemの複数バージョンカジュアルテスト #shibuyarb
PDF
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
PDF
社内テストファースト勉強会
PDF
サザエ実況を支える技術 #sst_history
PDF
Paraductをエクストリームリリースします #428rk01
PDF
GemoireというYARDホスティングアプリを作った #shibuyarb
PDF
Githubエコシステムを活用したイマドキの趣味開発
PDF
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
PDF
JavaScript TDD紹介 #agilesamurai
PDF
勉強会を始めるまで #java_ja
PDF
アニメ実況実践入門
PDF
ドリコムJenkins勉強会資料
PPT
Sue445 Style TDD #atest_hack
PPT
AZusaar!でのappengine活用事例 #ajn19
PPT
appengine活用事例資料@TDDBC札幌2.1
gemの複数バージョンカジュアルテスト #shibuyarb
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
社内テストファースト勉強会
サザエ実況を支える技術 #sst_history
Paraductをエクストリームリリースします #428rk01
GemoireというYARDホスティングアプリを作った #shibuyarb
Githubエコシステムを活用したイマドキの趣味開発
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
JavaScript TDD紹介 #agilesamurai
勉強会を始めるまで #java_ja
アニメ実況実践入門
ドリコムJenkins勉強会資料
Sue445 Style TDD #atest_hack
AZusaar!でのappengine活用事例 #ajn19
appengine活用事例資料@TDDBC札幌2.1

itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb

  • 1. Copyright Drecom Co., Ltd. All Rights Reserved. itamae + Serverspecで テスト駆動インフラやってみた 2015/03/18 shibuya.rb @sue445
  • 2. Copyright Drecom Co., Ltd. All Rights Reserved. sue445 ● drecom ○ 社内ツールとか社内ライブラリとか ○ サーバサイドをアプリからインフラまで浅く広く 見守り業務 ○ PO (Precure Ojisan) ● RubyKaja 2014 @Shibuya.rb 自己紹介
  • 3. Copyright Drecom Co., Ltd. All Rights Reserved. 【今期の嫁】キュアトゥインクル
  • 4. Copyright Drecom Co., Ltd. All Rights Reserved. 今期の黄色は肩背中が丸出し!!!!
  • 5. Copyright Drecom Co., Ltd. All Rights Reserved. 【本妻】キュアピース
  • 6. Copyright Drecom Co., Ltd. All Rights Reserved. ● 経緯 ● itamaeについて ● Serverspecについて ● 実際のテスト駆動インフラの流れ ● itamaeレシピを社内に公開した ● 参考書籍 ● 所感 Agenda
  • 7. Copyright Drecom Co., Ltd. All Rights Reserved. ● 【目的】Railsミドル全部入りのOpenStackのJenkins Slave のスナップショットを作りたかった ● ミドル全部入りならインフラがchefで作ったスナップショットが あるとの情報 ● 差分はJenkinsユーザの作成とrbenvのインストールくらいあ ればよさそう ○ が、インフラのchefのレシピはカオスすぎて素人にはハードル高かった ● 全部入りスナップショット対して差分をitamaeでプロビジョニ ングすることに ● せっかくなので今流行のテスト駆動インフラに挑戦してみた 経緯
  • 8. Copyright Drecom Co., Ltd. All Rights Reserved. itamae ● クックパッドが作ったプロビジョニングツール ○ http://itamae.kitchen/ ○ https://speakerdeck.com/ryotarai/itamae-infra-as- code-xian-zhuang-que-ren-hui ● Ruby製、シンプルで軽量なChefみたいなやつ ● DSLなので記述がシンプル ● DSLもRubyのコードなので適度にリファクタリングできる ● プラグインをgemから取り込める ○ 依存性をbundlerで管理できる ○ rubygems.orgに公開していればみんなが使える
  • 9. Copyright Drecom Co., Ltd. All Rights Reserved. ● @mizzy氏が作ったインフラ構成をテストするためのツール ○ http://serverspec.org/ ○ http://www.oreilly.co.jp/books/9784873117096/ ● Ruby製 ○ RSpecベースだけどテンプレをコピペするだけなので RSpec使ったこと無くても問題ない ● 特定のプロビジョニングツール(itamaeとかChefとかPuppet とかAnsible)に依存しないで使える Serverspec
  • 10. Copyright Drecom Co., Ltd. All Rights Reserved. ● OS毎のコマンドの違いを吸収するgem ○ https://github.com/serverspec/specinfra ○ Debianならapt-get install使うとか、yumならyum instll 使うとか ● Serverspecから切りだされてgem化されている ○ capistranoとsshkitのような関係 ● itamaeもSpecinfraに依存しているので、Specinfraの中身 を知ってたらitamaeとSercerspecの両方で役に立つ Specinfra
  • 11. Copyright Drecom Co., Ltd. All Rights Reserved. 1. インフラの確認項目をテストコードで書く 2. 期待したエラーが出ることを確認 (Red) 3. サーバで適用したいインフラコードを書く 4. テストコードが通っていることを確認(Green) 5. ダメなら3に戻る 6. 必要ならリファクタリング (Refactor) 7. 1に戻る 実際のテスト駆動インフラの流れ
  • 12. Copyright Drecom Co., Ltd. All Rights Reserved. http://www.slideshare.net/t_wada/the-spirit-of-tdd/27 テスト駆動インフラでもTDDの黄金の回転
  • 13. Copyright Drecom Co., Ltd. All Rights Reserved. ● 新しいサーバを作ると自分のhomeディレクトリがないので手 軽に作りたい 【例】自分のhomeディレクトリを作る
  • 14. Copyright Drecom Co., Ltd. All Rights Reserved. describe file("/home/sueyoshi_go") do it { should be_directory } it { should be_mode 700 } it { should be_owned_by "sueyoshi_go" } it { should be_grouped_into "drecom" } end TARGET_HOST=xxx.xxx.xxx.xxx rspec spec/myhome_spec.rb Serverspecのテストコード(myhome_spec.rb)
  • 15. Copyright Drecom Co., Ltd. All Rights Reserved. Serverspecのテストコード(myhome_spec.rb) /home/sueyoshi_go が  ディレクトリで  パーミッション700で  ownerがsueyoshi_go で  drecom groupに所属していること describe file("/home/sueyoshi_go") do it { should be_directory } it { should be_mode 700 } it { should be_owned_by "sueyoshi_go" } it { should be_grouped_into "drecom" } end TARGET_HOST=xxx.xxx.xxx.xxx rspec spec/myhome_spec.rb
  • 16. Copyright Drecom Co., Ltd. All Rights Reserved. Serverspecのテストコード(myhome_spec.rb) /home/sueyoshi_go が  ディレクトリで  パーミッション700で  ownerがsueyoshi_go で  drecom groupに所属していること describe file("/home/sueyoshi_go") do it { should be_directory } it { should be_mode 700 } it { should be_owned_by "sueyoshi_go" } it { should be_grouped_into "drecom" } end TARGET_HOST=xxx.xxx.xxx.xxx rspec spec/myhome_spec.rb それっぽく読める!
  • 17. Copyright Drecom Co., Ltd. All Rights Reserved. directory "/home/sueyoshi_go" do mode "700" owner "sueyoshi_go" group "drecom" not_if "ls /home/sueyoshi_go" end itamae ssh -h xxx.xxx.xxx.xxx -p 10022 recipes/myhome.rb itamaeのレシピ (myhome.rb)
  • 18. Copyright Drecom Co., Ltd. All Rights Reserved. itamaeのレシピ (myhome.rb) ディレクトリが存在していなければ /home/sueyoshi_go を作って  パーミッション700で  ownerがsueyoshi_goで  groupをdrecomにすること directory "/home/sueyoshi_go" do mode "700" owner "sueyoshi_go" group "drecom" not_if "ls /home/sueyoshi_go" end itamae ssh -h xxx.xxx.xxx.xxx -p 10022 recipes/myhome.rb
  • 19. Copyright Drecom Co., Ltd. All Rights Reserved. itamaeのレシピ (myhome.rb) ディレクトリが存在していなければ /home/sueyoshi_go を作って  パーミッション700で  ownerがsueyoshi_goで  groupをdrecomにすること directory "/home/sueyoshi_go" do mode "700" owner "sueyoshi_go" group "drecom" not_if "ls /home/sueyoshi_go" end itamae ssh -h xxx.xxx.xxx.xxx -p 10022 recipes/myhome.rb それっぽく読める!
  • 20. Copyright Drecom Co., Ltd. All Rights Reserved. ● 目視確認の自動化 ○ インフラコードを書く、適用、確認のサイクルを素早く回 せる ● インフラコードがリファクタリングできる ○ バグってもテストコードで検知できる テスト駆動インフラのメリット
  • 21. Copyright Drecom Co., Ltd. All Rights Reserved. ● itamae-recipe-jenkins_slave (Jenkins slaveを作るための レシピ) ○ jenkinsユーザの作成 ○ sshの鍵の転送 ○ rbenvのインストール ○ jenkinsユーザの鍵を使ってのmasterからslaveへの疎 通確認 ○ mysqlやmemcachedなどの起動 ● (itamaeやServerspecを書いたことない状態から)開発期 間1週間ちょい itamaeレシピを社内に公開した
  • 22. Copyright Drecom Co., Ltd. All Rights Reserved. source "https://rubygems.org" gem "itamae" gem "itamae-plugin-recipe-rbenv", ">= 0.2.2" group :test do gem "serverspec" end source "http://gem.xxxxxxx.com" do gem "itamae-plugin-resource-sudo_remote_file", ">= 0.0.2" gem "specinfra-plain_sudo", ">= 0.0.2" end Gemfile 社内gem
  • 23. Copyright Drecom Co., Ltd. All Rights Reserved. ● itamae-plugin-resource-sudo_remote_file ○ レシピ実行ユーザが直接コピーできないファイルを remote_fileするためのプラグイン ○ sudo cp /tmp -> sudo chmod -> scp -> remove tmp_file な感じ ● specinfra-plain_sudo ○ 弊社環境だと sudo /bin/sh ~ が動かないことがあった のでspecinfraのsudo実行周辺にモンキーパッチあてて る ● どっちも弊社環境に起因していることが原因のような気がす るので社外公開はしない予定 作った社内gem
  • 24. Copyright Drecom Co., Ltd. All Rights Reserved. ● WEB+DB PRESS vol.80 ○ http://gihyo. jp/magazine/wdpress/archive/2014/vol80 ○ テスト駆動インフラ特集 ● Serverspec ○ http://www.oreilly.co.jp/books/9784873117096/ ○ 体系的にまとまってる ○ 付録でitamaeについてもふれられてる 参考書籍
  • 25. Copyright Drecom Co., Ltd. All Rights Reserved. ● itamaeはそんなにドキュメント充実してない ○ ソースは大した量じゃないのでサクッと読める ○ githubのスライドが一番よくまとまってるw ○ そんなに学習コスト高くない ● Serverspecはドキュメント充実してる ○ ベースはrspecなので普段から使ってるととっつきやす いはず ○ オライリー本おすすめ ● どっちも日本人が開発してるので日本語でググった時の資 料が充実してる ● コマンドの作業履歴(.bash_historyとか)をコードとして残せ るのはでかい 所感