Top Banner
Chef Study Meeting in NNCT 2015/06/29 Created by / Kazutaka Matsumoto @udon_papapa
46

Chef

Aug 14, 2015

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chef

Chef Study Meeting inNNCT2015/06/29

Created by / Kazutaka Matsumoto @udon_papapa

Page 2: Chef

OutlineWhat's Chef

Tutorial Chef

Beginner Chef Antipatterns

Chef Environment Cookbook Pattern

Page 3: Chef

What's Chef

Page 4: Chef

Chef 1/2

,

Page 5: Chef

Chef 2/2

Cookbook

Chef Cookbook

Comunity Cookbook

supermarket Github Cookbook

node

node

LWRP(lightweight resource and provider)

.

Page 6: Chef

ChefChef Server Chef Solo 2

Chef Server Chef Client

2014 localmode

Chef Solo

localmode

Chef Solo Chef Server localmode

Page 7: Chef

KnifeChef ssh

Knife Chef

Knife-Solo Knife-Zero

Knife Solo Knife Zero

Page 8: Chef

BerksChef cookbook

Gem Chef

Berks

Jamie Winsor

Page 9: Chef

....Chef Solo

Page 10: Chef

Tutorial Chef

Page 11: Chef

Click

Page 12: Chef

Chef ?

Page 13: Chef

Chef ?

Page 14: Chef
Page 15: Chef
Page 16: Chef

Chef Tutorial

Page 17: Chef
Page 18: Chef
Page 19: Chef
Page 20: Chef

1. Vagrant

2. Chef

3. Knife Solo

4.

Page 21: Chef

VagrantShell

$ mkdir temp && cd temp$ vagrant init$ vim Vagrantfile$ vagrant up $ vagrant ssh-config >> ~/.ssh/config # 接続先defaultと名称でconfigファイルが作成される$ ssh default # これで起動できた?

VagrantfileVagrant.configure(2) do |config| config.vm.box = "Debian_7.8.0" # 環境に合わせてください config.vm.box_url = "https://github.com/kraksoft/vagrant-box-debian/releases/download/7.8.0/debian-7.8.0-amd64.box

Page 22: Chef

ChefShell

$ knife configure # 初期設定 基本エンター連打$ knife solo init . # Chef Repositoryの作成$ knife solo prepare default # defaultにChefをインストールする

--- lessというディレクトリでCookbookのテンプレート作成$ knife cookbook create vim -o site-cookbooks

--- 基本は,Recipesの中のdefault.rbを編集します$ vim site-cookbooks/vim/recipes/default.rb

vim/default.rbpackage 'vim' do action :installend

Page 23: Chef

Shell--- サーバに適用するChefを編集します$ vim nodes/default.json$ knife solo cook default # defaultにRecipeを適用する

--- 確認してみよう$ ssh default# vim

nodes/default.json"run_list": [ "recipe[vim]"]

Page 24: Chef

:Chef Repository├── Berksfile # いわずもがな├── cookbooks # Community Cookbookを入れる├── data_bags # 暗号化したいファイル等はここで扱う├── environments # サーバに適用する設定等を記述├── nodes # サーバ毎に適用するrecipeやrolesがかかれている├── roles # recipeを一括で実行できる.被推奨└── site-cookbooks # 自作Cookbookを入れる

Page 25: Chef

:Chef Cookbook├── CHANGELOG.md├── README.md├── attributes # Cookbookのデフォルト値を設定する├── definitions # Recipeとほぼ同じ(但し変数を扱える├── files # 静的ファイルを扱う│ └── default├── libraries # LWRPを扱う?├── metadata.rb├── providers # LWRPを扱う?├── recipes # レシピを書く│ └── default.rb├── resources # 条件式やアクションを書く└── templates # templateファイルを扱う └── default

Page 26: Chef

Chef !

Page 27: Chef

Beginner ChefAntipatterns

Page 28: Chef

Chef

Chef

Page 29: Chef
Page 30: Chef

Chef 1 Git

Community Cookbook

NIH ( )

Chef

Page 31: Chef

Chef 1Git

cookbooks

Git :

Git

Git

Page 32: Chef

Chef 1Git

Cookbook Repository Berks

Page 33: Chef

Community Cookbook

(

)

Page 34: Chef

Community Cookbook

Attirbute

Page 35: Chef

NIH(Not Invented Here) ()

...

Cookbook

Page 36: Chef

NIH(Not Invented Here) ()

Page 37: Chef
Page 38: Chef

Chef EnvironmentCookbook Pattern

Page 39: Chef

Chef Cookbook Chef Environment

Cookbook Pattern

Page 40: Chef

Chef Environement Cookbook PatternCookbook

1. Library Cookbook

2. Application Cookbook

3. Wrapper Cookbook

4. Base Cookbook

5. Environment Cookbook

Page 41: Chef

Library Cookbookcookbook

cookbook

Recipe

LWRP( package)

:

github-cookbook

github API LWRP Cookbook

Page 42: Chef

Application Cookbookcookbook

vim git

install Cookbook

1 1Cookbook

attribute

Page 43: Chef

Wrapper CookbookApplication cookbook wrap

cookbook

Application cookbook

cookbook { }-{wrap cookbook}

{ }-{wrap cookbook}

Community Cookbook

Page 44: Chef

Base cookbookcookbook

bash zsh

cookbook { }-base

Page 45: Chef

Environment cookbookcookbook

Cookbook

1 1cookbook

Cookbook Berks Cookbookk

import

Page 46: Chef

The Environment Cookbook Pattern Cookbook