SlideShare uma empresa Scribd logo
1 de 44
©2013 NEC BIGLOBE, Ltd. 1
第1回 BIGLOBE Tech Talk 「初めての Chef」
入門 Chef Server
2013.6.14
NEC BIGLOBE
SACHO Yasuhisa
©2013 NEC BIGLOBE, Ltd. 2
自己紹介
• 佐長 康久 (さちょう やすひさ)
• ミドルウェア担当
• id: @syasuhisa
– つぶやき内容は所属組織とは関係ありまs(ry
©2013 NEC BIGLOBE, Ltd. 3
目次
• Chef とは
• Chef Server について
• Chef Server 設定編
• Chef Server 利用編
• まとめ
©2013 NEC BIGLOBE, Ltd. 4
Chef とは
©2013 NEC BIGLOBE, Ltd. 5
Chef とは
• インフラの構築・運用管理を自動化するため
のフレームワーク
©2013 NEC BIGLOBE, Ltd. 6
Chef の基本
• Ruby で記述されたクックブックやレシピ※と呼ばれる
設定情報を元に、サーバの状態を維持・管理する
Infrastructure as Code
– インフラをコードで制御できるように
クックブック
レシピ
Ruby
プログラム
※
クックブック:
レシピ、属性情報、設定テンプレートなどをまとめたもの
レシピ:
設定や手順を記述した Ruby プログラム
©2013 NEC BIGLOBE, Ltd. 7
• 設定や手順をプログラムで書いておけば、自動で設
定してくれる?
で?
対象サーバ
自動設定
クックブック
レシピ
1)Apache入れて
2)起動
Apache
起動
• 本質的には、
あるべき状態をプログラムで定義しておけば、自動
で状態を維持してくれる
©2013 NEC BIGLOBE, Ltd. 8
Chef のバリエーション
種別 概要
OSS Chef オープンソース版
Hosted Chef Opscode 社が Chef Server を運用
Private Chef Hosted 版をプライベート環境で運用
• 機能差については下記参照
http://www.opscode.com/chef/#which-chef
©2013 NEC BIGLOBE, Ltd. 9
OSS Chef のバリエーション
種類 特徴 機能
Chef Server 本気のサーバ・クライアント型 多
Chef zero 軽量簡易 Chef Server
Chef solo スタンドアロン版
Chef apply 単一レシピを実行 少
©2013 NEC BIGLOBE, Ltd. 10
基本構成
Chef Server Node
Workstation
knife Chef Client
管理者用端末
knife コマンドで、
クックブック、Chef
Server を操作する
Chef Server に管理され
るサーバ
Chef Client が定期的に
Chef Server と通信し、
定義された状態を
維持する
管理サーバ
クックブックの配布・保存、
Node の認証、管理、
情報の検索などを行う
©2013 NEC BIGLOBE, Ltd. 11
Node
動作概要
Chef Server
Workstation
クックブック
レシピ
1)Apache入れて
2)起動
レシピ
1)Apache入れて
2)起動
knife Chef Client
① クックブックを用意して、
Chef Server へアップロード
©2013 NEC BIGLOBE, Ltd. 12
Node
動作概要
Chef Server
Workstation
knife Chef Client
② クックブックの
情報を(定期的に)取得
クックブック
レシピ
1)Apache入れて
2)起動
レシピ
1)Apache入れて
2)起動
©2013 NEC BIGLOBE, Ltd. 13
Node
動作概要
Chef Server
Workstation
knife Chef Client
③ Node が、クックブックで
定義された状態と異なる場合、
必要な処理を実行して、
状態を合わせる
クックブック
レシピ
1)Apache入れて
2)起動
レシピ
1)Apache入れて
2)起動
Apache
起動
©2013 NEC BIGLOBE, Ltd. 14
最近の話題
• Chef11
• Facebook
• AWS OpsWorks
• 「入門 Chef Solo」本(伊藤直也さん著)
• IBM
• Microsoft
©2013 NEC BIGLOBE, Ltd. 15
Chef Server について
©2013 NEC BIGLOBE, Ltd. 16
Chef Server とは
• クライアント・サーバモデル
• インフラ情報を集中管理
– 情報検索
• 例
– OS が CentOS のノード
– メモリが 4GB のノード
– 検索結果を利用した設定との連携など
• 中規模~向け
• WebUI
©2013 NEC BIGLOBE, Ltd. 17
Chef11
• より高性能かつスケーラブルに
– 1 サーバで 10,000 ノード管理可能
– コアエンジンが Ruby 製から Erlang 製に
– DB が CouchDB から PostgreSQL に
– WebUI が Merb から Rails 3 に
– フロントエンドに Nginx
• API や WebUI アクセスをリバースプロキシ
• ポートが分かりやすく
– HTTPS(443/tcp)に集約
– HTTP(80/tcp)は HTTPS へリダイレクト
©2013 NEC BIGLOBE, Ltd. 18
Chef11
• Chef Server の導入が簡単に
– Chef10 までは Chef Server の構築が手間だった
– 一つの RPM でインストール
• 組み込み Ruby など必要なものはすべて
– /opt/chef-server 配下
• セットアップもコマンド一発
• テストまで
©2013 NEC BIGLOBE, Ltd. 19
Chef Server の構成要素
Nginx
フロントエンド用リバースプロキシ
WebUI
Web インタフェース機能、Rails 3
Erchef
コアエンジン部、Erlang 実装
Bookshelf
クックブックを保存
Message Queues
検索 Indexer、RabbitMQ+chef-solr
PostgreSQL
Node やクックブックの情報を保存
参考: http://docs.opscode.com/chef_overview_server.html
©2013 NEC BIGLOBE, Ltd. 20
chef-client 実行
① Node 情報収集(Ohai)
② 認証
③ 設定情報取得
④ 設定準備
⑤ 設定実行(実施済みはスキップ)
⑥ 情報更新、ログ出力
終了
Chef Client の処理フロー
Chef Server
いい?
OK!
最新情報通知
©2013 NEC BIGLOBE, Ltd. 21
Ohai
• Ruby 製の情報収集ツール
– Chef のインフラ情報管理を支えている
– Chef Client に同梱
• 様々な Node の情報を JSON 形式で収集
– 環境や OS に合わせて情報収集
• ソースは努力の結晶だそうです
– 項目は数百以上
• OS、 CPU、メモリ、ディスク、NW、…
• 収集した情報は Chef Server に保存
– 検索可能に
©2013 NEC BIGLOBE, Ltd. 22
認証
• Chef Server は API クライアント(Chef Client や knife)
を公開鍵暗号で認証
• 初回通信時のみ特殊な validator キーを使用
– validator キーは Chef Server 構築時に自動生成
– API クライアント利用前に設置が必要
Chef Server
Chef Client
初回通信時:
validator キーで署名して、
新しい API クライアントの鍵を要求
以降:
新しい API クライアントキーで署名
新しい API クライアントの鍵を返却
©2013 NEC BIGLOBE, Ltd. 23
Chef Server 設定編
©2013 NEC BIGLOBE, Ltd. 24
vagrant
VirtualBox
Windows7
テスト環境
• PC(Windows7)
– VirtualBox 4.2.12
• chefsv
– workstation も兼ねる
– Chef Server 11.8.0.1
– Chef Client 11.4.4
– 192.168.10.10
– 要 git
• node01
– Chef Client 11.4.4
– 192.168.10.31
– vagrant 1.2.2
• CentOS 6.4 box
192.168.10.10 192.168.10.31
192.168.10.1
chefsv node01
テスト環境概要図
©2013 NEC BIGLOBE, Ltd. 25
テスト環境設定時のポイント
• hosts
– Chef Server は 127.0.0.1 で自分の名前解決ができること
– Chef Server は Node の名前解決ができること
– Node は Chef Server の名前解決ができること
• iptables
– Workstation、Node → Chef Server(443/tcp)
– Workstation → Node(22/tcp)
– WebUI 用 → Chef Server(80/tcp)
• ssh
– Workstation → Node ログインできること
– ログインアカウント(今回は vagrant)で sudo できること
• knife
– knife コマンド実行時に knife.rb を探索
– ~/.chef/knife.rb なら、気にしなくても大丈夫
©2013 NEC BIGLOBE, Ltd. 26
仮想環境構築
• Vagrantfile 置いて、vagrant up
Vagrant.configure("2") do |config|
config.vm.box = "centos64"
config.vm.define :server do |sv|
sv.vm.network :private_network, ip:"192.168.10.10"
sv.vm.hostname = "chefsv"
end
config.vm.define :node do |sv|
sv.vm.network :private_network, ip:"192.168.10.31"
sv.vm.hostname = "node01"
end
end
©2013 NEC BIGLOBE, Ltd. 27
Chef Server 設定
chefsv$ sudo rpm -ivh chef-server-11.0.8-1.el6.x86_64.rpm
• Chef Server RPM のダウンロード
– http://www.opscode.com/chef/install/
• インストール
chefsv$ sudo chef-server-ctl reconfigure
Starting Chef Client, version 11.4.0
Compiling Cookbooks...
...
Chef Client finished, 268 resources updated
chef-server Reconfigured!
chefsv$ sudo chef-server-ctl test
...
Finished in 34.09 seconds
70 examples, 0 failures
• セットアップ
©2013 NEC BIGLOBE, Ltd. 28
Chef Server 管理コマンド
• /opt/chef-server/bin/chef-server-ctl
– 状態、設定確認
– 起動、停止、再起動
– 一括ログ参照
– シグナル送信
– (再)設定
– 初期化
– アンインストール
cleanse
graceful-kill
help
hup
int
kill
once
reconfigure
reindex
restart
service-list
show-config
start
status
stop
tail
term
test
uninstall
利用可能なオプション一覧
©2013 NEC BIGLOBE, Ltd. 29
Workstation 設定
• knife インストール(Chef Client に含まれる)
chefsv$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
chefsv$ chef-client -v
Chef: 11.4.4
chefsv$ cd ~
chefsv$ git clone git://github.com/opscode/chef-repo.git
chefsv$ mkdir ~/.chef
chefsv$ sudo cp /etc/chef-server/chef-validator.pem ~/.chef/validation.pem
chefsv$ sudo cp /etc/chef-server/admin.pem ~/.chef/
chefsv$ sudo chown vagrant:vagrant ~/.chef/*.pem
• レポジトリの準備
• 鍵の準備
©2013 NEC BIGLOBE, Ltd. 30
Workstation 設定
chefsv$ $ knife configure -i
WARNING: No knife configuration file found
Where should I put the config file? [/home/vagrant/.chef/knife.rb]
Please enter the chef server URL: [http://chefsv:4000] https:://192.168.10.10
Please enter a name for the new user: [vagrant]
Please enter the existing admin name: [admin]
Please enter the location of the existing admin's private key:
[/etc/chef/admin.pem] ~/.chef/admin.pem
Please enter the validation clientname: [chef-validator]
Please enter the location of the validation key: [/etc/chef/validation.pem]
~/.chef/validation.pem
Please enter the path to a chef repository (or leave blank): ~/chef-repo
Creating initial API user...
Please enter a password for the new user: ********
Created user[vagrant]
Configuration file written to /home/vagrant/.chef/knife.rb
• knife コマンド初期設定
©2013 NEC BIGLOBE, Ltd. 31
Node 設定
chefsv$ knife bootstrap 192.168.10.31 -x vagrant -P ******** --sudo
Bootstrapping Chef on 192.168.10.31
...
192.168.10.31 Converging 0 resources
192.168.10.31 Chef Client finished, 0 resources updated
• Workstation から bootstrap で起動
• 自動で validator キーを置いてくれる
• Chef Server 登録して、初回 Chef Client 実行まで
©2013 NEC BIGLOBE, Ltd. 32
Node 設定
chefsv$ knife ssh name:node01 'sudo chef-client -d -i 300 -s 10
-L /var/log/chef-client.log' -P ********
• knife ssh で Chef Client を daemon 化(強気)
nocd01$ ps -fea | grep chef
root 5743 1 0 05:58 ? 00:00:00 /opt/chef/embedded/bin/ruby
/usr/bin/chef-client -d -i 300 -s 10 -L /var/log/chef-client.log
• 300s 間隔で 10s ランダムに時間をずらして実行
• ログは /var/log/chef-client.log に出力
• 手動で単発実行するなら、-d オプションなしで
• -W オプションで why-run(dry-run)
– 設定は実施しない
©2013 NEC BIGLOBE, Ltd. 33
Chef Server 利用編
©2013 NEC BIGLOBE, Ltd. 34
クックブック・レシピ
• サーバの「状態」を定義
– 何回実行しても同じ状態になるように作る
– 冪等(べきとう)性(これ大事
• プラットフォームの違いを吸収してくれる(ものも
– 例) package * action: install
• CentOS → yum
• Ubuntu → apt-get
• コミュニティでたくさん公開
– http://community.opscode.com/cookbooks
– だいたい動きますが、期待通りか確認しましょう
– わりとそのままでは使えないことも…
– とても参考になります
©2013 NEC BIGLOBE, Ltd. 35
クックブック開発・テスト
• 開発・テストツールも色々あります
– test-kitchen
– Food Critic
– cucumber-chef
– chef-workflow
– chefspec
– yard-chef
参考 URL: http://docs.opscode.com/#the-chef-community
©2013 NEC BIGLOBE, Ltd. 36
クックブックの登録
chefsv$ knife cookbook upload apache2
Uploading apache2 [1.6.2]
Uploaded 1 cookbook.
chefsv$ knife coolkbook list
apache2 1.6.2
• クックブックの取得
chefsv$ knife cookbook site install apache2
Installing apache2 to /home/vagrant/chef-repo/cookbooks
...
Cookbook apache2 version 1.6.2 successfully installed
• クックブックを Chef Server にアップロード
©2013 NEC BIGLOBE, Ltd. 37
ここからは WebUI で
chefsv の IP アドレスで接続
ログイン情報は画面右
初回ログイン後、パスワード変更画面へ
©2013 NEC BIGLOBE, Ltd. 38
Status
管理 Node 情報が一覧表示
Uptime や Last Check-in など
長時間更新されていないと色が変わる
©2013 NEC BIGLOBE, Ltd. 39
Cookbooks
登録済みクックブックが一覧表示
chefsv$ knife cookbook list
apache2 1.6.2
©2013 NEC BIGLOBE, Ltd. 40
Nodes
管理 Node が一覧表示
chefsv$ knife node list
node01
©2013 NEC BIGLOBE, Ltd. 41
レシピの適用
適用したいレシピを
ドラッグ&ドロップして、
下部の「Save Node」 ボタンを押す
chefsv$ knife node run_list add node01 'recipe[apache2]'
©2013 NEC BIGLOBE, Ltd. 42
適用レシピの確認
新たに Run List と Recipes に
登録したレシピ情報が反映
Chef Client を daemon 化していれば、
しばらくすればレシピが適用
していない場合は、knife ssh や Node
上で Chef Client を実行して適用
node01$ ps -fea | grep httpd
root 7358 1 0 14:38 ? 00:00:00 /usr/sbin/httpd
apache 7361 7358 0 14:38 ? 00:00:00 /usr/sbin/httpd
apache 7362 7358 0 14:38 ? 00:00:00 /usr/sbin/httpd
...
©2013 NEC BIGLOBE, Ltd. 43
情報検索
Node 用 Queryに「platform:centos」と入力して、
「Search node」ボタンを押すと、
CentOS の Node 一覧が表示される
chefsv$ knife search node platform:centos
1 items found
Node Name: node01
Environment: _default
FQDN: node
IP: 10.0.2.15
Run List: recipe[apache2]
Roles:
Recipes: apache2
Platform: centos 6.4
Tags:
©2013 NEC BIGLOBE, Ltd. 44
まとめ
• Chef は、
「インフラの構築・運用管理を自動化するため
のフレームワーク」
• Chef11 はいろいろと便利に
• Chef Server も簡単に試せます
• WebUI もぜひ
• 冪等(べきとう)性は大切です
• 使いこなすには、Dev+Ops 力!
以上です

Mais conteúdo relacionado

Mais procurados

serverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみようserverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみようDaisuke Ikeda
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)佐久本正太
 
Serverspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingGosuke Miyashita
 
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Daisuke Ikeda
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecマニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecYukihiko SAWANOBORI
 
ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!ftnk
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜Naotoshi Seo
 
Chefで作る開発環境
Chefで作る開発環境Chefで作る開発環境
Chefで作る開発環境regret raym
 
Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話Yasufumi Moritake
 
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithackChef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack満徳 関
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築靖 小田島
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介Akira Kaneda
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネット株式会社
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Takashi Kanai
 

Mais procurados (20)

serverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみようserverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみよう
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Serverspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework Meeting
 
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecマニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
 
ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
Chefで作る開発環境
Chefで作る開発環境Chefで作る開発環境
Chefで作る開発環境
 
Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話
 
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithackChef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 

Destaque

MySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMaho Takara
 
Portfolio assesment: Writing interconnected and powerful learnings
Portfolio assesment: Writing interconnected and powerful learningsPortfolio assesment: Writing interconnected and powerful learnings
Portfolio assesment: Writing interconnected and powerful learningsJordi Díaz Gibson
 
Crecimiento de bucaramanga y su area metropolitana
Crecimiento de bucaramanga y su area metropolitanaCrecimiento de bucaramanga y su area metropolitana
Crecimiento de bucaramanga y su area metropolitanaMarcela02102000
 
비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠
비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠
비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠成 金
 
tutorial hotspot mikrotik
tutorial hotspot mikrotiktutorial hotspot mikrotik
tutorial hotspot mikrotikDimas Ari
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 Maho Takara
 
ラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そうラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そうMaho Takara
 
Renewable Energy From Evaporation
Renewable Energy From EvaporationRenewable Energy From Evaporation
Renewable Energy From EvaporationAlbert Vx
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aMaho Takara
 
Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)tak9029
 

Destaque (12)

Alternative chef
Alternative chefAlternative chef
Alternative chef
 
Teorias
TeoriasTeorias
Teorias
 
MySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayer
 
Portfolio assesment: Writing interconnected and powerful learnings
Portfolio assesment: Writing interconnected and powerful learningsPortfolio assesment: Writing interconnected and powerful learnings
Portfolio assesment: Writing interconnected and powerful learnings
 
Crecimiento de bucaramanga y su area metropolitana
Crecimiento de bucaramanga y su area metropolitanaCrecimiento de bucaramanga y su area metropolitana
Crecimiento de bucaramanga y su area metropolitana
 
비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠
비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠
비아그라 복용법々비아그라 구입『〃∠∩비아그라판매∝비아그라구입〃비아그라파는곳∧비아그라팝니다≠
 
tutorial hotspot mikrotik
tutorial hotspot mikrotiktutorial hotspot mikrotik
tutorial hotspot mikrotik
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
 
ラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そうラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そう
 
Renewable Energy From Evaporation
Renewable Energy From EvaporationRenewable Energy From Evaporation
Renewable Energy From Evaporation
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121a
 
Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)
 

Semelhante a 入門 Chef Server #biglobetechtalk

20130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.020130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.0NIFTY Cloud
 
社内勉強会 - chef
社内勉強会 - chef社内勉強会 - chef
社内勉強会 - chefNemoto Yusuke
 
DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版Yusuke Ando
 
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックDevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックYusuke Ando
 
S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成Microsoft Azure Japan
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChefMasahiro NAKAYAMA
 
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -Rubyで楽々サーバー管理 - 岡山Ruby会議01 -
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -Masaya Konishi
 
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~gree_tech
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Makoto Nishimura
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfMasahiro NAKAYAMA
 
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸  開発運用の現場でのChef活用第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用Takuro Sasaki
 
ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築Masahiro Wakame
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 

Semelhante a 入門 Chef Server #biglobetechtalk (20)

20130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.020130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.0
 
社内勉強会 - chef
社内勉強会 - chef社内勉強会 - chef
社内勉強会 - chef
 
DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版
 
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックDevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニック
 
S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChef
 
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -Rubyで楽々サーバー管理 - 岡山Ruby会議01 -
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -
 
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~
 
Redmine Ansible
Redmine AnsibleRedmine Ansible
Redmine Ansible
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
 
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸  開発運用の現場でのChef活用第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築
 
Chef
ChefChef
Chef
 
130412 kayac-cinnamon
130412 kayac-cinnamon130412 kayac-cinnamon
130412 kayac-cinnamon
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 

Mais de BIGLOBE Tech Talk

アジャイル実践のための3つのコツ BIGLOBEはこうやりました
アジャイル実践のための3つのコツ BIGLOBEはこうやりましたアジャイル実践のための3つのコツ BIGLOBEはこうやりました
アジャイル実践のための3つのコツ BIGLOBEはこうやりましたBIGLOBE Tech Talk
 
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)BIGLOBE Tech Talk
 
エンジニアからはじめるリーンスタートアップ(応募スライド)
エンジニアからはじめるリーンスタートアップ(応募スライド)エンジニアからはじめるリーンスタートアップ(応募スライド)
エンジニアからはじめるリーンスタートアップ(応募スライド)BIGLOBE Tech Talk
 
顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀
顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀
顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀BIGLOBE Tech Talk
 

Mais de BIGLOBE Tech Talk (6)

アジャイル実践のための3つのコツ BIGLOBEはこうやりました
アジャイル実践のための3つのコツ BIGLOBEはこうやりましたアジャイル実践のための3つのコツ BIGLOBEはこうやりました
アジャイル実践のための3つのコツ BIGLOBEはこうやりました
 
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)
 
エンジニアからはじめるリーンスタートアップ(応募スライド)
エンジニアからはじめるリーンスタートアップ(応募スライド)エンジニアからはじめるリーンスタートアップ(応募スライド)
エンジニアからはじめるリーンスタートアップ(応募スライド)
 
agilejapan2012biglobedojo
agilejapan2012biglobedojoagilejapan2012biglobedojo
agilejapan2012biglobedojo
 
biglobedojo7
biglobedojo7biglobedojo7
biglobedojo7
 
顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀
顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀
顧客開発モデルの実践事例のご紹介 BIGLOBE 芳賀
 

入門 Chef Server #biglobetechtalk

  • 1. ©2013 NEC BIGLOBE, Ltd. 1 第1回 BIGLOBE Tech Talk 「初めての Chef」 入門 Chef Server 2013.6.14 NEC BIGLOBE SACHO Yasuhisa
  • 2. ©2013 NEC BIGLOBE, Ltd. 2 自己紹介 • 佐長 康久 (さちょう やすひさ) • ミドルウェア担当 • id: @syasuhisa – つぶやき内容は所属組織とは関係ありまs(ry
  • 3. ©2013 NEC BIGLOBE, Ltd. 3 目次 • Chef とは • Chef Server について • Chef Server 設定編 • Chef Server 利用編 • まとめ
  • 4. ©2013 NEC BIGLOBE, Ltd. 4 Chef とは
  • 5. ©2013 NEC BIGLOBE, Ltd. 5 Chef とは • インフラの構築・運用管理を自動化するため のフレームワーク
  • 6. ©2013 NEC BIGLOBE, Ltd. 6 Chef の基本 • Ruby で記述されたクックブックやレシピ※と呼ばれる 設定情報を元に、サーバの状態を維持・管理する Infrastructure as Code – インフラをコードで制御できるように クックブック レシピ Ruby プログラム ※ クックブック: レシピ、属性情報、設定テンプレートなどをまとめたもの レシピ: 設定や手順を記述した Ruby プログラム
  • 7. ©2013 NEC BIGLOBE, Ltd. 7 • 設定や手順をプログラムで書いておけば、自動で設 定してくれる? で? 対象サーバ 自動設定 クックブック レシピ 1)Apache入れて 2)起動 Apache 起動 • 本質的には、 あるべき状態をプログラムで定義しておけば、自動 で状態を維持してくれる
  • 8. ©2013 NEC BIGLOBE, Ltd. 8 Chef のバリエーション 種別 概要 OSS Chef オープンソース版 Hosted Chef Opscode 社が Chef Server を運用 Private Chef Hosted 版をプライベート環境で運用 • 機能差については下記参照 http://www.opscode.com/chef/#which-chef
  • 9. ©2013 NEC BIGLOBE, Ltd. 9 OSS Chef のバリエーション 種類 特徴 機能 Chef Server 本気のサーバ・クライアント型 多 Chef zero 軽量簡易 Chef Server Chef solo スタンドアロン版 Chef apply 単一レシピを実行 少
  • 10. ©2013 NEC BIGLOBE, Ltd. 10 基本構成 Chef Server Node Workstation knife Chef Client 管理者用端末 knife コマンドで、 クックブック、Chef Server を操作する Chef Server に管理され るサーバ Chef Client が定期的に Chef Server と通信し、 定義された状態を 維持する 管理サーバ クックブックの配布・保存、 Node の認証、管理、 情報の検索などを行う
  • 11. ©2013 NEC BIGLOBE, Ltd. 11 Node 動作概要 Chef Server Workstation クックブック レシピ 1)Apache入れて 2)起動 レシピ 1)Apache入れて 2)起動 knife Chef Client ① クックブックを用意して、 Chef Server へアップロード
  • 12. ©2013 NEC BIGLOBE, Ltd. 12 Node 動作概要 Chef Server Workstation knife Chef Client ② クックブックの 情報を(定期的に)取得 クックブック レシピ 1)Apache入れて 2)起動 レシピ 1)Apache入れて 2)起動
  • 13. ©2013 NEC BIGLOBE, Ltd. 13 Node 動作概要 Chef Server Workstation knife Chef Client ③ Node が、クックブックで 定義された状態と異なる場合、 必要な処理を実行して、 状態を合わせる クックブック レシピ 1)Apache入れて 2)起動 レシピ 1)Apache入れて 2)起動 Apache 起動
  • 14. ©2013 NEC BIGLOBE, Ltd. 14 最近の話題 • Chef11 • Facebook • AWS OpsWorks • 「入門 Chef Solo」本(伊藤直也さん著) • IBM • Microsoft
  • 15. ©2013 NEC BIGLOBE, Ltd. 15 Chef Server について
  • 16. ©2013 NEC BIGLOBE, Ltd. 16 Chef Server とは • クライアント・サーバモデル • インフラ情報を集中管理 – 情報検索 • 例 – OS が CentOS のノード – メモリが 4GB のノード – 検索結果を利用した設定との連携など • 中規模~向け • WebUI
  • 17. ©2013 NEC BIGLOBE, Ltd. 17 Chef11 • より高性能かつスケーラブルに – 1 サーバで 10,000 ノード管理可能 – コアエンジンが Ruby 製から Erlang 製に – DB が CouchDB から PostgreSQL に – WebUI が Merb から Rails 3 に – フロントエンドに Nginx • API や WebUI アクセスをリバースプロキシ • ポートが分かりやすく – HTTPS(443/tcp)に集約 – HTTP(80/tcp)は HTTPS へリダイレクト
  • 18. ©2013 NEC BIGLOBE, Ltd. 18 Chef11 • Chef Server の導入が簡単に – Chef10 までは Chef Server の構築が手間だった – 一つの RPM でインストール • 組み込み Ruby など必要なものはすべて – /opt/chef-server 配下 • セットアップもコマンド一発 • テストまで
  • 19. ©2013 NEC BIGLOBE, Ltd. 19 Chef Server の構成要素 Nginx フロントエンド用リバースプロキシ WebUI Web インタフェース機能、Rails 3 Erchef コアエンジン部、Erlang 実装 Bookshelf クックブックを保存 Message Queues 検索 Indexer、RabbitMQ+chef-solr PostgreSQL Node やクックブックの情報を保存 参考: http://docs.opscode.com/chef_overview_server.html
  • 20. ©2013 NEC BIGLOBE, Ltd. 20 chef-client 実行 ① Node 情報収集(Ohai) ② 認証 ③ 設定情報取得 ④ 設定準備 ⑤ 設定実行(実施済みはスキップ) ⑥ 情報更新、ログ出力 終了 Chef Client の処理フロー Chef Server いい? OK! 最新情報通知
  • 21. ©2013 NEC BIGLOBE, Ltd. 21 Ohai • Ruby 製の情報収集ツール – Chef のインフラ情報管理を支えている – Chef Client に同梱 • 様々な Node の情報を JSON 形式で収集 – 環境や OS に合わせて情報収集 • ソースは努力の結晶だそうです – 項目は数百以上 • OS、 CPU、メモリ、ディスク、NW、… • 収集した情報は Chef Server に保存 – 検索可能に
  • 22. ©2013 NEC BIGLOBE, Ltd. 22 認証 • Chef Server は API クライアント(Chef Client や knife) を公開鍵暗号で認証 • 初回通信時のみ特殊な validator キーを使用 – validator キーは Chef Server 構築時に自動生成 – API クライアント利用前に設置が必要 Chef Server Chef Client 初回通信時: validator キーで署名して、 新しい API クライアントの鍵を要求 以降: 新しい API クライアントキーで署名 新しい API クライアントの鍵を返却
  • 23. ©2013 NEC BIGLOBE, Ltd. 23 Chef Server 設定編
  • 24. ©2013 NEC BIGLOBE, Ltd. 24 vagrant VirtualBox Windows7 テスト環境 • PC(Windows7) – VirtualBox 4.2.12 • chefsv – workstation も兼ねる – Chef Server 11.8.0.1 – Chef Client 11.4.4 – 192.168.10.10 – 要 git • node01 – Chef Client 11.4.4 – 192.168.10.31 – vagrant 1.2.2 • CentOS 6.4 box 192.168.10.10 192.168.10.31 192.168.10.1 chefsv node01 テスト環境概要図
  • 25. ©2013 NEC BIGLOBE, Ltd. 25 テスト環境設定時のポイント • hosts – Chef Server は 127.0.0.1 で自分の名前解決ができること – Chef Server は Node の名前解決ができること – Node は Chef Server の名前解決ができること • iptables – Workstation、Node → Chef Server(443/tcp) – Workstation → Node(22/tcp) – WebUI 用 → Chef Server(80/tcp) • ssh – Workstation → Node ログインできること – ログインアカウント(今回は vagrant)で sudo できること • knife – knife コマンド実行時に knife.rb を探索 – ~/.chef/knife.rb なら、気にしなくても大丈夫
  • 26. ©2013 NEC BIGLOBE, Ltd. 26 仮想環境構築 • Vagrantfile 置いて、vagrant up Vagrant.configure("2") do |config| config.vm.box = "centos64" config.vm.define :server do |sv| sv.vm.network :private_network, ip:"192.168.10.10" sv.vm.hostname = "chefsv" end config.vm.define :node do |sv| sv.vm.network :private_network, ip:"192.168.10.31" sv.vm.hostname = "node01" end end
  • 27. ©2013 NEC BIGLOBE, Ltd. 27 Chef Server 設定 chefsv$ sudo rpm -ivh chef-server-11.0.8-1.el6.x86_64.rpm • Chef Server RPM のダウンロード – http://www.opscode.com/chef/install/ • インストール chefsv$ sudo chef-server-ctl reconfigure Starting Chef Client, version 11.4.0 Compiling Cookbooks... ... Chef Client finished, 268 resources updated chef-server Reconfigured! chefsv$ sudo chef-server-ctl test ... Finished in 34.09 seconds 70 examples, 0 failures • セットアップ
  • 28. ©2013 NEC BIGLOBE, Ltd. 28 Chef Server 管理コマンド • /opt/chef-server/bin/chef-server-ctl – 状態、設定確認 – 起動、停止、再起動 – 一括ログ参照 – シグナル送信 – (再)設定 – 初期化 – アンインストール cleanse graceful-kill help hup int kill once reconfigure reindex restart service-list show-config start status stop tail term test uninstall 利用可能なオプション一覧
  • 29. ©2013 NEC BIGLOBE, Ltd. 29 Workstation 設定 • knife インストール(Chef Client に含まれる) chefsv$ curl -L https://www.opscode.com/chef/install.sh | sudo bash chefsv$ chef-client -v Chef: 11.4.4 chefsv$ cd ~ chefsv$ git clone git://github.com/opscode/chef-repo.git chefsv$ mkdir ~/.chef chefsv$ sudo cp /etc/chef-server/chef-validator.pem ~/.chef/validation.pem chefsv$ sudo cp /etc/chef-server/admin.pem ~/.chef/ chefsv$ sudo chown vagrant:vagrant ~/.chef/*.pem • レポジトリの準備 • 鍵の準備
  • 30. ©2013 NEC BIGLOBE, Ltd. 30 Workstation 設定 chefsv$ $ knife configure -i WARNING: No knife configuration file found Where should I put the config file? [/home/vagrant/.chef/knife.rb] Please enter the chef server URL: [http://chefsv:4000] https:://192.168.10.10 Please enter a name for the new user: [vagrant] Please enter the existing admin name: [admin] Please enter the location of the existing admin's private key: [/etc/chef/admin.pem] ~/.chef/admin.pem Please enter the validation clientname: [chef-validator] Please enter the location of the validation key: [/etc/chef/validation.pem] ~/.chef/validation.pem Please enter the path to a chef repository (or leave blank): ~/chef-repo Creating initial API user... Please enter a password for the new user: ******** Created user[vagrant] Configuration file written to /home/vagrant/.chef/knife.rb • knife コマンド初期設定
  • 31. ©2013 NEC BIGLOBE, Ltd. 31 Node 設定 chefsv$ knife bootstrap 192.168.10.31 -x vagrant -P ******** --sudo Bootstrapping Chef on 192.168.10.31 ... 192.168.10.31 Converging 0 resources 192.168.10.31 Chef Client finished, 0 resources updated • Workstation から bootstrap で起動 • 自動で validator キーを置いてくれる • Chef Server 登録して、初回 Chef Client 実行まで
  • 32. ©2013 NEC BIGLOBE, Ltd. 32 Node 設定 chefsv$ knife ssh name:node01 'sudo chef-client -d -i 300 -s 10 -L /var/log/chef-client.log' -P ******** • knife ssh で Chef Client を daemon 化(強気) nocd01$ ps -fea | grep chef root 5743 1 0 05:58 ? 00:00:00 /opt/chef/embedded/bin/ruby /usr/bin/chef-client -d -i 300 -s 10 -L /var/log/chef-client.log • 300s 間隔で 10s ランダムに時間をずらして実行 • ログは /var/log/chef-client.log に出力 • 手動で単発実行するなら、-d オプションなしで • -W オプションで why-run(dry-run) – 設定は実施しない
  • 33. ©2013 NEC BIGLOBE, Ltd. 33 Chef Server 利用編
  • 34. ©2013 NEC BIGLOBE, Ltd. 34 クックブック・レシピ • サーバの「状態」を定義 – 何回実行しても同じ状態になるように作る – 冪等(べきとう)性(これ大事 • プラットフォームの違いを吸収してくれる(ものも – 例) package * action: install • CentOS → yum • Ubuntu → apt-get • コミュニティでたくさん公開 – http://community.opscode.com/cookbooks – だいたい動きますが、期待通りか確認しましょう – わりとそのままでは使えないことも… – とても参考になります
  • 35. ©2013 NEC BIGLOBE, Ltd. 35 クックブック開発・テスト • 開発・テストツールも色々あります – test-kitchen – Food Critic – cucumber-chef – chef-workflow – chefspec – yard-chef 参考 URL: http://docs.opscode.com/#the-chef-community
  • 36. ©2013 NEC BIGLOBE, Ltd. 36 クックブックの登録 chefsv$ knife cookbook upload apache2 Uploading apache2 [1.6.2] Uploaded 1 cookbook. chefsv$ knife coolkbook list apache2 1.6.2 • クックブックの取得 chefsv$ knife cookbook site install apache2 Installing apache2 to /home/vagrant/chef-repo/cookbooks ... Cookbook apache2 version 1.6.2 successfully installed • クックブックを Chef Server にアップロード
  • 37. ©2013 NEC BIGLOBE, Ltd. 37 ここからは WebUI で chefsv の IP アドレスで接続 ログイン情報は画面右 初回ログイン後、パスワード変更画面へ
  • 38. ©2013 NEC BIGLOBE, Ltd. 38 Status 管理 Node 情報が一覧表示 Uptime や Last Check-in など 長時間更新されていないと色が変わる
  • 39. ©2013 NEC BIGLOBE, Ltd. 39 Cookbooks 登録済みクックブックが一覧表示 chefsv$ knife cookbook list apache2 1.6.2
  • 40. ©2013 NEC BIGLOBE, Ltd. 40 Nodes 管理 Node が一覧表示 chefsv$ knife node list node01
  • 41. ©2013 NEC BIGLOBE, Ltd. 41 レシピの適用 適用したいレシピを ドラッグ&ドロップして、 下部の「Save Node」 ボタンを押す chefsv$ knife node run_list add node01 'recipe[apache2]'
  • 42. ©2013 NEC BIGLOBE, Ltd. 42 適用レシピの確認 新たに Run List と Recipes に 登録したレシピ情報が反映 Chef Client を daemon 化していれば、 しばらくすればレシピが適用 していない場合は、knife ssh や Node 上で Chef Client を実行して適用 node01$ ps -fea | grep httpd root 7358 1 0 14:38 ? 00:00:00 /usr/sbin/httpd apache 7361 7358 0 14:38 ? 00:00:00 /usr/sbin/httpd apache 7362 7358 0 14:38 ? 00:00:00 /usr/sbin/httpd ...
  • 43. ©2013 NEC BIGLOBE, Ltd. 43 情報検索 Node 用 Queryに「platform:centos」と入力して、 「Search node」ボタンを押すと、 CentOS の Node 一覧が表示される chefsv$ knife search node platform:centos 1 items found Node Name: node01 Environment: _default FQDN: node IP: 10.0.2.15 Run List: recipe[apache2] Roles: Recipes: apache2 Platform: centos 6.4 Tags:
  • 44. ©2013 NEC BIGLOBE, Ltd. 44 まとめ • Chef は、 「インフラの構築・運用管理を自動化するため のフレームワーク」 • Chef11 はいろいろと便利に • Chef Server も簡単に試せます • WebUI もぜひ • 冪等(べきとう)性は大切です • 使いこなすには、Dev+Ops 力! 以上です