Que font exactement les commandes Vagrant?

Il n’y a étonnamment aucune documentation sur ce que font les commandes Vagrant, autres que des références tout au long du didacticiel “Getting Started”.

Ce que j’ai travaillé jusqu’à présent:

  • box – gérer les ” boîtes ”
  • destroy – ferme la machine virtuelle puis supprime son image stockée?
  • gem
  • halt – arrêter la VM
  • init – prépare un répertoire avec un nouveau fichier Vagrant
  • package – fermez la machine virtuelle, puis convertissez-la en un «package» qui peut être transformé en boîte? (Ou quelque chose)
  • provision – exécute uniquement l’étape de provisionnement (par exemple, Chef, Puppet …)
  • reload – modifie la configuration de la VM (par exemple, réapplique le fichier Vagrantfile), redémarre la VM, reprovision
  • resume – annuler la suspension (c’est-à-dire, neutraliser)
  • ssh – ouvre une connexion de shell SSH à la machine virtuelle
  • ssh-config
  • status
  • suspend – hibernate la VM
  • up – une partie ou la totalité: copier une image VM pour créer une nouvelle VM, lui appliquer une configuration, la démarrer

Ai-je ces droits? Quels sont les autres? Je ne suis toujours pas certain de la différence exacte entre reload et destroy / up .

Je suis d’accord avec vous pour dire que la documentation au vagrantup est du côté le plus court.

Certaines informations peuvent être extraites du système d’aide à la commande.

  1. Par exemple: commande gem .

    Il suffit de taper la commande sans arguments: vagrant gem -h et cela produit les informations dont vous avez besoin.

    vagrant gem est utilisé pour installer les plugins Vagrant via le système RubyGems. En fait, vagrant gem est juste une interface à l’interface gem réelle, la différence étant que Vagrant met en place un répertoire personnalisé où les gems sont installés afin qu’ils soient isolés de vos gems système.

  2. Vagrant ssh-config :

    Sous le capot, lorsque vous exécutez vagrant ssh vers ssh dans VM. Il utilise sa clé SSH bien connue. Les informations sur cette clé sont fournies par vagrant ssh-config . Ceci est utile au cas où vous voudriez changer la clé bien connue en votre propre clé privée et préparer des boîtes pour l’utiliser.

    Parfois, vous souhaiterez peut-être utiliser l’automatisation ssh avec vos machines virtuelles. Dans ce cas, savoir quelle clé est utilisée est utile. Vous pouvez utiliser la commande ssh normale – ssh -i keyfile ..

  3. vagrant status

    Cette commande est un wrapper qui fournit des informations sur le statut de vm. Il pourrait être en cours d’exécution, enregistré et mis hors tension.

  4. vagrant reload

    Si vous apportez des modifications à la configuration dans vagrantfile qui doit prendre effet. Vous souhaiterez peut-être recharger la machine virtuelle. Il ré-exécute le provisioning défini dans le fichier errant à moins que vous ne le demandiez pas non plus.

    Il ne détruit pas la machine virtuelle que vous avez créée à partir d’une boîte de base. Cela signifie que toutes les modifications que vous avez apscopes à votre machine virtuelle, comme par exemple créer un dossier dans votre répertoire utilisateur, seront là après le rechargement.

    C’est comme redémarrer à la mise hors tension de votre machine virtuelle, puis appliquer certains changements de configuration qui ne peuvent être appliqués que lorsque la machine virtuelle a été mise hors tension. puis allumez-le. Exemple: comme attacher un autre disque virtuel SATA.

  5. vagrant up

    Ceci lit votre fichier de configuration – vagrantfile et crée ensuite une VM à partir de la boîte de base. La base est comme un modèle. Vous pouvez en créer plusieurs.

    De même, le vagrant destroy détruit votre VM. Dans ce cas, toutes les modifications apscopes à l’intérieur seront perdues. Mais c’est la bonne idée de pouvoir partir d’un état prédéfini lorsque vous créez une nouvelle machine virtuelle.

J’aime vraiment l’utiliser et ai blogué à ce sujet .

En résumé, il s’agit d’une bonne enveloppe pour les API et les commandes VirtualBox . Vous pouvez consulter les commandes de VirtualBox pour mieux comprendre certaines fonctionnalités.

Je ne suis pas sûr quand cela a changé, mais la version actuelle (1.6.3) a une liste de commandes appropriée, et l’exécution de vagrant list-commands donne une liste encore plus complète:

 box manages boxes: installation, removal, etc. connect connect to a remotely shared Vagrant environment destroy stops and deletes all traces of the vagrant machine docker-logs outputs the logs from the Docker container docker-run run a one-off command in the context of a container global-status outputs status Vagrant environments for this user halt stops the vagrant machine help shows the help for a subcommand init initializes a new Vagrant environment by creating a Vagrantfile list-commands outputs all available Vagrant subcommands, even non-primary ones login log in to Vagrant Cloud package packages a running vagrant environment into a box plugin manages plugins: install, uninstall, update, etc. provision provisions the vagrant machine rdp connects to machine via RDP reload restarts vagrant machine, loads new Vagrantfile configuration resume resume a suspended vagrant machine rsync syncs rsync synced folders to remote machine rsync-auto syncs rsync synced folders automatically when files change share share your Vagrant environment with anyone in the world ssh connects to machine via SSH ssh-config outputs OpenSSH valid configuration to connect to the machine status outputs status of the vagrant machine suspend suspends the machine up starts and provisions the vagrant environment version prints current and latest Vagrant version 

Les seules commandes laissées en dehors de la liste complète lors de l’exécution de vagrant par lui-même sont les commandes docker et rsync. Sur mon système, de toute façon.

Cela semble être la réponse définitive, maintenant.

Il est vraiment dommage que, même si la documentation actuelle pour la v1.1 semble meilleure, elle est beaucoup moins complète que la v1. Le credo «less is more» ne fonctionne tout simplement pas dans le domaine de la documentation …

En ce qui concerne Vagrantfiles, la vue d’ensemble la plus complète se trouve dans les commentaires d’un fichier Vagrant nouvellement créé, après l’initialisation d’un projet vagrant. Il mentionne des parameters qui ne figurent pas dans la documentation.