SlideShare a Scribd company logo
1 of 27
Download to read offline
chef-solo
入門の入門
2013-12-09 (月) @アクトインディ株式会社
安宅 正之
目次
1.
2.
3.
4.

入門書紹介
chef-solo first step
用語解説
chef-solo の始め方

5. レシピの書き方
とりあえず入門書
伊藤直也さんの書いた「入門 Chef Solo」
2013/3/11 発売
変更点 -- 出版時との違い
意外とハマる
● chef-solo 11.4.0 → 11.8.0
● ruby 1.9 → 2.0 (released 2013/02/24)
● gem install vagrant → package 化 (1.1+)
● vagrant gem install sahara
→ vagrant plugin install sahara
ruby 2.0 で gem install chef-solo がエラーになっ
てインストール出来ない時期があったので混乱し
ました
chef-solo first step
chef-solo インストール
$ cat Gemfile
source 'https://rubygems.org'
gem 'chef'
$ bundle install --path vendor/bundle
chef-solo 実行
実行は sudo 権限で行う

$ sudo bundle exec chef-solo -j node.json

That’s all...
用語解説
専門用語多すぎ。訳が分からないよ!
●
●
●
●
●
●

chef, chef-solo, Chef Server
knife, knife-solo
node, role
repository, cookbook, recipe
attribute, data bug
Berkshelf
専門用語多すぎ。訳が分からないよ!
●
●
●
●
●
●

chef, chef-solo, Chef Server
knife, knife-solo
node, role
repository, cookbook, recipe
attribute, data bug
Berkshelf

chef-solo だけなら青字を理解すれば OK
Chef World

[サーバー]
node
role

[コマンド]
chef-solo
knife

[設定ファイル]
node.json
cookbook
recipe
サーバーの用語
● node: server (or PC/仮想環境) に対応
○
○
○
○
○

albeniz server
bach server
chopin server
dvorak server
…

● role: server の役割に対応
○
○
○
○
○

web server
git server
Redmine server
本番サーバー、ステージング・サーバー
...
設定ファイルの用語
● server.json: サーバーごとの設定ファイル
○ 今回は node.json という名前を使います
○ recipe を指定する

● recipe: メイン・スクリプト in cookbook
● cookbook: chef における最小単位
○ recipe や template を収納

● cookbooks: cookbook を入れるディレクトリ
○ cookbooks: 既存の cookbook を入れる
○ site-cookbooks: 自作の cookbook を入れる
○ という区切りの筈だけど、デフォルトは
/var/chef/cookbooks/ になっている
cookbook の中身
●
●
●
●
●
●
●
●
●
●
●

CHANGELOG.md
README.md
attributes/
definitions/
files/
libraries/
metadata.rb
providers/
recipes/
resources/
templates/
cookbook の中身
●
●
●
●

attributes: 変数
files: 変数を使わないファイル
recipes/default.rb: メインの処理を書く
templates: attribute を使えるファイル
○ templates/default/filename.erb
コマンドの用語
● knife: cookbook の作成
● chef-solo: node.json or recipe の実行
chef-solo の始め方
chef-solo 初期設定
$ sudo apt-get install ruby-dev
# For gem json
$ mkdir /etc/chef
# Permission は適当につけてね
$ mkdir /var/chef
$ cd /etc/chef
$ cat Gemfile
source ’https://rubygems.org’
gem ’chef’
$ bundle install --path vendor/bundle # chef インストール
$ bundle exec knife configure
$ touch solo.rb
cookbook を実行してみよう
$ bundle exec knife cookbook create hello
# cookbook 作成
$ vi /var/chef/cookbooks/hello/recipes/default.rb
# recipe の編集
$ cat /var/chef/cookbooks/hello/recipes/default.rb
log ’Hello, Chef!’
$ sudo bundle exec chef-solo -o hello
…
# recipe を指定
Recipe: hello::default
* log[Hello, Chef!] action write
node.json を使ってみる
$ cat node.json
{
”run_list” : [
”recipe[hello]”
]
}
$ sudo bundle exec chef-solo -j node.json
# 複数の recipe を扱うにはこっちの方が便利
レシピの書き方
Package
プラットフォームに合わせてパッケージシステムを
選択・実行
● Redhat … yum
● Debian … apt
package ”zsh” do
action :install
end
Git
Git repository から取得
● :checkout … 取得
● :sync … 更新

git ”/usr/local/src/fcopy” do
repository ”git://github.com/ataka/fcopy.git”
reference ”master”
action :checkout
user ”ataka”
end
Bash -- Shell Script の実行
● creates … スクリプト再実行をガードするファイ
ルを指定する
● not_if, only_if … より詳細な設定向け
bash ”install tc” do
user ’ataka’
cwd ’/usr/local/src/tc’
code <<-EOC
./configure && make && make install
EOC
creates ”/usr/local/share/emacs/site-lisp/tc”
end
Directory
ディレクトリ操作
chef はディレクトリを自動作成してくれない
● :create … 作成
● :delete … 削除
directory ’/usr/local/src’ do
owner ’ataka’
group ’staff’
mode ’0775’
action :create
end
Template
設定ファイルなどはコレ使え!
filename.erb を templates/default 以下に置く
template ”/etc/nginx/nginx.conf” do
source ”nginx.conf.erb” # 省略可
owner ”root”
group ”root”
mode 0644
end
終わりに
● attribute については機会があったら
● Opscode の chef は使ったことがないので分か
りません
● knife-solo はまだ使ったことないので分かりま
せん
● vagrant で sahara を使うと幸せになれる
● rbenv 使ったら sudo でハマった
○ システムインストール
○ PATH 環境変数の引き渡し
○ いろいろやり方はあるけど、ベストプラクティスではない
気がする

