Установить исходный пакет с Puppet

6311
paweloque

Для установки моего сервера мне нужно wget и скомпилировать исходный пакет (geos, GeoIP и pyinding). Существует ли предопределенный класс puppet для получения исходных кодов пакетов и их компиляции?

6

2 ответа на вопрос

9
maersu

Посмотри на:

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' } 
2
paweloque

Кажется, что puppet - не самый лучший инструмент для компиляции исходных пакетов на целевых системах. Наилучшим подходом, вероятно, является предоставление пакета deb или того, что ожидает ваша целевая система, и установка пакета с помощью puppet.

Проблема компиляции программного обеспечения с помощью puppet заключается в том, что вам нужно запустить несколько команд exec {} с помощью puppet. Каждый раз, когда вам нужно выяснить, должен ли исполняться exec или нет, основываясь на каких-то фактах в вашей системе (файлы присутствуют, сервисы присутствуют или нет и т. Д.). Это довольно утомительно и подвержено ошибкам при компиляции исходного кода, поскольку результаты промежуточных шагов могут больше не отображаться. Таким образом, трудно определить достоверные факты для компиляции и установки исходного кода.