Skip to content

Instantly share code, notes, and snippets.

@makocchi-git
Created February 28, 2014 05:17
Show Gist options
  • Save makocchi-git/9265731 to your computer and use it in GitHub Desktop.
Save makocchi-git/9265731 to your computer and use it in GitHub Desktop.

DevOpsを実現する為のChef活用テクニック

by Yusuke Ando 氏



  • Engine Yard 社
  • Chef が公開される前から Chef を使っている
  • いつから言われるようになったのか?
  • 2009 年 6 月 velocity 2009 での講演で flickr から
  • 内容としては開発者と運用者の互いの信頼関係、自動化、インスタントメッセンジャーの bot など
  • Infrastructure as Code
  • 構築をコードで自動化
  • サーバーの台数に左右されない
  • Chef は実現する手段の 1 つ
  • 例にサイバーエージェントを出して頂きました(ありがとうございます)
  • 構成管理ツール
  • v11.10
  • Ruby製
  • 冪等性が特徴
  • 高い人気
  • Engine Yard
  • Facebook
  • 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 をテストしよう
  • コミュニティに登録しよう
  • オープンソースのフローでコード改善
  • 春に本を出します
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment