入門chef

chef memo

環境構築といえば、chefだという噂を随分と聞くようになってきましたが、 なんだかんだと使ってなかったのでメモ。 とはいえ、レシピは誰かが書いてるので、 今回は出来る限りレシピを使う方法で構築を目指す。

前準備

# Gemfileに記載
source 'https://rubygems。org'  # URLの指定。呪文だと思って毎回書く

gem 'berkshelf'
gem 'chef'
gem 'knife-solo'

必要なgemをいつものように。

bundle install

chef-soloを使えるように初期設定を行う。

bundle exec knife configure

そろそろchef

ひな形の生成。

$ bundle exec knife solo init chef-repo
$ tree chef-repo/
chef-repo/
├── cookbooks
├── data_bags
├── nodes
├── roles
├── site-cookbooks
└── solo。rb

忘れないうちにコミット。

cd chef-repo
git init
git add 。
git commit -m 'first commit'

公式なり、Githubにて公開されているレシピを利用しやすくるものとして Berksfile があります。

site :opscode # Berksfile

cookbook "apt"
cookbook "git"
cookbook "zsh"
cookbook 'vim'
cookbook 'the_silver_searcher'

公開されているレシピの情報を記述しておけば、コマンド1つで落としてこれます。 便利。

bundle exec berks install --permalink cookbooks

vagrant側でchefが使えるように以下のコマンドを実行。

bundle exec knife solo prepare nodename

インストールしたいレシピを追加 node/nodename.json。

{
  "run_list": [
    "recipe[apt]",
    "recipe[git]",
    "recipe[zsh]",
    "recipe[vim]",
    "recipe[the_silver_searcher]"
  ]
}

レシピはできたのでcookしましょう。

bundle exec knife solo cook nodename

参考