More Related Content
Similar to Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code (20)
More from Yukihiko SAWANOBORI (11)
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
- 8. Chef によるテスト駆動型
インフラストラクチャ開発 より
• ボタンひとつでサーバインスタンスの調達
• 生産性の高いウェブ・アプリケーションフレ
ームワークの隆盛
• インフラの抽象化、設計、実装、デプロイと
いうニーズ
• アプリ開発の優れた手法を取り入れ
8
Wednesday, July 24, 13
- 20. そして
knife cookbook create (site-cookbooks)
knife role create
knife data bag create
※適当に繰り返し
確認用に vim solo.rb & chef-shell -s -c
solo.rb
Wednesday, July 24, 13
- 23. Hosted Chefつこうてんの??
• Opscode提供のSaaS
• Organizationあたり『5ノード』まで無料
• 将来OSS ChefSeverに移行するの前提で開発サ
ーバ用に使い倒す
• 用がすんだら消す
• このパスなし ✕ chef-solo => chef-server
• 捕捉: 大概ChefSoloでいいと思います。私はChefSolo
に慣れてないのでClient/Serverにしてるだけ。
23
Wednesday, July 24, 13
- 27. この頃のリポジトリ2 1/2
├── Cheffile
├── Cheffile.lock
├── Gemfile
├── Gemfile.lock
├── README.md
├── certs
├── cookbooks
│ ├── chefclient_simple_cron
│ ├── ipf
│ ├── ipf_configure
│ ├── logadm
│ ├── monit_bin
│ ├── partial_search
│ ├── postfix
│ ├── rbac
│ ├── smartmachine_functions
│ └── smf
27
※git checkoutで調査
Wednesday, July 24, 13
- 28. この頃のリポジトリ2 2/2
├── data_bags
│ ├── README.md
│ └── postgresql
├── site-cookbooks
│ ├── ipf_settings
│ ├── postfix_envs
│ ├── postgresql-for-some_app
│ └── redis-for-some_app
└── solo.rb
28
※git checkoutで調査
Wednesday, July 24, 13
- 30. この頃のリポジトリ2 1/3
├── Cheffile
├── Cheffile.lock
├── Gemfile
├── Gemfile.lock
├── README.md
├── certs
├── cookbooks
│ ├── chefclient_simple_cron
│ ├── ipf
│ ├── ipf_configure
│ ├── logadm
│ ├── monit_bin
│ ├── partial_search
│ ├── postfix
│ ├── rbac
│ ├── smartmachine_functions
│ └── smf
30
※git checkoutで調査
Wednesday, July 24, 13
- 31. この頃のリポジトリ2 2/3
├── data_bags
│ ├── README.md
│ ├── certs
│ ├── deploy
│ ├── domains
│ ├── postfix_env
│ └── postgresql
├── roles
│ ├── app_server_common.json
│ ├── base_smartos.json
│ ├── chef-client_cron.json
│ ├── some_app.json
│ ├── monit_smartos.json
│ ├── patchjob_update_certs.json
│ ├── postfix_server.json
│ ├── postgres-client.json
│ ├── postgres-server.json
31
※git checkoutで調査
Wednesday, July 24, 13
- 32. この頃のリポジトリ2 3/3
│ ├── redis-client.json
│ └── redis-server.json
├── site-cookbooks
│ ├── ipf_settings
│ ├── some_app_deploy
│ ├── nginx_upstream
│ ├── postfix_envs
│ ├── postgresql-for-some_app
│ └── redis-for-some_app
└── solo.rb
32
※git checkoutで調査
Wednesday, July 24, 13
- 37. このころのCheffile抜粋 2
cookbook 'partial_search'
cookbook 'smartmachine_functions'
cookbook 'monit_bin'
# Github
## modcloth-cookbooks
cookbook 'ipf', :git => 'https://github.com/modcloth-cookbooks/ipf.git'
cookbook 'logadm', :git => 'https://github.com/modcloth-cookbooks/logadm.git'
## higanworks-cookbooks
cookbook 'ipf_configure'
cookbook 'chefclient_simple_cron', :git => 'https://github.com/higanworks-cookbooks/
chefclient_simple_cron.git'
## modified community cookbooks.
cookbook 'postfix', :git => 'https://github.com/ZCloud-Firstserver/postfix.git', :ref =>
'respond_to_smartos'
37
コミュニティCookbooks
※自作もの多い
他所様の汎用的なCookbook
※ そこそこプルリクしてる
自作Cookbook
※ site-cookbookからpublicに昇格
改造したコミュニティCookbooks
※結局後でプルリク
Wednesday, July 24, 13
- 42. 1. env[production]でhogebookの現行バージ
ョンを pinする ※指定無しならlatest
2. 新しいバージョンをChefServerにアップ
42
Staging
CookBook更新と
適用手法の例
hogebook v1.1
Production
hogebook v1.0
次回コンバージョンで
v1.1が適用される
こちらpinされたバージョンのまま
Wednesday, July 24, 13