在Chef中使用自定义LWRP时出错

时间:2016-11-25 13:05:52

标签: ruby chef chef-recipe cookbook lwrp

我在Chef的配方中使用自定义LWRP。我已执行以下步骤来执行此操作:

  1. 使用包含必要属性和操作的resource.rb文件创建资源文件夹。
  2. 使用provider.rb文件创建providers文件夹,该文件包含所提及的每个操作的定义
  3. 更新了我的配方以使用LWRP。
  4. 我有一个动作:normalize_customer_domain,其定义如下

    action :normalize_customer_domain do
        converge_by('Normalizing Customer Domain') do
            dns = AzureDns::DNS.new(@new_resource.prg, @new_resource.azure_rest_token, @new_resource.dns_attributes)
            node.set["normalize_customer_domain"] = dns.normalize_customer_domain(@new_resource.customer_domain)
        end
    
        @new_resource.updated_by_last_action(true)
    end
    

    我在配方中使用这个LWRP

    azuredns_dns 'DNS' do
      prg node['platform-resource-group']
      azure_rest_token node['azure_rest_token']
      dns_attributes service_attrs
      customer_domain node['customer_domain']
      action :normalize_customer_domain
    end
    

    其中azuredns是食谱名称,dns是自定义LWRP的名称。所有属性都在资源文件中定义为

    actions :normalize_customer_domain
    attribute :prg, :required => true
    attribute :azure_rest_token, :required => true
    attribute :dns_attributes, :required => true
    attribute :customer_domain, :required => false
    

    我遇到的问题是,当我的配方执行时,它不会执行LWRP中指定的操作。 provider.rb中指定的操作执行简单的puts操作。没有显示输出,表明未执行/执行操作。

    这个问题可能是什么原因?请提出我可以采取的必要步骤来解决此问题。

0 个答案:

没有答案