如何在依赖于另一本食谱的食谱上运行Chefspec?

时间:2017-09-05 01:03:14

标签: chef berkshelf chefspec

我正在重新学习厨师(我在以前的生活中做了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应该是什么样的?

1 个答案:

答案 0 :(得分:0)

好的,我现在回忆一下。使用Berksfile,我不得不这样做。 (它正在慢慢回来)

source 'https://supermarket.chef.io'

cookbook 'cf_apache', '~> 0.1.0', github: "my_user/chef-repo", rel: 'cookbooks/cf_apache'

我现在能够运行我的chefspec,但必须修复错误。