Я использую hiera с марионеткой и имею настройку роли / профиля марионетки, где 1 роль включает несколько профилей (как показано ниже). Моя роль в сборке включает жестко запрограммированные профили с несколькими цепочками внизу.
# build.pp - Current Role
class role::build {
include profile::profile1
include profile::profile2
include profile::profile3
Class['profile::profile1']
->Class['profile::profile2']
->Class['profile::profile3']
}
Я хочу преобразовать эту роль (build.pp), чтобы использовать поиск Puppet Hiera, чтобы найти имена классов и добавить их в каталог марионеток. Предлагаемая мной роль будет выглядеть примерно так:
# build.pp - Proposed Role
class role::build {
lookup('classes', Array[String], 'unique').include
Class['profile::profile1']
->Class['profile::profile2']
->Class['profile::profile3']
}
Поиск работает и классы добавляются в каталог, однако я не уверен, как я могу также автоматизировать механизм цепочки, чтобы гарантировать, что они работают в правильном порядке?
Причина этого изменения в том, что я планирую задействовать большое количество похожих ролей и иметь возможность управлять этими ролями с помощью марионеточного факта, а это очень мощный механизм.
Цепочки необходимы для того, чтобы моя сборка Windows присоединялась к домену и выполняла ряд профилей, связанных со сборкой, перед запуском дополнительных профилей приложений.
Любая помощь или указатели будут очень благодарны.
К сожалению, вы не можете использовать классы из Hiera таким образом и одновременно определять отношения.
Вы можете использовать этапы, чтобы первым делом присоединиться к домену. Затем ваши профили приложений переходят на следующий этап.