社内勉強会 - chef
DESCRIPTION
社内勉強会用スライド Chefとは? Chefの時代たる所以 Chefの超ざっくり概要 ChefのレシピをCI ChefをCloud上でTRANSCRIPT
Chefでインフラ3分クッキング
※”3分”に意味はありません
• Configuration Management Framework
• 構成管理フレームワーク
• Infrastructure As Code
• 環境のコード化
• Idempotence
• 冪等性 [べきとうせい]
OS
WHAT IS ?
httpdconf
sshconf
perlCookbook(Recipe)
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
why?
時は来た!それだけだ
Chefの
Chefの時代
Chefの時代たる所以① ② ③
所以①:開発環境
•環境のセットアップ
•自宅でも同じ環境で
所以②:リーンスタートアップ
•小さく始める
•サービスを成長させる
•スケールアウト
所以③:継続的デリバリー
Test Automation
-> Continuout Integration
-> Continuous Delivery
HOW POPULAR IS ?
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
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
Chefの構成
USAGE
CI
CLOUD
CI
•ローカル端末でレシピをテスト
•使用するツール
• Vagrant(VirtualBox) - 仮想OS構築
• Serverspec - サーバ環境テスト
• foodcritics - レシピ規約チェック
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 (一部)
時は来た!それだけだ
デモの
CLOUD
• Amazon Web Service
•従量課金制
•使いたい時に使いたい分だけ立ち上げる
CHEF + AWS
参照元:http://takemikami.com/technote/archives/852
CHEF + AWS
参照元:http://takemikami.com/technote/archives/852
Amazon EC2
Amazon S3
Local
まとめ
•個人的に手探り状態
•主にVagrantの学習でした
•まずはServerspecの導入から?
•いでよ神龍!そしてWindowsを消し去り給え!
•途中でコケるとロールバックができないかも…
参考•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
TO BE CONTINUED...
• Chef
• serverspec / chef spec
• Third party cookbooks
• knife
•D3.js / SVG
• Groovy/Gradle/Spock Source Code Reading
時は来た!それだけだ
終わりの