SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
#ccc_g11
Copyright 2017 Hiroyuki Onaka
この作品は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。
Chefのいいとこ
そうでないとこ
2016/3/31 Tech-Circle #21 Premium Friday Itamae serverspec
大中浩行(@setoazusa)
#ccc_g11
Copyright 2017 Hiroyuki Onaka
• 大中浩行
• @setoazusa
• Chef歴3年
#ccc_g11
Copyright 2017 Hiroyuki Onaka
宣伝
4/9(日) アキバ・スクエア
「技術書典2」
あ-09「ふぃーるどのーつ」
来てね!
TDDの本出します!
#ccc_g11
Copyright 2017 Hiroyuki Onaka
Chef
#ccc_g11
Copyright 2017 Hiroyuki Onaka
いいところ
#ccc_g11
Copyright 2017 Hiroyuki Onaka
DSLの完成度が高い
user 'random' do
manage_home true
comment 'User Random'
uid '1234'
gid '1234'
home '/home/random'
shell '/bin/bash'
password '$1$JJsvHslV$szsCjVEroftprNn4JHtDi'
end
#ccc_g11
Copyright 2017 Hiroyuki Onaka
業務向けのきめ細かい仕様
リソース内でファイルの書き換えを行った際の、
バックアップ取得など
#ccc_g11
Copyright 2017 Hiroyuki Onaka
環境ごとの出し分け
role/environmentによる、環境/仕様のバリ
エーションごとの属性出し分けがよく出来てい
る
#ccc_g11
Copyright 2017 Hiroyuki Onaka
rubyを覚えると応用が利く
Chef=ruby
serverspec=ruby
Vagrant=ruby
itamaeもrubyですし
#ccc_g11
Copyright 2017 Hiroyuki Onaka
そうでないと
ころ
#ccc_g11
Copyright 2017 Hiroyuki Onaka
Attributeの仕様が複雑怪奇
【Chef Solo】attributeはどう使い分けるべきか。 | Developers.IO
http://dev.classmethod.jp/server-side/chef/attribute-overrides-pattern/
#ccc_g11
Copyright 2017 Hiroyuki Onaka
牙をむくruby
only_if { File.exists?("/path/to/must_exist") }
→rubyのブロックを渡していることになる。なので
rubyスクリプトとして評価される
only_if "grep httpd /etc/password“
→ シェルスクリプトとして評価される
Chef の only_if / not_if でハマった。 - Qiita
http://qiita.com/kizashi1122/items/b68a0badab7056f89e71
#ccc_g11
Copyright 2017 Hiroyuki Onaka
ChefのDeveloperも間違える仕様
Use double quotes to expand variable. by azusa · Pull Request #450 · chef/chef-web-docs
https://github.com/chef/chef-web-docs/pull/450/files
#ccc_g11
Copyright 2017 Hiroyuki Onaka
#ccc_g11
Copyright 2017 Hiroyuki Onaka
Vagrantからだと通ったはずが本番だとこける
Vagrantfileに書いたレシピ実行の記述と、chef
コマンド実行時のnode/role/environmentに書
いた記述との不整合
#ccc_g11
Copyright 2017 Hiroyuki Onaka
解決策
local.vm.provision :shell, :path =>
"provisioning-vagrant.sh", :args =>
["local"]
Vagrantfileからはshellプロビジョナーを呼び出
して、そのファイルの中からChefを実行する
#ccc_g11
Copyright 2017 Hiroyuki Onaka
まとめ
• あばたもえくぼ
• 使い込んでわかる良さ
• Let’s自動化
#ccc_g11
Copyright 2017 Hiroyuki Onaka
ありがとうございました!
• 大中浩行(Onaka,Hiroyuki)
• @setoazusa
• グロースエクスパートナーズ株式会社
アーキテクチャソリューション部
テクニカルリード
• http://blog.fieldnotes.jp/

Más contenido relacionado

Más de Hiroyuki Ohnaka

Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Hiroyuki Ohnaka
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescriptHiroyuki Ohnaka
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版Hiroyuki Ohnaka
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版Hiroyuki Ohnaka
 
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~Hiroyuki Ohnaka
 
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘いHiroyuki Ohnaka
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Hiroyuki Ohnaka
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」Hiroyuki Ohnaka
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)Hiroyuki Ohnaka
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcHiroyuki Ohnaka
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)Hiroyuki Ohnaka
 
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!Hiroyuki Ohnaka
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Hiroyuki Ohnaka
 
「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまでHiroyuki Ohnaka
 
pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約Hiroyuki Ohnaka
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記Hiroyuki Ohnaka
 
