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
操作を実行します。アクションが実行/実行されていないことを示す出力は表示されません。
この問題の原因は何ですか? この問題を解決するために必要な手順を提案してください。