10. Chef の構成要素
● Chef に登場するマシンの役割
– Server, Node(Client), Workstation
● Chef で使用するツール
– Chef Solo, Chef Client, Knife, Ohai
● Chef の定義ファイルで使う用語
– Cookbook, Recipe, Attribute, Resource,
Provider, Role
12. デモ1の環境では、、、
作業端末 AWS 東京リージョン
1. EC2インス
タンスを作成 WordPress Hosted Chef (SaaS)
Knife
PHP
SSH Apache
Ruby
MySQL
Chef Client
3. 割当てられた
CentOS Ubuntu Recipeを実行
Instance Instance
作業用インスタンス 構築されるインスタンス
2. 適用するRecipeを
リポジトリへ登録
Workstation Node Server
13. Chef Server
●
Chef はクライアント - サーバ型のアーキテクチャ
クライアント: 構築(管理)されるマシン。複数存在する。
サーバ: インフラ設定情報を集中管理する。1台だけ存在。
●
Chef Server は、なかなかの変態構成
– RabbitMQ, CouchDB, Solr とかを連携させて稼動
– 素人が下手に手を出すと怪我するぜ
●
Chef Server には複数の利用形態がある。
14. Chef Server の種類
●
Chef Solo
– 実は Chef Server を使わなくても自動構築はできる。
– Chef Server の構築/運用が不要なので、
お手軽に始められるが、使える機能は限定される。
セットアップ対象 Server上のCookbookを参照し、
通常形態 自分のノードをセットアップする。
Chef Server
(Serverあり) Chef Client
cookbooks
Chef Solo セットアップ対象 ローカルのCookbookを参照し、 Chef Server
自分のノードをセットアップする。
(Serverなし) Chef Solo
cookbooks
不要
15. Chef Server の種類
●
オープンソース版
– 自分でサーバを立ててインストールする。
– インストール激むず。サーバの運用も自己責任で。
16. Chef Server の種類
●
SaaS 版
– Chef Server のホスティングサービス
– Opscode 社が運営
– 5台までは無料で使える。
– 組織 (organization) の概念がある。
●
複数部署にまたがった利用
●
コンサルタントに閲覧だけ許可
17. Chef Server の種類
●
オンプレミス版
– インターネットに接続できない環境でも、
SaaS版と同等機能の Chef Server を構築できる。
●
組織管理
●
冗長化(HA)
– 24H365D の有償サポートを Opscode 社が提供
18. Chef Server の種類
●
利用形態に応じた使い分け
Chef Solo OSS版 SaaS版 オンプレミス版
手軽さ ◎ × ○ △
検索 × ○ ○ ○
ノード情報保存 × ○ ○ ○
組織管理 × × ○ ○
コスト ○ ○ △ ×
● 開発環境、小規模システム ⇒ Chef Solo
● とにかく低コスト ⇒ OSS
● パブリッククラウドで楽に運用 ⇒ SaaS
● プライベートクラウド、DC内で運用 ⇒ オンプレミス
19. Chef で使用するツール
●
Chef Solo, Chef Client
– 構成情報に従って自動構築を行うツール
– 構築対象の Node 上で動作
– Chef Server なしなら Solo, ありなら Client を使う。
– Chef Client は定期的に実行される。(デフォルト30分間隔)
●
Knife
– Chef の管理、運用を行うコマンドラインツール
– プラグインによる機能拡張が可能
●
クラウド操作 knife-ec2, knife-openstack, knife-cloudstack、、、
●
仮想ホスト操作 knife-vsphere, knife-kvm, knife-xapi、、、
20. Chef で使用するツール
●
Ohai
– Chef 内部で Node の情報を取得する際に使うツール
– Chef をインストールすると一緒に導入される。
– Ohai で取得した情報は Chef Server に登録される。
●
全ての Node の情報を Chef Server で参照できる。
●
Node の attribute として使用可能
– Ohai 単体で使用することも可能 (gem install ohai)
●
Node のコマンドラインで ohai って打つ
●
Ruby プログラムからライブラリとして呼び出す
– プラットフォームに関係なく、同じ方法で同じ値を取得できる。
– プラグインで機能追加も可能