首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chef运行了错误的食谱

Chef运行了错误的食谱
EN

Stack Overflow用户
提问于 2017-12-08 02:51:11
回答 0查看 250关注 0票数 0

我正在尝试使用Chef在Wordpress多站点前设置Varnish。我对其他人建立的系统是个新手,总的来说,我还是个初学者。

我已经创建了一个新的配方,并将其添加到运行列表中,但是当我运行chef-client时,它会执行一个不同的配方,而不是我编写的那个。具体地说,它运行我的配方中包含的唯一配方。

这是我的食谱,我几乎逐字复制了一个预先存在的工作食谱,我们在不同的网站上使用它:

代码语言:javascript
复制
#
# Cookbook Name:: web_varnish_config
# Recipe:: wordpress
#

include_recipe 'web_varnish_config::default'

all_wordpress_backends = search(:node, "chef_environment:#{node.chef_environment} AND roles:web_wordpress")
all_wordpress_backends.sort_by!{ |n| n[:fqdn] } # Sort the nodes to prevent config-order thrashing.

# Error state
if all_wordpress_backends.empty?
  Chef::Log.warn("At least one node with recipes:web_wordpress must exist for chef_environment:#{node.chef_environment}. Skipping Varnish configuration.")
  return
end

template "/etc/varnish/default.vcl" do
  source "etc/varnish/wordpress.vcl.erb"
  mode "0644"
  variables(
    :all_wordpress_backends => all_wordpress_backends
  )
  notifies :restart, "service[varnish]", :delayed
end

# Use a share secret for our Varnish instances that is available to our Webservers
# so that Wordpress can clear the Varnish cache.
include_recipe 'chef-vault'
settings = chef_vault_item_for_environment("web_wordpress", "varnish")
if !settings.nil? and settings.key?('secret')
  file "/etc/varnish/secret" do
    content settings['secret']
    mode "0600"
    notifies :restart, "service[varnish]", :delayed
  end
end

当我运行chef-client时,它运行的是web_varnish_config::default而不是web_varnish_config::wordpress。这是我的chef-client输出的样子(我试图复制所有的输出,但无法复制,所以这里是开头和结尾,我认为最相关的部分):

代码语言:javascript
复制
Starting Chef Client, version 13.6.4
resolving cookbooks for run list: ["yum-epel::default", "serversetup-midd::cent7", "serversetup-midd::rootpassword", "midd_yum_cron::default", "fw-midd::default", "chef-client::config", "chef-client::default", "chef_client_updater::default", "centrify-midd::default", "centrify-midd::sshd", "midd_spacewalk::client", "commvault-midd::default", "serversetup-midd::webserver", "fw-midd::webserver", "centrify-midd::webserver", "chef-vault::default", "ssl-config-midd::miis", "ssl-config-midd::midd", "php-midd::default", "ssl-config-midd::wordpress", "web_php_config", "web_apache_config", "web_apache_config::ssl_context", "web_wordpress", "cookbook_versions::all", "ssl-config-midd::davisfellowsforpeace", "ssl-config-midd::davisprojectsforpeace", "ssl-config-midd::davisuwcscholars", "varnish-midd::default", "fw-midd::varnishserver", "web_varnish_config::backend", "web_varnish_config::wordpress"]
Synchronizing Cookbooks:
  - smbfs (0.5.0)
  - compat_resource (12.19.0)
  - web_php_config (1.1.0)
  - ohai (5.1.0)
  - midd_spacewalk (0.4.3)
  - windows (3.0.5)
  - yum (5.0.1)
  - firewalld (1.1.5)
  - cookbook_versions (1.0.0)
  - serversetup-midd (2.6.10)
  - commvault-midd (2.3.1)
  - cron (4.1.3)
  - php-midd (2.0.6)
  - ssl-config-midd (2.2.1)
  - chef-vault (3.0.0)
  - logrotate (2.2.0)
  - selinux (2.0.3)
  - ssh_authorized_keys (0.4.0)
  - chef_client_updater (2.0.3)
  - web_wordpress (2.0.10)
  - varnish-midd (2.0.3)
  - chef-client (8.1.6)
  - users (5.1.0)
  - yum-epel (2.1.2)
  - web_apache_config (2.0.10)
  - web_varnish_config (2.3.2)
  - sshd (1.3.1)
  - fw-midd (3.2.5)
  - midd_yum_cron (1.0.0)
  - web_sshkeys (1.0.2)
  - web_git_tracking_branch (1.1.0)
  - centrify-midd (3.1.1)

最后:

代码语言:javascript
复制
Recipe: web_varnish_config::backend
   * cookbook_file[/var/www/html/check.html] action create (up to date)
   * web_apache_config_vhost[vhost-7-wwwhealthcheck.conf] action create
   * template[/etc/httpd/conf.d/vhost-7-wwwhealthcheck.conf] action create (up to date)
 (up to date)
 # NOTE: Below is where I'm expecting web_varnish_config:wordpress
 Recipe: web_varnish_config::default
   * service[varnish] action enable (up to date)
   * template[/etc/varnish/varnish.params] action create (up to date)
   * service[varnishncsa] action enable (up to date)
   * service[varnishncsa] action start (up to date)
   * cookbook_file[/etc/systemd/system/varnishncsa.service] action create (up to date)

如果我去掉include行,chef-client将完全跳过这一行,没有错误。

有什么想法吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47701855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档