Github: https://github.com/doitian/chef-solo-repo/
用 chef-repo 的话,即使运行了 knife configure,还是有路径指向了 /etc, /var 这些位置,测试 cookbooks 都得需要 root 权限,很不方便,所以我加了默认的配置,把路径会都调整到 repo 中的 .chef 文件夹。
另外,cookbooks 的测试最好是用 virtual machine,我添加了 Vagrantfile,直接用 vagrant 可以创建测试用的虚拟机。
最后,我不太喜欢 chef-server,所以我都是使用 capistrano,一条命令就可以把整个 repo 打包上传到服务器,安装依赖 (bundler) 并运行 chef-solo。所有服务器的配置都放在 repo 下的 servers 文件夹,做了些 cap 的 hacking,可以很方便地指定哪些服务器需要运行 chef-solo