¿Qué hacen exactamente los comandos Vagrant?


96

Sorprendentemente, no hay documentación sobre lo que hacen los comandos Vagrant, aparte de las referencias a lo largo del tutorial de "introducción".

Lo que he trabajado hasta ahora:

  • box- administrar " cajas "
  • destroy - apagar la máquina virtual y luego borrar su imagen almacenada?
  • gem
  • halt - apaga la VM
  • init - preparar un directorio con un nuevo Vagrantfile
  • package- ¿Apagar la máquina virtual y luego convertirla en un 'paquete' que se puede convertir en una caja? (O algo)
  • provision - ejecutar solo la etapa de aprovisionamiento (por ejemplo, Chef, Puppet ...)
  • reload - modificar la configuración de la VM (por ejemplo, volver a aplicar Vagrantfile), reiniciar la VM, reaprovisionar
  • resume - anular la suspensión (es decir, anular la inhibición)
  • ssh - abrir una conexión de shell SSH a la VM
  • ssh-config
  • status
  • suspend - hibernar la máquina virtual
  • up - algunos o todos: copiar una imagen de VM para crear una nueva VM, aplicarle la configuración, arrancarla

¿Tengo estos derechos? ¿Qué son los otros? Todavía no tengo claro la diferencia exacta entre reloady destroy/ up.


La documentación actual es mucho mejor ahora - vagrantup.com/v1/docs/index.html
JavaRocky

2
@JavaRocky, no me lo parece. vagrantup.com/v1/docs/commands.html todavía no tiene literalmente información por subcomando. Esperaría más información sobre cada comando en una guía como esta (en comparación con -h), no menos.
Matthew Flaschen

2
@JavaRocky - Si eso es mejor, no puedo imaginar cómo eran antes. No es útil en absoluto.
DougW

Interesante, parece que en realidad han eliminado la lista de comandos, lo que hace que el sitio web sea aún menos informativo que antes.
Steve Bennett

De los documentos actuales, parece que "resume" es redundante con "vagrant up", por ejemplo, este último reanudará una máquina si se suspende y reaprovisionará si se detiene. ¿Es eso exacto? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

Respuestas:


48

Estoy de acuerdo con usted en que la documentación de vagrantup es más corta.

Se puede obtener cierta información del sistema de ayuda de comandos.

  1. Por ejemplo: gemcomando.

    Simplemente escriba el comando sin argumentos: vagrant gem -hy producirá la información que pueda necesitar.

    vagrant gemse utiliza para instalar complementos de Vagrant a través del sistema RubyGems. De hecho, vagrant gemes solo una interfaz para la gem interfaz real , con la diferencia de que Vagrant configura un directorio personalizado donde se instalan las gemas para que estén aisladas de las gemas de su sistema.

  2. Vagrant ssh-config:

    Debajo del capó, cuando ejecuta vagrant sshssh en VM. Está utilizando su conocida clave ssh. La información sobre esta clave es proporcionada por vagrant ssh-config. Esto es útil en caso de que desee cambiar la clave conocida por su propia clave privada y preparar cajas para usarla.

    También algunas veces, es posible que desee utilizar la automatización basada en ssh con sus máquinas virtuales. En ese caso, es útil saber qué clave se está utilizando. Podría usar el comando ssh normal -ssh -i keyfile ..

  3. vagrant status <vmname>

    Este comando es un contenedor que proporciona información sobre el estado de vm. Podría estar funcionando, guardado y apagado.

  4. vagrant reload

    Si realiza algún cambio en la configuración en vagrantfile que debe surtir efecto. Es posible que desee volver a cargar la máquina virtual. Vuelve a ejecutar el aprovisionamiento definido en el archivo vagrantfile a menos que usted también lo solicite.

    No destruye la máquina virtual que ha creado desde una caja base. Eso significa que todos los cambios que ha realizado en su VM, como por ejemplo, creó una carpeta en su directorio de usuario, estarán allí después de la recarga.

    Es como reiniciar donde apaga su VM y luego aplica ciertos cambios de configuración que se pueden aplicar solo cuando la VM se ha apagado. y luego enciéndalo. Ejemplo: como adjuntar otro disco virtual SATA.

  5. vagrant up

    Esto lee su archivo de configuración - vagrantfile y luego crea una máquina virtual desde la caja base. La caja base es como una plantilla. Puede crear muchas máquinas virtuales a partir de él.

    Del mismo modo, vagrant destroydestruye su VM. En este caso, se perderán todos los cambios que haya realizado dentro del mismo. Pero esa es la idea genial de que puede comenzar desde un estado base predefinido cuando crea una nueva máquina virtual.

Realmente me gusta usarlo y he escrito un blog al respecto .

En resumen, es un buen envoltorio para las API y los comandos de VirtualBox . Puede echar un vistazo a los comandos de VirtualBox para comprender mejor algunas de las capacidades.


1
¿De qué versión de vagabundo obtienes todo este resultado? Estoy usando 1.0.5 y no obtengo nada por el estilo. vagrant gem -hda el resultado que ha mostrado, pero todos los demás no dicen nada útil.
DougW

2
Vagrant 1.2 parece haber retrocedido. por ejemplo, vagrant init -hsolo da esto: Uso: vagrant init [box-name] [box-url] -h, --help Imprime esta ayuda
Steve Bennett

34

No estoy seguro de cuándo cambió, pero la versión actual (1.6.3) tiene una lista adecuada de comandos y la ejecución vagrant list-commandsproporciona una lista aún más completa:

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

Los únicos comandos que quedan fuera de la lista completa cuando se ejecuta vagrant solo son los de la ventana acoplable y rsync. En mi sistema, de todos modos.

Esa parece ser la respuesta definitiva, ahora.


8

Realmente es una lástima que, aunque los documentos actuales de la v1.1 se ven mejor, son mucho menos completos que la v1. El credo 'menos es más' simplemente no funciona en el área de documentación ...

Descubrí que cuando se trata de Vagrantfiles, la descripción general más completa está en los comentarios de un Vagrantfile recién creado, después de inicializar un proyecto vagabundo. Menciona parámetros que no se encuentran actualmente en la documentación.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.