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コマンドがないとのエラー表示