Рейтинг:0

Марионетка — могу ли я выборочно уведомить Службу?

флаг jp

У меня есть сценарий Puppet, который по-разному обрабатывает вещи в разных средах на основе если еще блокировать. Но внизу у меня есть куча общих блоков файловых ресурсов, которые применимы ко всем средам. В настоящее время эти блоки уведомить => Сервис['мой-сервис'], но для производства я хочу, чтобы он не уведомлял. Я хочу только обновить файлы, а не запускать или останавливать какие-либо службы.

Моя первоначальная идея заключается в том, могу ли я сохранить службу в переменной и установить ее в каждом разделе?

Пример:

если ($ env == 'dev') {
  $myService = Сервис['мой-сервис']
} elsif ($env == 'продукт') {
  $myService = Служба['фиктивная служба']
}

файл { "myfile.xml":
      гарантировать => файл,
      содержание =>
        шаблон("mytemplate.erb"),
      требуют => Пакет['мой-сервис'],
      уведомить => $myService
}

Я не уверен, сработает это или нет, но если сработает, что я могу использовать для фиктивного сервиса?

Рейтинг:2
флаг us

Да, это возможно, и ваш код довольно близок к правильному решению:

если ($ env == 'dev') {
  $my_service = 'мой-сервис'
} elsif ($env == 'продукт') {
  $my_service = 'фиктивный сервис'
}

файл { "myfile.xml":
  гарантировать => файл,
  контент => шаблон ("mytemplate.erb"),
  требуют => Пакет['мой-сервис'],
  уведомить => Сервис[$my_service]
}

Однако, поскольку ваш запрос состоит в том, чтобы вообще не уведомлять в определенной среде, лучше было бы сделать это таким образом, а не уведомлять фиктивную службу:

если ($ env == 'dev') {
  Файл['myfile.xml'] ~> Сервис['мой-сервис']
} 

Они называются цепочками стрелок: https://puppet.com/docs/puppet/7/lang_relationships.html#lang_rel_chaining_arrows

bdetweiler avatar
флаг jp
Мой файл Puppet был слишком сложен для этого, поэтому я создал отдельный класс для изменений конфигурации, а затем использовал оператор цепочки для вызова `-> Class['my_configs']` после установки RPM. Теперь я могу выбрать только обновление конфигов с помощью `puppet agent -t --tags my_configs`, или я могу выполнить полную установку RPM + конфиги.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.