More Related Content

What's hot

Itcamp長崎2012 capistrano
Itcamp長崎2012 capistranoItcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
kumachang_LL
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
Naoya Inada
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
hiboma
 

What's hot (20)

Itcamp長崎2012 capistrano
Itcamp長崎2012 capistranoItcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
 
Openstack chef-repo
Openstack chef-repoOpenstack chef-repo
Openstack chef-repo
 
Chef study
Chef studyChef study
Chef study
 
Chefで作る開発環境
Chefで作る開発環境Chefで作る開発環境
Chefで作る開発環境
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
 
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
 
Rails
RailsRails
Rails
 
CakePHP2.0 performance, upgrade shell
CakePHP2.0 performance, upgrade shellCakePHP2.0 performance, upgrade shell
CakePHP2.0 performance, upgrade shell
 
サーバ側Swift
サーバ側Swiftサーバ側Swift
サーバ側Swift
 
Go+revel
Go+revelGo+revel
Go+revel
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
NDS#31
NDS#31NDS#31
NDS#31
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
 
SoftlayerのCLIで遊ぼうとしたら
SoftlayerのCLIで遊ぼうとしたらSoftlayerのCLIで遊ぼうとしたら
SoftlayerのCLIで遊ぼうとしたら
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 

Viewers also liked

Self-Injurious Behavior
Self-Injurious BehaviorSelf-Injurious Behavior
Self-Injurious Behavior
faulkss
 
A presentation to show different types of camera
A presentation to show different types of cameraA presentation to show different types of camera
A presentation to show different types of camera
HollySheldon
 
Magazine research, magazines similar to mine
Magazine research, magazines similar to mineMagazine research, magazines similar to mine
Magazine research, magazines similar to mine
HollySheldon
 

Viewers also liked (20)

La noción del medio
La noción del medioLa noción del medio
La noción del medio
 
Gebeurtenis
GebeurtenisGebeurtenis
Gebeurtenis
 
13207857 pps7
13207857 pps713207857 pps7
13207857 pps7
 
ReactiveCocoa vs NSMutableArray
ReactiveCocoa vs NSMutableArrayReactiveCocoa vs NSMutableArray
ReactiveCocoa vs NSMutableArray
 
Commit Log in English
Commit Log in EnglishCommit Log in English
Commit Log in English
 
Spring Symposium
Spring Symposium Spring Symposium
Spring Symposium
 
Self-Injurious Behavior
Self-Injurious BehaviorSelf-Injurious Behavior
Self-Injurious Behavior
 
Toys ar alive
Toys ar aliveToys ar alive
Toys ar alive
 
Litercay For Everyone March 20, 2014 Providence Public Schools Workshop
Litercay For Everyone March 20, 2014 Providence Public Schools WorkshopLitercay For Everyone March 20, 2014 Providence Public Schools Workshop
Litercay For Everyone March 20, 2014 Providence Public Schools Workshop
 
Planeaciones
Planeaciones Planeaciones
Planeaciones
 
El conflicto sobre la educación
El conflicto sobre la educaciónEl conflicto sobre la educación
El conflicto sobre la educación
 
A presentation to show different types of camera
A presentation to show different types of cameraA presentation to show different types of camera
A presentation to show different types of camera
 
Magazine research, magazines similar to mine
Magazine research, magazines similar to mineMagazine research, magazines similar to mine
Magazine research, magazines similar to mine
 
Disability
DisabilityDisability
Disability
 
3er reporte
3er reporte3er reporte
3er reporte
 
Portafolio digital
Portafolio digitalPortafolio digital
Portafolio digital
 
Reporte de practica. isa
Reporte de practica. isaReporte de practica. isa
Reporte de practica. isa
 
Textile Companies(EID Intern, GE Power & Water (RGM) Industrial System )
Textile Companies(EID Intern, GE Power & Water (RGM) Industrial System )Textile Companies(EID Intern, GE Power & Water (RGM) Industrial System )
Textile Companies(EID Intern, GE Power & Water (RGM) Industrial System )
 
Mapas mentales
Mapas mentalesMapas mentales
Mapas mentales
 
Estrategias de enseñanza
Estrategias de enseñanzaEstrategias de enseñanza
Estrategias de enseñanza
 

Similar to Chef solo 入門の入門

3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
 
Coffee script初めの一歩
Coffee script初めの一歩Coffee script初めの一歩
Coffee script初めの一歩
Misa Kondo
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
 
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
Kimiyuki Yamauchi
 

Similar to Chef solo 入門の入門 (20)

Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChef
 
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみて
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
 
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
 
DevOps 研修 中級編#01
DevOps 研修 中級編#01DevOps 研修 中級編#01
DevOps 研修 中級編#01
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 
Coffee script初めの一歩
Coffee script初めの一歩Coffee script初めの一歩
Coffee script初めの一歩
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
 
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
Sinatra and heroku for mac
Sinatra and heroku for macSinatra and heroku for mac
Sinatra and heroku for mac
 

Recently uploaded

Recently uploaded (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Chef solo 入門の入門