今回の作業
・Chef Development Kit(chef-DK)のインストール
・knife-soloインストール
・knife設定ファイルの作成
・chefリポジトリ作成
・Node設定
・vagrant起動、ssh接続
・nodeをchef対応にする
・cookbookを作成する
実際のインストール方法
chef-DKをインストール
下記より、自分のOSに合ったchef-DKをダウンロードし、アプリのインストールを行うようにインストールする。
https://downloads.chef.io/chef-dk/
インストールされたか確認
$ chef -v Chef Development Kit Version: 0.6.2 chef-client version: 12.3.0 berks version: 3.2.4 kitchen version: 1.4.0
knife-soloをインストール
$ sudo chef gem install knife-solo
knife設定ファイルの作成
$ knife configure ・・・ /Users/user_name/.chef/knife.rb
Node設定
#作業用ディレクトリの作成 mkdir -p chef/vagrant cd chef/vagrant #vagrantの設定ファイル作成 vagrant init centos #Vagrantfileの修正 vi Vagrantfile # config.vm.network "private_network", ip: "192.168.33.10" config.vm.network "private_network", ip: "192.168.33.10"
box(OSイメージ)を取得
vagrant box add centos https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box
実際に使ってみる
chefリポジトリ(Cookbook)作成
#リポジトリの作成 knife solo init chef-repo cd chef-repo ls Berksfile data_bags nodes site-cookbooks cookbooks environments roles
site-cookbooks:自分で作ったCookbookを配置
cookbooks:ダウンロードして来たCookbookを配置
nodeをchef対応にする
knife solo prepare myhost
cookbookを作成する
#hello worldを表示するcookbookを作成 knife cookbook create hello -o site-cookbooks ** Creating cookbook hello in /Users/user/work/chef/chef-repo/site-cookbooks ** Creating README for cookbook: hello ** Creating CHANGELOG for cookbook: hello ** Creating metadata for cookbook: hello
いろいろ作ってくれる。
次に生成されたデフォルトレシピ(実際のサーバー設定の雛形)を編集する
resipeを作成する
vim site-cookbooks/hello/recipes/defalt.rb #下記を追記 log "Hello world!!"
nodeにレシピを適用する設定
vim nodes/myhost.json { "run_list": [ "recipe[hello]" ], "automatic": { "ipaddress": "myhost" } }
指定nodeにおいて実行するレシピを登録するため、
run_listへrecipe[hello]を追記。
nodeにレシピを適用する
knife solo cook myhost ・・・ Compiling Cookbooks... Converging 1 resources Recipe: hello::default * log[Hello world!!] action write ・・・
packageでvimを導入
site-cookbooks/hello/recipes/default.rb
#下記を追記 package "vim" do action :install end
設定を反映
knife solo cook myhost
参考URL
chef-DK触ってみた - わすれっぽいきみえ