厨师无法获得httpd depend

时间:2015-12-18 02:03:33

标签: chef chef-recipe recipe

我正在使用OpsWorks学习厨师,目前我正在尝试创建一个将在一个实例中安装2个包的配方。我把我的食谱存放在github上......我有一个像这样的食谱 - webserver.rb

# Install apache and start the service
httpd_service 'site' do 
  mpm 'prefork'
  action [:create, :start]
end

# Add the site configuration
httpd_config 'site' do
  instance 'site'
  source 'site.conf.erb'
  notifies :restart, 'httpd_service[site]'
end

#create the document root directory
#directory '/var/www/public_html' do
#  recursive true
#end

#write the homepage
file '/var/www/index.html' do 
  content '<html>This is a web</html>'
  mode '0644'
  owner 'web_admin'
  group 'web_admin'
end

# Install apache , config and etc END

# Install the mod_php5 apache module
httpd_module 'php' do 
  instance 'site'
end

#install php5-mysql
package 'php-mysql' do 
  action :install
  notifies :restart, 'httpd_service[site]'
end

#write the homepage
file '/var/www/index2.php' do 
  content '<html><?php echo phpinfo(); ?></html>'
  mode '0644'
  owner 'web_admin'
  group 'web_admin'
end

我正在遵循AWS创建LAMP环境的教程。不幸的是,当我把它运行到我的实例时,opsworks_cookbook_demo :: default(它将运行一些包括webserver。)我得到错误precondition httpd cookbook not found,我已经添加到我的metadaba.rb取决于'httpd''〜&gt; ..',有人可以指导我这里做错了什么。因为我假设每当你放置'httpd'它将扩展我的食谱以使用该食谱。

这个案子我需要berkshelf吗? (目前我正在使用AWS OpsWorks并在github中使用我的食谱)

1 个答案:

答案 0 :(得分:3)

您必须提前下载所有依赖项以提供给OpsWorks。有关详细信息,请参阅https://docs.aws.amazon.com/opsworks/latest/userguide/best-practices-packaging-cookbooks-locally.html。较旧的Chef 11堆栈通过在目标上运行berks vendor来为您实现某种程度的自动化,但现在您需要在工作站上自行完成此操作。