Uso Puppet per eseguire il provisioning di una macchina virtuale vagabonda (basata su Ubuntu). Nel mio script ho bisogno di:Installazione di un modulo burattino da uno script manifesto
sudo apt-get build-dep python-lxml
so di poter installare il apt
puppet module modo da poter utilizzare:
apt::builddep { 'python-lxml': }
Ma non riesco a trovare alcun riferimento sull'installazione di un modulo dallo script e come includerlo/richiederlo. A me sembra che la documentazione fantoccio si riferiscono solo al installing from the command line puppet tool
Ho anche provato a fare qualcosa di simile:
define build_dep($pkgname){
exec {
"builddepend_$pkgname":
commmand => "sudo apt-get build-dep $pkgname";
}
}
build_dep{
"python-imaging":
pkgname => "python-imaging";
"python-lxml":
pkgname => "python-lxml";
}
Ma fantoccio uscito con un errore su questo. E anche:
exec{"install apt module":
command => "puppet module install puppetlabs/apt"
}
class { 'apt':
require => Exec["install apt module"]}
include apt
apt::builddep { 'python-imaging':
}
ma ottenuto could not find declared class apt at..
tutte le idee? indicazioni? So che mi manca qualcosa di ovvio ma non riesco a capirlo.
EDIT: Se io preinstallare (con puppet module install
dalla linea di comando) il apt:builddep
funziona bene. Ma ho bisogno di burattino per gestire il download e l'installazione del modulo. Alcuni degli altri funzionano anche per il caso d'uso di base, ma non rispondono alla mia domanda principale.
Accettata la risposta, dal momento che sembra funzionare (in parte) e simile alla strada che ho preso. cercare di mettere a punto l'ordine dei burattini mi ha morso una volta di più. In realtà ho usato '' 'git submodule update --init''' per gestire (predefind) le dipendenze dei moduli. ed eseguirlo pre-puppet \ vagrant – alonisser
Funziona finché non si esegue nuovamente il passaggio di provisioning sulla stessa macchina virtuale ... quindi non riesce con: "Modulo già installato". –
Forse se usi l'opzione --force come questo modulo puppet installa --force puppetlabs/apache ... Non dovrebbe fallire, ma reinstallerà il modulo. Come indicato nel documento: "Usa l'opzione --force per reinstallare forzatamente un modulo esistente.". Vedi: http://docs.puppetlabs.com/puppet/2.7/reference/modules_installing.html – Tony