全国1000万人の・・・からはじまるエントリでおなじみのRyuzeeさんのブログエントリで既に紹介されていますが、数日後となる5/22に「Chef実践入門 -コードによるインフラ構成の自動化-」という書籍が出ます。(5名による共著です)
Chef実戦入門
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)
- 作者: 吉羽龍太郎,安藤祐介,伊藤直也,菅井祐太朗,並河祐貴
- 出版社/メーカー: 技術評論社
- 発売日: 2014/05/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (19件) を見る
本書は"実践入門"という名の通り、これからChefを触ろうとされている方から、既にChefを触っている方でよりChefを活用していきたい方まで幅広く、Chefに関しての知識を習得できる内容になっていると思います。
書籍の細かい内容に関しては、エントリの下部に細かい目次を貼り付けておきますので、是非参考にしてください。(節レベルまで記載しているので、おおまかな内容が掴めると思います)
この書籍を片手に、Cookbook開発や実際の運用の基本であったりコツみたいなものをつかんでいただければ、あとはChef社の公式ドキュメントで細かい仕様を確認して幅を広げたり、ネット上の情報をみても自然と理解・感覚がつかめてくるようになるんじゃないかと思います。
尚、僕自身が執筆したのは、第9章と第10章の主にChef Serverを使った運用部分で、基本的にはChef Serverを使うメリット/デメリットから、その基本的な利用フロー、そして大規模サービスをどのように運用しているかを事例ベースで紹介しています。
大規模サービスでの事例というのは、Chefに限らず何でもそうなのですが、大規模運用になると、多くの人が絡んだり運用上多少のゆがみが生じ、綺麗な教科書/銀の弾丸は存在しないのもあって、具体的な細かい内容が少なく感じるかもしれませんが、そこから何か設計のヒントや参考になれば幸いです。
執筆について
Ryuzeeさんがブログエントリに書いている通りですが、
5人での執筆でしたので、原稿は全てマークダウンで記述し、GitHubのプライベートレポジトリに配置し、コミットするたびに自動でPDFとepubとhtmlにビルドして、各著者のDropboxに配信するというようなことをやっていました。もちろん課題や調整もGitHubのIssueを使ってやっていた
ということで、今回はGitHub、Dropbox、CIツール(Jenkins)に大変お世話になりました。各サービス・ツールの関係者の方に深く感謝。
以前、naoyaさんがエントリに書いていた「Github を使って雑誌原稿を書く - naoyaのはてなダイアリー」が、まさにあてはまるのだけど、今回、各著者間や編集の方とのコミュニケーションは"全て"GitHubのプライベートリポジトリ上で行っていました。数名の有識者に書籍自体のレビューもしていただいていますが、それらのやり取りも全てGitHubです。
僕がこれまでに書いてきた書籍では、コミュニケーションは全てメールを使ったテキストやPDFでのやり取りだったのですが、今回メールを使うことは一度もなかったように思います。
とにかく各コミットでの差分と、ログによるhistoryがとにかく追いやすくて(変更が確認しやすくて)、チーム開発ならぬ"チーム執筆"とあえて呼んでみたけど、こういうシーンでもGitHubがかなり活用できるなと実感した次第。
目次
第1章 DevOpsの潮流とChef 1.1 今なぜChefが注目されているのか 1.2 Infrastructure as Code 1.3 Chefの概要 第2章 Chef Soloによるローカル開発環境の自動構築 2.1 Chef Soloとは 2.2 検証環境を構築する 2.3 Chef Soloをインストールする 2.4 Chefを動かしてみる 2.5 Chef Soloでパッケージをインストールする 2.6 knife-soloでchef-soloをリモート実行する 2.7 Chef SoloでApache、MySQLをセットアップする 2.8 Chefリポジトリの扱い 2.9 Vagrant以外のサーバへChefを実行する 2.10 Chefの考え方 第3章 レシピの書き方 3.1 リソースとは 3.2 td-agentのレシピを読む 3.3 主要なリソースの解説 3.4 そのほかのリソース 3.5 AttributeとData Bag 3.6 クックブックのディレクトリレイアウト 第4章 クックブックの活用 4.1 コミュニティクックブックを利用する 4.2 Chef Soloで複数ノードを管理する 第5章 Vagrantによるクックブック開発環境の構築 5.1 Vagrantから直接クックブックを適用する 5.2 Saharaを使って何度もクックブック適用を試す 5.3 Packerで開発環境用のboxを作成する 5.4 変更を加えたboxを配布する 5.5 VagrantでVMware Fusionを利用する 5.6 VagrantでAmazon EC2を利用する 第6章 アプリケーション実行環境の自動構築 6.1 PHP環境を構築する 6.2 Ruby環境を構築する 6.3 MySQLを構築する 6.4 Fluentdを構築する 第7章 テスト駆動インフラ構築 7.1 インフラ構築用のコードにテストを用意する意味 7.2 Test Kitchenによるテスト 7.3 継続的インテグレーション 第8章 Chefをより活用するための注意点 8.1 Chefユーザの共通の悩み 8.2 共通の悩みを解消する基本的な方針 8.3 レシピの書き方の注意点 8.4 Chefをデプロイツールとして使う際の問題点 8.5 大きくなったクックブックを分割する 8.6 クックブックと実際の環境の食い違い 8.7 クックブックの依存関係を管理する 8.8 Chefのレシピが実行されるまでのサイクル 8.9 Chefを拡張する 第9章 Chef Serverによる本番環境の構築と運用 9.1 Chef Serverを利用するメリット 9.2 Chef Serverをセットアップする 9.3 knifeコマンドを利用したオペレーション 9.4 Chef Serverを使った運用フロー 第10章 Chef Serverによる大規模システムの構築と運用 10.1 Chefを使って大量サーバへ一括適用する 10.2 大量物理サーバへ迅速にセットアップする 10.3 Ohaiでマシンの情報を収集して活用する 10.4 複数メンバーでレシピ開発する際のリポジトリ運用 10.5 Chefを活用して監視の自動設定を行う Appendix A コマンドチートシート A.1 knifeコマンド A.2 chef-soloコマンドのオプション A.3 Ohaiで取得できる項目の例 Appendix B クックブックチートシート B.1 各リソース共通の機能 B.2 リソース B.3 Recipe DSL B.4 Windows向けDSL B.5 Chef社がメンテナンスするクックブック
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)
- 作者: 吉羽龍太郎,安藤祐介,伊藤直也,菅井祐太朗,並河祐貴
- 出版社/メーカー: 技術評論社
- 発売日: 2014/05/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (19件) を見る