Насколько я понимаю, это точно, для чего этапы - они позволяют Вам группа и заказывают выполнение класса. Я использую "этапы", чтобы обновить и настроить APT в серверах Debian, которые должны быть очень похожи на то, что Вы собираетесь сделать с КОНФЕТКОЙ.
В первую очередь, Вы объявляете "вкусный" этап на верхнем уровне (выше "узлов"), так, чтобы классы на "вкусном" этапе были выполнены перед "основными":
stage { 'yum' : before => Stage['main'] }
Затем Вы присваиваете этап классам. Можно сделать это правильно в определении узла:
node default {
class { 'repo' : stage => yum }
include package_x
}
Поведение, которое Вы описываете, не является моим собственным опытом. Выполненная марионетка вручную, с --debug
:
puppetd --debug --test
В этом режиме это покажет каждую команду, которую это выполняет. Это должно показать команду, которую это использует, чтобы проверить, является ли пакет в его последней версии, таким образом, можно проверить то, что команда, и когда это выполняется.
У меня есть серверы обработки небольшого опыта с Конфеткой, но склонное использование - добирается (Debian), необходимо выполнить команду для обновления списка пакетов после обновления исходного списка (эквивалент конфетки repos). Так, в моих конфигурациях обновления исходного списка уведомляют должностное лицо обновления списка пакета, и новые пакеты зависят от сказанного (refreshonly) должностного лица.