Come posso eseguire uno script di shell da Puppet?


8

Ho bisogno di installare ciò npmche è fatto curl http://npmjs.org/install.sh | shed essendo nuovo nell'uso puppet, sono un po 'confuso su come dovrebbe essere fatto.

Sono ben consapevole della creazione di una package {}voce che invoca una execdestinazione, ma mentre installo npmdalla sorgente, questo non lo taglierà.

Chiaramente non voglio costruire npmogni volta che faccio puppetun pull, quindi ho bisogno di controllare in qualche modo se è installato o meno, quindi anche solo fare un exec {}solo non è abbastanza.

Cosa posso fare?

Risposte:


15

Qualcosa di simile a

exec { "install npm":
    command => "/usr/bin/curl http://npmjs.org/install.sh | sh",
    creates => "/some/directory/somewhere"
}

Dovrebbe fare il trucco.

Tuttavia, ti consiglio vivamente di non farlo, poiché rende il tuo processo di installazione dipendente da tante altre cose che funzionano correttamente e rilascia file non tracciati chissà dove nel tuo filesystem (e questo è ancora prima di iniziare a parlare delle implicazioni di sicurezza di eseguire automaticamente il codice non attendibile e non verificabile). Faresti molto meglio a creare un pacchetto nativo per il tuo sistema operativo, posizionarlo in un repository locale e installarlo usando una risorsa pacchetto.


4

Vorrei "secondare" tutto ciò che Womble ha detto riguardo all'imballaggio e all'installazione tramite strumenti di gestione dei pacchetti da un repository locale. A seconda della piattaforma, potrebbero esistere anche repository di terze parti affidabili che è possibile utilizzare.

Un piccolo pignolo sulla risposta di Womble: la guida allo stile fantoccio raccomanda di usare virgolette singole a meno che non siano necessarie doppie virgolette per l'interpolazione variabile. Nel codice che mostra Womble, non ci sono variabili, quindi tutto "dovrebbe essere invece".

Nota che gran parte della documentazione fantoccio non è stata aggiornata per riflettere questa raccomandazione, quindi vedrai doppie virgolette in molti punti anche nei documenti ufficiali. La guida allo stile e la lanugine riflettono entrambe le migliori pratiche consigliate, e si spera che i documenti alla fine saranno corretti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.