我正在重新学习 Chef(我在前世做了 2 年以上),为了帮助我在 CentOS 7 Vagrant 机器上安装 LAMP 应用程序。为了简单起见,我所有的食谱都在同一个 /path_to/cookbooks 目录中,也就是说,
/path_to/cookbooks/
------------------/my_mysql
------------------/my_php
------------------/my_apache
它们也在同一个 chef-repo.git 存储库中,再次保持简单。也就是说,当我克隆我的 chef-repo.git 存储库时,我得到了上面的目录结构。
my_php 食谱依赖于 my_apache 食谱,所以我有这个..
my_php:metadata.rb file
depends 'my_apache'
这样我就可以在 my_php:default.rb 配方中重新启动 httpd 服务,就像这样
file '/var/www/html/info.php' do
content "
<?php phpinfo();
"
mode '0644'
owner 'root'
group 'root'
notifies :restart, 'service[httpd]', :immediately
end
再次保持简单,我不想使用 Berkshelf。那么我该如何为 my_php 食谱做这项工作?可能吗?
$ chef exec rspec --color spec/unit/recipes/default_spec.rb
如果我必须使用 Berkshelf 执行此操作,我的 Berksfile 应该是什么样的?