VMでChefを実行してみる
前回、前々回で、MacOS上にゲストOSが起動しChefを実行できる環境が整いました。
引き続きchef-soloとknife-soloで手軽に環境構築をする - Bouldering & Com.を参照。
いざ、レシピ作りへ。
knifeで雛形が作れるということで利用。
- レシピを作る
$ knife cookbook create base -o cookbooks
cookbooksというディレクトリの中にbaseというディレクトリが作られ、さらにその中にテンプレっぽいディレクトリ群ができた。
$ emacs cookbooks/base/recipes/default.rb # # Cookbook Name:: lesson # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # log "message" do message "This is the message that will be added to the log." level :info end directory "/tmp/tmpdir" do mode "0755" action :create end
- 実行対象として設定
$ emacs nodes/192.168.33.10.json {"run_list":[ "recipe[base]" ]}
- chef実行
cd cookbooks/ knife solo cook -i ~/.vagrant.d/insecure_private_key vagrant@192.168.33.10 Converging 0 resources Chef Client finished, 0 resources updated
とか言われてうまくいかない。
WARNING: Local cookbook_path '/var/chef/cookbooks' does not exist
とか出てるからどっかにパスを設定する必要がありそうだ。
- Vagrantfileを編集
今度はVagrantとChef-soloの基本 かなり分かってないこと多いです · GitHubを参考に。
$ emacs Vagrantfile config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "/path/to/chef/cookbooks" chef.add_recipe "base" end
に書き換え。
$ vagrant reload
エラーらしきものが出てない。いけたのか。
- ゲストOSで確認
$ ll /tmp/ drwxr-xr-x 2 root root 4096 Aug 12 09:15 tmpdir
いたいた。何か時計あってないけど。
煮え切らないけど一連の流れは一応いけた。