getting started Chef

Chefはインフラをコードで記述する技術で、workstationからchef serverにcookbookを送って、nodeの管理を行います。
Chef

workstationにchefのインストール

gem install chef
gem install knife-solo

knife-configureで設定していきます。

knife configure

1. Chefのリポジトリ(cookbook)を作成…workstation
2. Nodeをchefに対応する
3. cookbookを作る
4. cookbookをnodeに反映

リポジトリ作成

> knife solo init chef-repo
> cd chef-repo

nodeをchef対応にする

> knife solo prepare 192.168.33.10 --ssh-user vagrant
Bootstrapping Chef...
vagrant@192.168.33.10's password:
Thank you for installing Chef!
Generating node config 'nodes/192.168.33.10.json'...

workstationよりcookbookの作成

\chef-repo> knife cookbook create hello -o site-cookbooks

chef-repo > site-cookbooks > hello > recipes > default.rb

#
# Cookbook Name:: hello
# Recipe:: default
#
# Copyright 2016, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log "hello world"

chef-repo > nodes > 192.168.33.10.json

{
  "run_list": [
  	"recipe[hello]"
  ],
  "automatic": {
    "ipaddress": "192.168.33.10"
  }
}
\chef\chef-repo> knife solo cook 192.168.33.10 --ssh-user vagrant
ERROR: RuntimeError: Failed to launch command ["rsync", "-rL", "--chmod=ugo=rwX", "--rsh=ssh vag
--exclude=revision-deploys", "--exclude=.git", "--exclude=.hg", "--exclude=.svn", "--exclude=.bz
/gems/knife-solo-0.6.0/lib/knife-solo/resources/patch_cookbooks/", ":~/chef-solo/cookbooks-1"]

rsyncコマンドがないとのエラー表示