Comment exécuter un script shell à partir d'une marionnette?

8

J'ai besoin d'installer npmce qui est fait par curl http://npmjs.org/install.sh | shet étant nouveau dans l'utilisation puppet, je suis un peu confus sur la façon dont cela devrait être fait.

Je suis bien conscient de créer une package {}entrée qui invoque une execcible, mais lorsque j'installe npmdepuis la source, cela ne va pas la couper.

Je ne veux clairement pas construire à npmchaque fois que mon puppettire, j'ai donc besoin de vérifier si elle est installée ou non, donc faire un exec {}seul ne suffit pas non plus.

Que puis-je faire?

Industriel
la source

Réponses:

15

Quelque chose comme

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

Devrait faire l'affaire.

Cependant, je vous déconseille fortement de le faire, car cela rend votre processus d'installation dépendant de tant d'autres choses qui fonctionnent correctement et supprime les fichiers non suivis qui sait où dans votre système de fichiers (et c'est même avant de commencer à parler des implications de sécurité de exécution automatique de code non approuvé et non vérifiable). Il serait préférable de créer un package natif pour votre système d'exploitation, de le placer dans un référentiel local et de l'installer à l'aide d'une ressource de package.

womble
la source
4

Je «seconderais» tout ce que Womble a dit sur son emballage et son installation via des outils de gestion de paquets à partir d'un référentiel local. Selon la plate-forme, il peut également y avoir des référentiels tiers fiables que vous pouvez utiliser.

Un petit truc mineur concernant la réponse de Womble: le guide de style de marionnette recommande d'utiliser des guillemets simples, sauf si vous avez besoin de guillemets doubles pour l'interpolation variable. Dans le code que Womble montre, il n'y a pas de variables, donc tous les "devraient plutôt être".

Notez que beaucoup de la documentation sur les marionnettes n'a pas été mise à jour pour refléter cette recommandation, vous verrez donc des guillemets doubles à de nombreux endroits, même dans les documents officiels. Le guide de style et les peluches de marionnettes reflètent tous les deux les meilleures pratiques actuellement recommandées, et les documents seront, espérons-le, éventuellement corrigés.

Tim
la source