Назад | Перейти на главную страницу

Понимание экспортированных ресурсов в Puppet

Чтобы понять экспортируемые ресурсы в Puppet, следующая документация был прочитан. После прочтения документации пришло понимание, что экспортируемые ресурсы состоят из объявления и сбора.

Попытка

На основе документации и понимания экспортируемых ресурсов в Puppet был создан следующий код:

class test {
  @@file { "/tmp/$hostname": }

  File <<| |>>
}

Ожидается

Ожидалось, что будет создан файл / tmp / vm-one

Текущий

Файл не был создан

[vagrant@vm-one modules]$ sudo puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for vm-one.domain
Info: Applying configuration version '1421499164'
Notice: Finished catalog run in 0.10 seconds

Для правильной работы экспортированных ресурсов вам необходимо настроить PuppetDB. Они не будут работать без PuppetDB. Кроме того, вам часто требуется два запуска Puppet для применения ресурсов.

Что происходит за кулисами:

  • марионеточный агент запрашивает каталог у мастера

  • master компилирует каталог (получение экспортированных ресурсов из PuppetDB и сохранение вновь обнаруженных экспортированных ресурсов обратно в PuppetDB)

  • мастер доставляет каталог агенту

Конечно, экспорт ресурсов в манифесте для одного узла не очень полезен. Идея заключается в том, что отдельные узлы могут сообщать о некоторых своих ресурсах, которые позже собираются другим узлом, на котором вы хотите, чтобы они были применены.

Вот пример: если вы хотите вставить проверки Nagios в каждую из ваших служб, вы не хотите применять и собирать эти проверки на узлах, где находятся службы, но вы хотите собрать их все на узле Nagios.

Надеюсь это поможет.