Cosa fanno esattamente i comandi Vagrant?


96

Sorprendentemente non c'è documentazione su ciò che fanno i comandi di Vagrant, a parte i riferimenti nel tutorial "per iniziare".

Quello che ho elaborato finora:

  • box- gestisci " scatole "
  • destroy - spegnere la VM quindi eliminare la sua immagine memorizzata?
  • gem
  • halt - spegni la VM
  • init - preparare una directory con un nuovo Vagrantfile
  • package- spegnere la VM, quindi convertirla in un "pacchetto" che può essere trasformato in una scatola? (O qualcosa)
  • provision - Esegui solo la fase di approvvigionamento (ad esempio, Chef, Puppet ...)
  • reload - modificare la configurazione della VM (ad esempio, riapplicare Vagrantfile), riavviare la VM, eseguire di nuovo il provisioning
  • resume - un-suspend (cioè, unhibernate)
  • ssh - aprire una connessione shell SSH alla VM
  • ssh-config
  • status
  • suspend - ibernare la VM
  • up - alcuni o tutti: copia un'immagine VM per creare una nuova VM, applica la configurazione ad essa, avviala

Ho questi diritti? Quali sono gli altri? Non sono ancora chiaro l'esatta differenza tra reloade destroy/ up.


La documentazione attuale è molto migliore ora - vagrantup.com/v1/docs/index.html
JavaRocky

2
@JavaRocky, non mi sembra. vagrantup.com/v1/docs/commands.html non ha ancora letteralmente informazioni per sottocomando. Mi aspetterei più informazioni su ogni comando in una guida come questa (rispetto a -h), non meno.
Matthew Flaschen

2
@JavaRocky - Se è meglio, non riesco a immaginare come fossero prima. Per niente utile.
DougW

Interessante, sembra che abbiano effettivamente rimosso l'elenco dei comandi, rendendo il sito Web ancora meno informativo di prima.
Steve Bennett

Dai documenti correnti sembra che "resume" sia ridondante con "vagrant up", ad esempio, quest'ultimo riprenderà una macchina se è sospesa e riapprovvigionerà se è interrotta. È esatto? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

Risposte:


48

Sono d'accordo con te sul fatto che la documentazione di vagrantup è sul lato più breve.

Alcune informazioni possono essere raccolte dal sistema di aiuto dei comandi.

  1. Ad esempio: gemcomando.

    Basta digitare il comando senza argomenti: vagrant gem -he produce le informazioni di cui potresti aver bisogno.

    vagrant gemviene utilizzato per installare i plugin Vagrant tramite il sistema RubyGems. In effetti, vagrant gemè solo un frontend gem dell'interfaccia effettiva , con la differenza che Vagrant imposta una directory personalizzata in cui vengono installate le gemme in modo che siano isolate dalle gemme di sistema.

  2. Vagrant ssh-config:

    Dietro le quinte, quando esegui vagrant sshssh in VM. Utilizza la sua nota chiave ssh. Le informazioni su questa chiave sono fornite da vagrant ssh-config. Ciò è utile nel caso in cui desideri cambiare la chiave ben nota con la tua chiave privata e preparare le scatole per usarla.

    Inoltre, a volte potresti voler utilizzare l'automazione basata su ssh con le tue VM. In tal caso, sapere quale chiave viene utilizzata è utile. Potresti usare il normale comando ssh -ssh -i keyfile ..

  3. vagrant status <vmname>

    Questo comando è un wrapper che fornisce le informazioni sullo stato di vm. Potrebbe essere in esecuzione, salvato e spento.

  4. vagrant reload

    Se apporti modifiche alla configurazione in vagrantfile che deve avere effetto. Potresti voler ricaricare la VM. Riesegue il provisioning definito nel vagrantfile a meno che non lo chiedi anche tu.

    Non distrugge la VM che hai creato da una scatola di base. Ciò significa che tutte le modifiche che hai apportato alla tua VM, come ad esempio la creazione di una cartella nella tua directory utente, saranno lì dopo il ricaricamento.

    È come il riavvio in cui spegne la VM e quindi applica determinate modifiche alla configurazione che possono essere applicate solo quando la VM è stata spenta. e quindi accenderlo. Esempio: come collegare un altro disco virtuale SATA.

  5. vagrant up

    Questo legge il file di configurazione vagrantfilee quindi crea una VM dal box di base. Base Box è come un modello. Puoi creare molte VM da esso.

    Allo stesso modo, vagrant destroydistrugge la tua VM. In questo caso tutte le modifiche apportate all'interno andranno perse. Ma questa è l'idea interessante che puoi iniziare da uno stato predefinito di base quando crei una nuova VM.

Mi piace molto usarlo e ne ho scritto sul blog .

In sintesi, è un buon wrapper per le API e i comandi di VirtualBox . Puoi dare un'occhiata ai comandi di VirtualBox per comprendere meglio alcune delle funzionalità.


1
Da quale versione di vagabondo ottieni tutto questo output? Sto usando 1.0.5 e non ottengo nulla del genere. vagrant gem -hfornisce l'output che hai mostrato, ma tutti gli altri non dicono nulla di utile.
DougW

2
Vagrant 1.2 sembra essere andato indietro. ad esempio, vagrant init -hfornisce solo questo: Uso: vagrant init [box-name] [box-url] -h, --help Stampa questo aiuto
Steve Bennett

34

Non sono sicuro di quando sia cambiato, ma la versione corrente (1.6.3) ha un elenco corretto di comandi e l'esecuzione vagrant list-commandsfornisce un elenco ancora più completo:

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

Gli unici comandi esclusi dall'elenco completo quando vengono eseguiti vagrantda soli sono quelli docker e rsync. Sul mio sistema, comunque.

Questa sembra essere la risposta definitiva, ora.


8

È davvero un peccato che, anche se la documentazione corrente per la v1.1 sembra migliore, è molto meno completa della v1. Il credo "less is more" semplicemente non funziona nell'area della documentazione ...

Ho scoperto che quando si tratta di Vagrantfile, la panoramica più completa è nei commenti di un Vagrantfile appena creato, dopo aver inizializzato un progetto vagabondo. Menziona parametri che non sono attualmente nella documentazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.