Je suis nouveau sur Puppet et bien que j'utilise des systèmes * nix depuis de nombreuses années, je n'ai jamais travaillé en tant que sysadmin ou en ops.
J'écris actuellement des manifestes Puppet pour héberger un ensemble d'applications Web (PHP / MySQL / MongoDB, code in git). De toute évidence, Puppet doit avoir une certaine connaissance des applications réelles, car je vais configurer un hôte virtuel pour chacune, mais je ne sais pas si Puppet devrait gérer des choses comme le déploiement de code et la création de bases de données.
Puppet est-il un outil approprié pour le déploiement d'applications? Sinon, pouvez-vous recommander un outil plus approprié?
deployment
puppet
michaeltwofish
la source
la source
Réponses:
Je chercherais dans Capistrano ou Fabric pour les déploiements.
Vous aurez un meilleur contrôle sur la façon dont le déploiement se produit avec ces deux outils.
la source
Puppet est utilisé pour les déploiements dans de nombreuses grandes organisations, mais il n'est pas toujours parfait. Cela dépend en grande partie de votre méthodologie de déploiement. Vous déployez sur de nombreuses machines à la fois? Faites-vous des déploiements continus?
Certaines organisations utilisent Puppet en créant des packages de leurs déploiements, puis en ayant puppet appliquer la stratégie pour être à la bonne version de ce package. Parce que marionnette a le concept d'environnements inclus, vous pouvez utiliser des environnements pour effectuer des déploiements par étapes (dev, test, prod par exemple).
D'autres organisations utilisent des marionnettes pour orchestrer le déploiement en déclenchant une rsync, une extraction git ou des copies de fichiers récursives à l'aide de marionnettes (bien que cela soit plutôt lent).
Il existe également de très bons outils disponibles pour le déploiement. J'ai utilisé Whiskey Disk dans le passé (un simple outil rubis) et je l'ai beaucoup aimé.
(Avertissement, je travaille chez Puppet Labs)
la source
Si vous souhaitez créer un package à partir de votre application, vous pouvez consulter FPM . Le code est sur GitHub .
la source
Puppet n'est pas l'outil approprié pour déployer des applications à mon avis.
J'utilise Jenkins pour construire et déployer notre code à des fins de test et de transfert.
Jenkins est à l'origine un serveur d'intégration continue, mais il est vraiment flexible et modulaire. Il existe de nombreux plugins pour Jenkins qui peuvent vous aider à déployer vos applications:
Pour notre application, j'ai configuré Jenkins avec Publish over SSH qui copie un fichier WAR correctement construit sur le serveur de destination, puis exécutant un script qui effectue la sauvegarde et le déploiement. J'espère que cela t'aides!
la source
Un outil d'exécution à distance + de gestion de la configuration serait bon pour le déploiement d'applications. Le sel en est un bon exemple .
la source
Puppet n'est pas vraiment conçu pour le déploiement, car lorsqu'il y a un grand nombre de fichiers impliqués, vous pouvez rencontrer des problèmes. Vous pouvez regarder dans capistrano pour le déploiement d'applications.
http://rubyforge.org/projects/capistrano/
la source