Chef - пометка сервера с рецептом, если variable1 соответствует чему-либо в variable2 - PullRequest
0 голосов
/ 01 марта 2020

Поэтому я пытаюсь пометить сервер в Chef, указав, что переменная1 равна любому значению в переменной2, чтобы пометить сервер с помощью этой строки кода -

Переменные и код в рецепте 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? неправильно настроен Возможно, мои значения атрибутов также неправильно настроены?

Любой ответ приветствуется.

1 Ответ

1 голос
/ 01 марта 2020

Все выглядит хорошо, кроме условия if.

dmz_gateways.any? возвращает true, и вы сравниваете его с node_gateway == true, возвращающим false

. Вы можете исправить что-то вроде:

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

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

...