我在 Chef 的食谱中使用自定义 LWRP。我已经执行了以下步骤来做到这一点:
- 使用包含必要属性和操作的 resource.rb 文件创建资源文件夹。
- 使用 provider.rb 文件创建一个 providers 文件夹,其中包含提到的每个操作的定义
- 更新了我的食谱以使用 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
操作。没有输出显示该操作没有被执行/执行。
这个问题的原因可能是什么?请建议我可以采取的必要步骤来解决此问题。