我有几个rubys文件,我试图减少重复代码。下面是一个更大文件片段,包含大量重复代码。是否可以将not_if { ::File.exist?('C:/programdata/habitat/chef-base/files/missing_GPO_entries_from_patching.flg') }
添加到if node['platform_version'] =~ /10.0.14393/
部分,这样我就不必在每一个注册表更改下单独列出它?沿着if node = this and flg file not found, then
行
# If OS is 2016
if node['platform_version'] =~ /10.0.14393/
registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection' do
values [
{ name: 'AllowTelemetry', type: :dword, data: 0x00000000 },
]
action :create_if_missing
not_if { ::File.exist?('C:/programdata/habitat/chef-base/files/missing_GPO_entries_from_patching.flg') }
end
end
字符串
2条答案
按热度按时间6ojccjat1#
你是说像这样吗
字符串
lg40wkob2#
在同一个资源块中可以同时使用
not_if
和only_if
条件。资源将根据这两个条件进行更新。举例来说:
字符串
由于你有更多的代码需要有条件地运行,一个选择是将它们移动到一个单独的配方中(最简单的),并有条件地调用该配方。例如,你可以创建一个
registry.rb
,并从default.rb
调用它:型