Может ли рабочий процесс марионеток остановиться при появлении ошибки в манифесте? - PullRequest
0 голосов
/ 26 марта 2019

Я ищу варианты остановки моего запуска марионетки, например, когда я вижу какой-то сбой в какой-то проверке внутри манифеста.

Когда я выполняю puppet agent -t на узле, если в манифесте есть какая-то ошибка, он должен остановить выполнение, а не продолжить работу с оставшимся манифестом.

Я попробовал команду "fail", если файл не может быть найден на узле, но я получил эту ошибку

Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call

Я пробовал что-то похожее ниже, если файл существует, тогда сообщите, что я присутствую, иначе произойдет сбой и остановите выполнение

$file = "/tmp/file"
exec { "chk_${file}_exist":
  command => "true",
  path    =>  ["/usr/bin","/usr/sbin", "/bin"],
  onlyif  => "test -f ${file}"
}
-> if !(Exec["chk_${file}_exist"]) {
      fail('I am failing')
        }
else {
      notify { 'I am present  ":}
}

1 Ответ

0 голосов
/ 27 марта 2019

Насколько мне известно, в Puppet нет универсального механизма, позволяющего полностью прервать работу приложения каталога при сбое одного ресурса, хотя такая функция была запрошена ранее .Как правило, такой вопрос подходит с большей точностью, с помощью одного или другого аспекта отношений ресурсов .

Если у вас есть один ресурс, правильное применение которого зависит от успешного применения другого конкретного ресурсасначала вы описываете это для Puppet, объявив отношения между ними, используя один из операторов цепочки или один из мета-параметров ресурса, предназначенных для этой цели (before, require, notify, subscribe),Это обеспечит как относительный порядок применения этих ресурсов, так и то, что не будет предпринята попытка применить зависимый в случае сбоя применения зависимости.Вы можете применить эту концепцию к группам ресурсов, установив отношения с классами или экземплярами определенного типа на одной или обеих сторонах или даже применив этапы выполнения .

В настоящее время, однако, нет никакого способа сделать приложение каталога в целом остановленным сразу после сбоя ресурса, когда остаются ресурсы, которые могут быть применены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...