0

我正在重新学习 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 应该是什么样的?

4

1 回答 1

0

好的,我现在想起来了。使用 Berksfile,我必须这样做。(慢慢回来了)

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

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

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

于 2017-09-05T01:37:56.367 回答