by Yusuke Ando 氏
Contents
- Engine Yard 社
- Chef が公開される前から Chef を使っている
- いつから言われるようになったのか?
- 2009 年 6 月 velocity 2009 での講演で flickr から
- 内容としては開発者と運用者の互いの信頼関係、自動化、インスタントメッセンジャーの bot など
- Infrastructure as Code
- 構築をコードで自動化
- サーバーの台数に左右されない
- Chef は実現する手段の 1 つ
- 例にサイバーエージェントを出して頂きました(ありがとうございます)
- 構成管理ツール
- v11.10
- Ruby製
- 冪等性が特徴
- 高い人気
- Engine Yard
- Prezi
- サイバーエージェント
- Gree
- client/server 型
- cookbook を作成 (workstation)
- Chef server に upload
- client 起動
- server 無し構成も可(chef-solo)
- gem install chef は古い方法
- 現在の Chef は必要な Ruby を同梱
- /opt/chef 配下に配置
- Chef にさらに Gem を追加する際には注意
- 書き方の説明等
- 単純なパッケージ導入以上の処理が可能
- ohai を使ったノード情報
- 設定ファイルの動的な生成
- 繰り返し実行可能
- Chef Client の cron からの実行
- daemon 化も一応可能
- メモリリークするからやめたほうがいい
- why run (dry run) も実行可能 (v11 から)
- なるべく頻繁に実行するのが望ましい
- Chef 0.8 / 10 / 11 / の違い
- cookbook の書式が違う
- version を意識しないとハマる
- cookbook の実行される順序
- 上から実行されるわけではない
- ファイルなどの変更タイミング
- リソースコレクションと収束
- Compile -> 収束(Converge) -> 通知(Notification)
- cookbook の CI は欠かせない
- テストのないコードはレガシーコード
- cookbook が常に健全である事を担保
- 単体テストを行う
- 単体テストを継続的に実行する(CI)
- テストに使うツール
- Berkshelf/librarian-chef
- foodcritic
- Test-kitchen
- Serverspec
- CI (jenkins / Travis CI / Circle CI) -> Test Kitchen -> Berkshelf/librarian-chef -> foodcritic -> Test Kitchen -> Chef -> Serverspec
- 人類の英知を結集
- cookbook を書こう
- cookbook をテストしよう
- コミュニティに登録しよう
- オープンソースのフローでコード改善
- 春に本を出します