¿Cómo ejecuto un script de shell desde Puppet?

8

Necesito instalar lo npmque se hace curl http://npmjs.org/install.sh | shy ser nuevo en el uso puppet, estoy un poco confundido sobre cómo se debe hacer esto.

Soy muy consciente de crear una package {}entrada que invoca un execobjetivo, pero a medida que instalo npmdesde el origen, esto no va a cortarlo.

Claramente, no quiero construir npmcada vez puppetque realizo un tirón, por lo que necesito alguna forma de verificar si está instalado o no, así que hacer un exec {}solo tampoco es suficiente.

¿Que puedo hacer?

Industrial
fuente

Respuestas:

15

Algo como

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

Debería hacer el truco.

Sin embargo, le recomendaría encarecidamente que no lo haga, ya que hace que su proceso de instalación dependa de que muchas otras cosas funcionen correctamente, y elimina los archivos no rastreados quién sabe dónde en su sistema de archivos (y eso es incluso antes de comenzar a hablar sobre las implicaciones de seguridad de ejecutar código no confiable y no verificable automáticamente). Sería mucho mejor crear un paquete nativo para su sistema operativo, colocarlo en un repositorio local e instalarlo utilizando un recurso de paquete.

womble
fuente
4

Me gustaría "segundo" todo lo que Womble dijo sobre empaquetarlo e instalarlo a través de herramientas de administración de paquetes desde un repositorio local. Dependiendo de la plataforma, también puede haber repositorios de terceros confiables que podría usar.

Un pequeño detalle con respecto a la respuesta de Womble: la guía de estilo de títeres recomienda usar comillas simples a menos que necesite comillas dobles para la interpolación variable. En el código que muestra Womble, no hay variables, por lo que todo el "debería ser".

Tenga en cuenta que gran parte de la documentación de títeres no se ha actualizado para reflejar esta recomendación, por lo que verá comillas dobles en muchos lugares, incluso en los documentos oficiales. La guía de estilo y la pelusa de títeres reflejan las mejores prácticas recomendadas actuales, y es de esperar que los documentos eventualmente se solucionen.

Tim
fuente