Bagaimana cara menjalankan skrip shell dari boneka?

8

Saya perlu menginstal npmyang dilakukan oleh curl http://npmjs.org/install.sh | shdan menjadi baru untuk menggunakan puppet, saya agak bingung tentang bagaimana ini harus dilakukan.

Saya sangat sadar membuat package {}entri yang memanggil exectarget, tetapi ketika saya menginstal npmdari sumber, ini tidak akan memotongnya.

Saya jelas tidak ingin membangun npm setiap kali saya puppetmelakukan tarikan, jadi saya perlu cara untuk memeriksa apakah sudah terpasang atau tidak, jadi membuat exec {}sendiri saja tidak cukup.

Apa yang dapat saya?

Industri
sumber

Jawaban:

15

Sesuatu seperti

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

Sebaiknya lakukan triknya.

Namun, saya akan sangat menyarankan untuk tidak melakukan ini, karena itu membuat proses instalasi Anda tergantung pada banyak hal lain yang bekerja dengan benar, dan menjatuhkan file yang tidak terlacak yang-tahu-di mana di sistem file Anda (dan itu bahkan sebelum kita mulai berbicara tentang implikasi keamanan dari menjalankan kode yang tidak tepercaya dan tidak dapat diverifikasi secara otomatis). Anda akan jauh lebih baik membuat paket asli untuk OS Anda, menempatkannya di repo lokal, dan menginstalnya menggunakan sumber daya paket.

womble
sumber
4

Saya akan "kedua" semua yang dikatakan Womble tentang mengemasnya dan memasangnya melalui alat manajemen paket dari repositori lokal. Bergantung pada platform, mungkin juga ada repositori pihak ketiga yang dapat diandalkan yang dapat Anda gunakan.

Satu kesalahan kecil terkait jawaban Womble: panduan gaya boneka merekomendasikan penggunaan tanda kutip tunggal kecuali jika Anda membutuhkan tanda kutip ganda untuk interpolasi variabel. Dalam kode yang ditampilkan Womble, tidak ada variabel, jadi semua "seharusnya menjadi '.

Perhatikan bahwa banyak dokumentasi boneka belum diperbarui untuk mencerminkan rekomendasi ini, sehingga Anda akan melihat tanda kutip ganda di banyak tempat bahkan di dokumen resmi. Panduan gaya dan serat boneka mencerminkan praktik terbaik yang direkomendasikan saat ini, dan dokumen semoga pada akhirnya akan diperbaiki.

Tim
sumber