Для установки моего сервера мне нужно wget и скомпилировать исходный пакет (geos, GeoIP и pyinding). Существует ли предопределенный класс puppet для получения исходных кодов пакетов и их компиляции?
2 ответа
Посмотри на:
https://github.com/example42/puppi/blob/master/manifests/netinstall.pp
Пример использования:
netinstall { 'postgis':
url => 'http://postgis.refractions.net/download/postgis-1.5.5.tar.gz',
extracted_dir => 'postgis-1.5.5',
destination_dir => '/tmp',
postextract_command => '/tmp/postgis-1.5.5/configure && make && sudo make install'
}
Кажется, что puppet - не самый лучший инструмент для компиляции исходных пакетов на целевых системах. Наилучшим подходом, вероятно, является предоставление пакета deb или того, что ожидает ваша целевая система, и установка пакета с помощью puppet.
Проблема компиляции программного обеспечения с помощью puppet заключается в том, что вам нужно запустить несколько команд exec {} с помощью puppet. Каждый раз, когда вы должны выяснить, должен ли исполняться exec или нет, основываясь на некоторых фактах в вашей системе (файлы присутствуют, сервисы присутствуют или нет и т.д.). Это довольно утомительно и подвержено ошибкам при компиляции исходного кода, поскольку результаты промежуточных шагов могут больше не отображаться. Таким образом, трудно определить достоверные факты для компиляции и установки исходного кода.