0

所以我试图在 Chef 中标记服务器,如果 variable1 等于 variable2 中的任何值,则使用这行代码标记服务器 -

配方 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?设置不正确。也许我的属性值也设置错误?

非常感谢任何答案。

4

1 回答 1

1

一切看起来都不错,除了 if 条件。

dmz_gateways.any?return true 并且您正在将其与node_gateway == true哪个 return false进行比较

你可以纠正这样的事情:

node_gateway = node['network']['default_gateway']
dmz_gateways = node['tagging_test']['dmz_default_gateways']

tag('dmz') if dmz_gateways.include?(node_gateway)

于 2020-03-01T17:46:55.840 回答