Que font exactement les commandes Vagrant?

96

Il n'y a étonnamment aucune documentation sur ce que font les commandes Vagrant, à part des références tout au long du didacticiel de "mise en route".

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

  • box- gérer les " boîtes "
  • destroy - arrêter la VM puis supprimer son image stockée?
  • gem
  • halt - arrêtez la VM
  • init - préparer un répertoire avec un nouveau Vagrantfile
  • package- arrêter la VM, puis la convertir en un «package» qui peut être transformé en une boîte? (Ou quelque chose)
  • provision - exécuter uniquement l'étape de provisionnement (par exemple, Chef, Puppet ...)
  • reload - modifier la configuration de la VM (par exemple, réappliquer Vagrantfile), redémarrer la VM, réapprovisionner
  • resume - annuler la suspension (c'est-à-dire désactiver la suspension)
  • ssh - ouvrir une connexion SSH shell à la VM
  • ssh-config
  • status
  • suspend - mettre la VM en veille prolongée
  • up - tout ou partie de: copier une image de VM pour créer une nouvelle VM, lui appliquer une configuration, la démarrer

Ai-je ce droit? Quels sont les autres? Je ne suis toujours pas certain de la différence exacte entre reloadet destroy/ up.

Steve Bennett
la source
La documentation actuelle est bien meilleure maintenant - vagrantup.com/v1/docs/index.html
JavaRocky
2
@JavaRocky, ça ne me semble pas comme ça. vagrantup.com/v1/docs/commands.html n'a toujours littéralement aucune information par sous-commande. Je m'attendrais à plus d' informations sur chaque commande dans un guide comme celui-ci (par rapport à -h), pas moins.
Matthew Flaschen
2
@JavaRocky - Si c'est mieux, je ne peux pas imaginer à quoi ils ressemblaient avant. Pas du tout utile.
DougW
Intéressant, il semble qu'ils aient en fait supprimé la liste des commandes, ce qui rend le site Web encore moins informatif qu'auparavant.
Steve Bennett
D'après la documentation actuelle, il semble que "reprendre" est redondant avec "vagrant up", par exemple, ce dernier va reprendre une machine si elle est suspendue, et se réapprovisionner si elle est arrêtée. Est-ce exact? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

Réponses:

48

Je suis d'accord avec vous que la documentation chez vagrantup est plutôt courte.

Certaines informations peuvent être glanées à partir du système d'aide aux commandes.

  1. Par exemple: gemcommande.

    Tapez simplement la commande sans arguments: vagrant gem -het elle produira les informations dont vous pourriez avoir besoin.

    vagrant gemest utilisé pour installer les plugins Vagrant via le système RubyGems. En fait, il ne vagrant gems'agit que d'une interface vers l' gem interface réelle , la différence étant que Vagrant configure un répertoire personnalisé dans lequel les gemmes sont installées afin qu'elles soient isolées de vos gemmes système.

  2. Vagrant ssh-config:

    Sous le capot, lorsque vous exécutez vagrant sshpour 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é connue en votre propre clé privée et préparer les boîtes à l'utiliser.

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

  3. vagrant status <vmname>

    Cette commande est un wrapper qui fournit des informations sur l'état de vm. Il peut être en cours d'exécution, enregistré et éteint.

  4. vagrant reload

    Si vous apportez des modifications à la configuration de vagrantfile qui doivent prendre effet. Vous souhaiterez peut-être recharger la VM. Il réexécute l'approvisionnement défini dans le fichier vagrant à moins que vous ne le demandiez pas trop.

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

    C'est comme un redémarrage où il éteint votre machine virtuelle, puis applique certaines modifications de configuration qui ne peuvent être appliquées que lorsque la machine virtuelle a été mise hors tension. puis allumez-le. Exemple: comme attacher un autre disque virtuel SATA.

  5. vagrant up

    Cela lit votre fichier de configuration - vagrantfilepuis crée une machine virtuelle à partir de la boîte de base. Base Box est comme un modèle. Vous pouvez en créer plusieurs VM.

    De même, vagrant destroydétruit votre VM. Dans ce cas, toutes les modifications que vous avez apportées à l'intérieur seront perdues. Mais c'est l'idée géniale que vous pouvez partir d'un état prédéfini de base lorsque vous créez une nouvelle machine virtuelle.

J'aime beaucoup l'utiliser et j'en ai blogué .

En résumé, c'est un bon wrapper sur les API et commandes de VirtualBox . Vous pouvez jeter un œil aux commandes VirtualBox pour mieux comprendre certaines des fonctionnalités.

pyfunc
la source
1
De quelle version de vagrant obtenez-vous toute cette sortie? J'utilise 1.0.5 et je n'obtiens rien de la sorte. vagrant gem -hdonne le résultat que vous avez montré, mais tous les autres ne disent rien d'utile du tout.
DougW
2
Vagrant 1.2 semble avoir reculé. par exemple, vagrant init -hdonne juste ceci: Utilisation: vagrant init [nom-boîte] [url-boîte] -h, --help Imprimer cette aide
Steve Bennett
34

Je ne sais pas quand cela a changé, mais la version actuelle (1.6.3) a une liste appropriée de commandes, et l'exécution vagrant list-commandsdonne 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 qui ne vagrantfigurent pas dans la liste complète lorsqu'elles sont exécutées seules sont les commandes docker et rsync. Sur mon système, en tout cas.

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

Steve Bennett
la source
8

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 «moins c'est plus» ne fonctionne tout simplement pas dans le domaine de la documentation ...

J'ai constaté qu'en ce qui concerne Vagrantfiles, l'aperçu le plus complet se trouve dans les commentaires d'un Vagrantfile fraîchement créé, après l'initialisation d'un projet vagrant. Il mentionne des paramètres qui ne figurent pas actuellement dans la documentation.

David Spreekmeester
la source