因此,我试图通过声明变量1等于变量2中的任何值来在Chef中标记服务器,以使用此行代码标记服务器-
配方default.rb中的变量和代码-
node_gateway = node['network']['default_gateway']
dmz_gateways = node['tagging_test']['dmz_default_gateways']
tag('dmz') if node_gateway == dmz_gateways.any?
default.rb中的属性-
default['tagging_test']['dmz_default_gateways'] = %w(192.168.0.1 192.168.1.1 192.168.2.1)
但是这不会产生任何错误,但也不会执行任何操作。
我已经确认我可以通过简单地标记服务器-
tag('dmz')
我想我可能会使用.any?设置不正确。也许我的属性值也设置错误?
非常感谢任何回答。
除了if条件,其他一切看起来都不错。
[dmz_gateways.any?
返回true,您正在将其与返回false的node_gateway == true
比较
您可以纠正类似的内容:
node_gateway = node['network']['default_gateway']
dmz_gateways = node['tagging_test']['dmz_default_gateways']
tag('dmz') if dmz_gateways.include?(node_gateway)