web-dev-qa-db-fra.com

Vagrant en production

J'ai lu sur Vagrant et je le trouve très utile pour mon développement. Je gère actuellement une série de services (courrier, web, LDAP, partage de fichiers, etc.), et souvent l'un de ces chutes et a besoin d'une sauvegarde rapide. Est-il possible (et recommandé) d'utiliser Vagrant à ces fins?

Jusqu'à présent, j'ai installé des machines virtuelles comme de vraies machines.

J'aimerais également connaître une alternative à Vagrant qui me permettrait de configurer un fichier de configuration simple et de mettre une machine virtuelle, par exemple, avec Zimbra, et d'avoir rapidement un autre serveur de messagerie, activer RabbitMQ, etc.

39
rkmax

Vagrant doit être utilisé davantage comme un environnement de transfert pour tester les modifications de votre infrastructure. Il devrait être votre banc d'essai pour les changements d'infrastructure automatisés.

La façon dont nous l'utilisons dans mon entreprise est la suivante:

  1. Créez des machines virtuelles pour nos serveurs gérés dans Vagrant.
  2. Créez des définitions de marionnettes pour chaque serveur.
  3. Créez des tests de concombre pour chaque serveur.
  4. Apportez des modifications à l'infrastructure via une marionnette et ajoutez des tests de concombre.
  5. Lancez nos serveurs pour tester les pannes.
  6. Corrigez les bugs, relâchez et/ou revenez à l'étape 4.

Fondamentalement, lorsque nous sommes satisfaits de nos changements, nous allons mettre nos changements de marionnettes en production pour y arriver.

Je ne recommanderais pas d'utiliser vagrant pour gérer des machines virtuelles pour une production réelle. J'utiliserais autre chose comme razor, virsh, OpenStack ou l'un des nombreux autres systèmes de gestion de VM là-bas.

17
Sekm

Cette page suggère que la commande Vagrant Push est destinée au déploiement en production:

https://www.hashicorp.com/blog/vagrant-Push-one-command-to-deploy-any-application/

"De plus, plusieurs déclarations config.Push.define peuvent être dans un Vagrantfile pour définir plusieurs poussées, peut-être une pour la mise en scène et une pour la production, par exemple."

1
skinneejoe
  • D'après mon expérience, Vagrant est principalement utilisé dans un environnement de développement.
  • Les options de configuration et de provisionnement variées sont limitées par rapport à Terraform par exemple.
  • Si vous travaillez dans un environnement cloud, vous pouvez utiliser Terraform pour le provisionnement d'infrastructure.
  • Si votre environnement est local ou que vos machines virtuelles seront hébergées sur un centre de données, vous pouvez utiliser Ansible, chef ou marionnette pour vous gérer et automatiser la configuration.
0
Omar Khaled

J'avais la même question et j'ai étudié l'utilisation de Vagrant Push qui, selon leur documentation , à partir de la version 1.7, Vagrant est capable de déployer ou de "pousser" le code d'application dans le même répertoire que votre Vagrantfile à une télécommande telle qu'un serveur FTP.

J'envisage de faire tourner le vagabond dans un VM pour les développeurs, tout en vous donnant également la possibilité de déployer votre code sur un serveur en direct pour les environnements de production.

0
aphexlog

Hashicorp vient de publier Otto , qui est censé être le successeur du Vagrant. Il est conçu pour prendre en charge les environnements de déploiement.

Depuis leur page Github :

Les principales caractéristiques d'Otto sont:

  • Environnements de développement automatiques : Otto détecte votre type d'application et crée un environnement de développement spécialement conçu pour cette application, avec une configuration nulle ou minimale. Si votre application dépend d'autres services (comme une base de données), elle configurera et démarrera automatiquement ces services dans votre environnement de développement pour vous.

  • Conçu pour les microservices : Otto comprend les dépendances et le contrôle de version et peut automatiquement déployer et configurer une application et toutes ses dépendances pour n'importe quel environnement. Une application n'a qu'à indiquer à Otto ses dépendances immédiates; les dépendances des dépendances sont automatiquement détectées et configurées.

  • Déploiement : Otto sait comment déployer des applications et les développer. Que votre application soit un microservice moderne, un monolithe hérité ou quelque chose entre les deux, Otto peut déployer votre application dans n'importe quel environnement.

  • Docker : Otto peut utiliser Docker pour télécharger et démarrer les dépendances pour le développement afin de simplifier les microservices. Les applications peuvent être conteneurisées automatiquement pour faciliter les déploiements sans modifier le flux de travail du développeur.

  • Outillage renforcé en production : Otto utilise des outils renforcés en production pour créer des environnements de développement ( Vagrant ), lancer des serveurs ( Terraform ), configurez les services ( Consul ), et plus encore. Otto s'appuie sur des outils qui alimentent les plus grands sites Web du monde. Otto installe et gère automatiquement tous ces outils, vous n'avez donc pas à le faire.

0
André Pena