社内勉強会 - chef

37
Chefでインフラ 3分クッキング

Upload: nemoto-yusuke

Post on 22-Jun-2015

586 views

Category:

Technology


3 download

DESCRIPTION

社内勉強会用スライド Chefとは? Chefの時代たる所以 Chefの超ざっくり概要 ChefのレシピをCI ChefをCloud上で

TRANSCRIPT

Page 1: 社内勉強会 - chef

Chefでインフラ3分クッキング

Page 2: 社内勉強会 - chef

※”3分”に意味はありません

Page 3: 社内勉強会 - chef

• Configuration Management Framework

• 構成管理フレームワーク

• Infrastructure As Code

• 環境のコード化

• Idempotence

• 冪等性 [べきとうせい]

OS

WHAT IS ?

httpdconf

sshconf

perlCookbook(Recipe)

Page 4: 社内勉強会 - chef

CONFIGURATION MANAGEMENT TOOL

Language License First Release

Chef Ruby Apache 2009/01/15

Puppet RubyApache (2.7.0~)

GPL(before) 2005/08/30

CFEngine C GPL, COSL 1993

Ansible Python GPL 2012/02/20

=> http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software

Page 5: 社内勉強会 - chef

why?

Page 6: 社内勉強会 - chef

時は来た!それだけだ

Chefの

Page 7: 社内勉強会 - chef

Chefの時代

Page 8: 社内勉強会 - chef

Chefの時代たる所以① ② ③

Page 9: 社内勉強会 - chef

所以①:開発環境

•環境のセットアップ

•自宅でも同じ環境で

Page 10: 社内勉強会 - chef

所以②:リーンスタートアップ

•小さく始める

•サービスを成長させる

•スケールアウト

Page 11: 社内勉強会 - chef

所以③:継続的デリバリー

Test Automation

-> Continuout Integration

-> Continuous Delivery

Page 12: 社内勉強会 - chef

HOW POPULAR IS ?

Page 13: 社内勉強会 - chef

Chefの基礎

Page 14: 社内勉強会 - chef

CHEF BASE

• Variety of Chef

• Hosted Chef

• Private Chef

• Open Source Chef

• Chef Server - Client / Server 

• Chef Zero - Chef Serverの軽量版

• Chef solo - スタンドアロン

• Chef apply - 1レシピを適用

• Elements of Cookbook

Page 15: 社内勉強会 - chef

RECIPE BASE

package “nginx” do action :installend

service "nginx" do action [ :enable, :start ]end

template "nginx.conf" do path "/etc/nginx/nginx.conf" source "nginx.conf.erb" owner "root" group "root" mode 0644end

実行先のOSに応じたインストールコマンドを実行する

インストールされたツールの実行状態を指定

Cookbook内のtemplateディレクトリに格納されたファイルを実行先に配置

default.rb

Page 16: 社内勉強会 - chef

Chefの構成

Page 17: 社内勉強会 - chef
Page 18: 社内勉強会 - chef

USAGE

CI

CLOUD

Page 19: 社内勉強会 - chef

CI

•ローカル端末でレシピをテスト

•使用するツール

• Vagrant(VirtualBox) - 仮想OS構築

• Serverspec - サーバ環境テスト

• foodcritics - レシピ規約チェック

Page 20: 社内勉強会 - chef
Page 21: 社内勉強会 - chef
Page 22: 社内勉強会 - chef

config.vm.box = "base" config.vm.box_url = "http://developer.nrel.gov/~~" config.vm.network :private_network, ip: "192.168.50.12" config.vm.provision :chef_solo do |chef| chef.add_recipe("apache2") chef.add_recipe("java") end

Vagrantfile (一部)

Page 23: 社内勉強会 - chef
Page 24: 社内勉強会 - chef
Page 25: 社内勉強会 - chef
Page 26: 社内勉強会 - chef
Page 27: 社内勉強会 - chef

時は来た!それだけだ

デモの

Page 28: 社内勉強会 - chef

CLOUD

• Amazon Web Service 

•従量課金制

•使いたい時に使いたい分だけ立ち上げる

Page 29: 社内勉強会 - chef

CHEF + AWS

参照元:http://takemikami.com/technote/archives/852

Page 30: 社内勉強会 - chef

CHEF + AWS

参照元:http://takemikami.com/technote/archives/852

Amazon EC2 

Amazon S3 

Local 

Page 31: 社内勉強会 - chef
Page 32: 社内勉強会 - chef
Page 33: 社内勉強会 - chef
Page 34: 社内勉強会 - chef

まとめ

•個人的に手探り状態

•主にVagrantの学習でした

•まずはServerspecの導入から?

•いでよ神龍!そしてWindowsを消し去り給え!

•途中でコケるとロールバックができないかも…

Page 35: 社内勉強会 - chef

参考•WHAT IS CHEF - SlideShare• http://www.slideshare.net/YukihikoSawanobori/what-is-chef201303

• Puppet & Chef• https://speakerdeck.com/tnmt/puppet-and-chef

• AWS(EC2&S3)上でのchef-soloを使ったサーバの自動構築• http://takemikami.com/technote/archives/852

•開発エンジニアがChefでテスト駆動サーバ設定してみた• http://www.slideshare.net/biglobedojo/chef-22981148

Page 36: 社内勉強会 - chef

TO BE CONTINUED...

• Chef

• serverspec / chef spec

• Third party cookbooks

• knife

•D3.js / SVG

• Groovy/Gradle/Spock Source Code Reading

Page 37: 社内勉強会 - chef

時は来た!それだけだ

終わりの