0

我在 Chef 的食谱中使用自定义 LWRP。我已经执行了以下步骤来做到这一点:

  1. 使用包含必要属性和操作的 resource.rb 文件创建资源文件夹。
  2. 使用 provider.rb 文件创建一个 providers 文件夹,其中包含提到的每个操作的定义
  3. 更新了我的食谱以使用 LWRP。

我有一个: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操作。没有输出显示该操作没有被执行/执行。

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

4

0 回答 0