Можно ли "утверждать" в Puppet? - PullRequest
7 голосов
/ 27 сентября 2011

Есть ли способ утверждать, что переменная (или, более конкретно, факт) в puppet имеет определенное значение, и отменить установку, если это не так?

Для фона, вот ситуация:

В большинстве случаев я могу ссылаться на имена хостов, но иногда мне нужно использовать IP-адрес. Например, нашему хосту сборщика журналов необходимо открыть порт в брандмауэре для нескольких конкретных машин (а не всей подсети). Мне нужно использовать IP-адреса, чтобы открыть дыру в брандмауэре. Поскольку IP-адреса машин не меняются, я планировал кодировать IP-адрес как часть конфигурации, но я хотел бы проверить на отдельных хостах, соответствует ли фактический IP-адрес указанному в его конфигурации, и произойдет сбой, если это не так. Это возможно?

1 Ответ

11 голосов
/ 29 сентября 2011

Я полагаю, что-то вроде этого будет работать:

if $ipaddress != $expectedipaddress {
  fail("IP mismatch")
}

Функция fail() вызывает ошибку разбора.Завершение в условное выражение должно привести к желаемому поведению assert.

Я не проверял это конкретное использование, но в случае сбоя синтаксического анализа новый каталог не компилируется, а клиент ничего не получает.

...