У меня есть сапожник установки, который выполняет марионетку автоматически после установки ОС. Это хорошо работает, за исключением того, что это требует времени, чтобы марионетка установила все пакеты. Это - все еще фаза тестирования, таким образом, это были чуть приблизительно 15 пакетов всего. Мой site.pp похож на это:
node server1 {
include myrepo
include bacula
include vsftpd
}
myrepo просто копирует файл хранилища в клиент-сервер. бакулюмы перечисляют 11 пакетов, которые будут установлены, и vsftpd только 1 пакет.
Прямо после того, как ОС (SuSe) была установлена, файл хранилища был скопирован, vsftpd был установлен, но только 2 пакета бакулюмов были установлены в клиент-сервере. Я должен был ожидать в течение подобного получаса или поэтому прежде чем все пакеты бакулюмов были установлены. Марионеточный журнал пуст.
Если я должен был выполнить марионетку вручную, установка пакетов будет работать гладко и быстро. Какова могла быть причина задержки?
Если вы не установите явные зависимости, упорядочение ресурсов может быть проблемой.
То, как вы это написали, не означает, что репо будет развернуто до применения других классов.
Например:
node server1 {
class { 'myrepo': }
class { 'bacula':
require => Class['myrepo'],
}
class { 'vsftpd':
require => Class['myrepo'],
}
}
Заказал бы правильно.
Вы также можете добавить require myrepo
к классам vsftpd
и bacula
.
Есть много решений.
Если это внешние модули, я всегда стараюсь не изменять их каким-либо образом, чтобы упростить обновление.
См .: https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html