У меня есть два модуля Puppet, «пользователи» и «sourcerepos» вызывают узлы, соответствующие выражению имени хоста.Условное упорядочение классов при использовании Hiera с Puppet 3.7.3
«Пользователи» создают всех пользователей, которые требуются в моей организации, а также выполняют базовую конфигурацию для каждого пользователя, например, размещение ~/.ssh/config и различных ключей внутри .ssh, необходимых для аутентификации против частных репозиториев Git.
«Sourcerepos» использует один из созданных пользователей для проверки нескольких сотен репозиториев Git и размещения их в ~/git-repos с помощью модуля puppetlabs/vcsrepos.
Модуль «Sourcerepos», очевидно, имеет зависимость от модуля «users», но установка «require users» в «Sourcerepos» не вызывает оценку всего класса, прежде чем он попытается проверить репозитории git.
Добавление опций «до» или «подписаться» в каждый репозиторий не представляется возможным из-за огромного количества репозиториев и частоты, которую они создали.
Создание условного режима для определенного типа vcsrepo также не является жизнеспособным из-за необходимости выполнять его по-разному в зависимости от модуля или класса, который его вызывает.
I думаю Я понимаю, что отношения с кукольным дизайном, и для меня это неприятно из-за недостатка в том, как один (или оба) моих модулей разработаны. Я хотел бы помочь выяснить, как/почему.
Можете ли вы опубликовать код, который показывает, что вы пробовали? Ваши описания немного расплывчаты. –
возможно 'Class ['Users'] -> Class ['Sourcerepos']' будет делать трюк? Я не большой поклонник цепочки стрелок, возможно, если вы укажете какой-то пример кода, мы сможем помочь в устранении неполадок. https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html#chaining-arrows – ptierno