【问题标题】:Chef: why can't I subscribe to a directory :create action?厨师:为什么我不能订阅目录:创建操作?
【发布时间】:2013-09-18 13:30:07
【问题描述】:

我创建了以下配方块,它应该在创建 /etc/httpd/ssl 目录时运行:

ruby_block "Copy SSL certificates" do
  block do
    certificate_file = "#{node['magento']['apache']['project_ssl_location']}/#{node['magento']['apache']['ssl_certificate_filename']}"
    key_file = "#{node['magento']['apache']['project_ssl_location']}/#{node['magento']['apache']['ssl_certificate_key_filename']}"
    chain_file = "#{node['magento']['apache']['project_ssl_location']}/#{node['magento']['apache']['ssl_certificate_chain_filename']}"

    if File.exists?(certificate_file) && File.exists?(key_file)
      FileUtils.cp(certificate_file, "#{node['apache']['dir']}/ssl")
      FileUtils.cp(key_file, "#{node['apache']['dir']}/ssl")
    end

    if File.exists?(chain_file)
      FileUtils.cp(chain_file, "#{node['apache']['dir']}/ssl")
    end
  end
  action :nothing
  subscribes :create, resources(:directory => "/etc/httpd/ssl")
end

(这是直接模仿opscode example - 在“将文件存储在数据包中”下)

在 Chef 输出中,我可以看到我的食谱文件正在加载:

[2013-09-18T13:19:45+00:00] DEBUG: Loading Recipe chef-magento::copy_ssl_certificates via include_recipe

并且,向下,我可以看到正在创建的目录:

[2013-09-18T13:22:40+00:00] INFO: Processing directory[/etc/httpd/ssl] action create (apache2::default line 138)
[2013-09-18T13:22:40+00:00] INFO: directory[/etc/httpd/ssl] created directory /etc/httpd/ssl
[2013-09-18T13:22:40+00:00] INFO: directory[/etc/httpd/ssl] owner changed to 0
[2013-09-18T13:22:40+00:00] INFO: directory[/etc/httpd/ssl] group changed to 0
[2013-09-18T13:22:40+00:00] INFO: directory[/etc/httpd/ssl] mode changed to 755
[2013-09-18T13:22:40+00:00] INFO: Processing directory[/etc/httpd/conf.d] action create (apache2::default line 145)

但它绝不会运行我的代码。

我做错了什么?

【问题讨论】:

    标签: chef-infra vagrant provisioning chef-recipe chef-solo


    【解决方案1】:

    将动作:nothing改为:run..

    【讨论】:

      【解决方案2】:

      你试过subscribes :create, "directory[/etc/httpd/ssl]"吗?

      【讨论】:

      • 是的,我先尝试过。当它不起作用时,我切换到 resources() 语法,因为它看起来更明确。
      • 这应该是评论,而不是答案。
      猜你喜欢
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2015-01-25
      • 2015-05-02
      • 2019-01-17
      • 2014-03-17
      相关资源
      最近更新 更多