TDDのこれまで、そしてこれから
TDDのこれまで、そしてこれからTDDのこれまで、そしてこれから
TDDのこれまで、そしてこれからHiroyuki Ohnaka
 
「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbcHiroyuki Ohnaka
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」Hiroyuki Ohnaka
 

Más de Hiroyuki Ohnaka (20)

Mackerelの薄い本
Mackerelの薄い本Mackerelの薄い本
Mackerelの薄い本
 
Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Microsoft DocsにContributeした話
Microsoft DocsにContributeした話
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescript
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
 
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~
 
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbc
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)
 
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
 
「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで
 
pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
 
TDDのこれまで、そしてこれから
TDDのこれまで、そしてこれからTDDのこれまで、そしてこれから
TDDのこれまで、そしてこれから
 
「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
 

Chefのいいところそうでないとこ

  • 1. #ccc_g11 Copyright 2017 Hiroyuki Onaka この作品は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。 Chefのいいとこ そうでないとこ 2016/3/31 Tech-Circle #21 Premium Friday Itamae serverspec 大中浩行(@setoazusa)
  • 2. #ccc_g11 Copyright 2017 Hiroyuki Onaka • 大中浩行 • @setoazusa • Chef歴3年
  • 3. #ccc_g11 Copyright 2017 Hiroyuki Onaka 宣伝 4/9(日) アキバ・スクエア 「技術書典2」 あ-09「ふぃーるどのーつ」 来てね! TDDの本出します!
  • 5. #ccc_g11 Copyright 2017 Hiroyuki Onaka いいところ
  • 6. #ccc_g11 Copyright 2017 Hiroyuki Onaka DSLの完成度が高い user 'random' do manage_home true comment 'User Random' uid '1234' gid '1234' home '/home/random' shell '/bin/bash' password '$1$JJsvHslV$szsCjVEroftprNn4JHtDi' end
  • 7. #ccc_g11 Copyright 2017 Hiroyuki Onaka 業務向けのきめ細かい仕様 リソース内でファイルの書き換えを行った際の、 バックアップ取得など
  • 8. #ccc_g11 Copyright 2017 Hiroyuki Onaka 環境ごとの出し分け role/environmentによる、環境/仕様のバリ エーションごとの属性出し分けがよく出来てい る
  • 9. #ccc_g11 Copyright 2017 Hiroyuki Onaka rubyを覚えると応用が利く Chef=ruby serverspec=ruby Vagrant=ruby itamaeもrubyですし
  • 10. #ccc_g11 Copyright 2017 Hiroyuki Onaka そうでないと ころ
  • 11. #ccc_g11 Copyright 2017 Hiroyuki Onaka Attributeの仕様が複雑怪奇 【Chef Solo】attributeはどう使い分けるべきか。 | Developers.IO http://dev.classmethod.jp/server-side/chef/attribute-overrides-pattern/
  • 12. #ccc_g11 Copyright 2017 Hiroyuki Onaka 牙をむくruby only_if { File.exists?("/path/to/must_exist") } →rubyのブロックを渡していることになる。なので rubyスクリプトとして評価される only_if "grep httpd /etc/password“ → シェルスクリプトとして評価される Chef の only_if / not_if でハマった。 - Qiita http://qiita.com/kizashi1122/items/b68a0badab7056f89e71
  • 13. #ccc_g11 Copyright 2017 Hiroyuki Onaka ChefのDeveloperも間違える仕様 Use double quotes to expand variable. by azusa · Pull Request #450 · chef/chef-web-docs https://github.com/chef/chef-web-docs/pull/450/files
  • 15. #ccc_g11 Copyright 2017 Hiroyuki Onaka Vagrantからだと通ったはずが本番だとこける Vagrantfileに書いたレシピ実行の記述と、chef コマンド実行時のnode/role/environmentに書 いた記述との不整合
  • 16. #ccc_g11 Copyright 2017 Hiroyuki Onaka 解決策 local.vm.provision :shell, :path => "provisioning-vagrant.sh", :args => ["local"] Vagrantfileからはshellプロビジョナーを呼び出 して、そのファイルの中からChefを実行する
  • 17. #ccc_g11 Copyright 2017 Hiroyuki Onaka まとめ • あばたもえくぼ • 使い込んでわかる良さ • Let’s自動化
  • 18. #ccc_g11 Copyright 2017 Hiroyuki Onaka ありがとうございました! • 大中浩行(Onaka,Hiroyuki) • @setoazusa • グロースエクスパートナーズ株式会社 アーキテクチャソリューション部 テクニカルリード • http://blog.fieldnotes.jp/