Installieren Sie ein Quellpaket mit Marionette

6584
paweloque

Für meine Server-Installation muss ein Quellpaket (Geos, GeoIP und Py-Bindung) erstellt und kompiliert werden. Gibt es eine vordefinierte Puppenklasse, um Paketquellen abzurufen und zu kompilieren?

6

2 Antworten auf die Frage

9
maersu

Schauen Sie sich an:

https://github.com/example42/puppi/blob/master/manifests/netinstall.pp

Anwendungsbeispiel:

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

Es scheint, dass Marionette nicht wirklich das beste Werkzeug zum Kompilieren von Quellpaketen auf Zielsystemen ist. Der beste Ansatz ist wahrscheinlich, ein Deb-Paket oder was auch immer Ihr Zielsystem erwartet, bereitzustellen und das Paket mithilfe von Marionette zu installieren.

Das Problem beim Kompilieren von Software mit Puppet ist, dass Sie mehrere exec {} -Befehle mit Puppet ausführen müssen. Jedes Mal müssen Sie herausfinden, ob ein Exec ausgeführt werden muss oder nicht, und zwar auf der Grundlage einiger Fakten in Ihrem System (vorhandene Dateien, vorhandene Services oder nicht usw.). Dies ist ziemlich langwierig und fehleranfällig für eine Quellkompilierung, da die Ergebnisse der Zwischenschritte möglicherweise nicht mehr vorliegen. Daher ist es schwierig, verlässliche Fakten für die Erstellung und Installation der Quelle zu ermitteln.