2012-07-11 141 views
88

令人惊讶的是没有关于Vagrant命令的文档,除了“入门”教程中的参考资料。Vagrant命令究竟做了什么?

我到目前为止已经摸索出:

  • box - 管理 “boxes
  • destroy - 关闭虚拟机,然后删除其存储的图像?
  • gem
  • halt - 关闭VM
  • init - 一个新的Vagrantfile准备目录
  • package - 关闭虚拟机,然后将其转换为可变成一箱“一揽子” ? (或其它)
  • provision - 只运行配置(如厨师,木偶......)阶段
  • reload - 修改VM配置(例如,重新Vagrantfile),重新启动虚拟机,另配
  • resume - 未暂停(即,unhibernate)
  • ssh - 启动SSH壳连接到VM ​​
  • ssh-config
  • status
  • suspend - 冬眠VM
  • up - 部分或全部:复制虚拟机映像创建一个新的虚拟机,应用配置它,引导它

我有这些吗?其他人是什么?我仍然不清楚reloaddestroy/up之间的确切区别。

+0

现在的文档现在好多了 - http://vagrantup.com/v1/docs/index.html – JavaRocky 2012-10-10 04:58:00

+1

@JavaRocky,它对我来说看起来并不像。 http://vagrantup.com/v1/docs/commands.html仍然没有每个子命令的信息。我希望在这样的指南中有更多*关于每个命令的信息(与'-h'相比),而不是更少。 – 2012-12-08 22:56:21

+2

@JavaRocky - 如果那样更好,我无法想象他们以前是什么样的。没有用处。 – DougW 2013-02-20 04:01:33

回答

30

我不知道,当它改变,但目前的版本(1.6.3)的命令的正确列表,运行vagrant list-commands给出了一个更加完整的清单:左

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 

唯一的命令运行时从完整列表中排除vagrant本身就是docker和rsync的。无论如何,在我的系统上。

这似乎是明确的答案,现在。

43

我同意你在vagrantup的文档较短。

可以从命令帮助系统收集一些信息。

  1. 例如:gem命令。

    只需键入不带参数的命令:vagrant gem -h,它会生成您可能需要的信息。

    vagrant gem用于通过RubyGems 系统安装Vagrant插件。实际上,vagrant gem只是实际的gem 接口的前端,不同之处在于,Vagrant设置了一个自定义的安装gem的目录,以便它们与您的系统宝石隔离。

  2. Vagrant ssh-config

    引擎盖下,当你执行vagrant ssh ssh到虚拟机。它利用了众所周知的ssh密钥。该密钥的信息由vagrant ssh-config提供。如果您想将知名密钥更改为您自己的私钥并准备使用该密钥的盒子,这很有用。

    有些时候,您可能希望使用基于ssh的虚拟机自动化。在那种情况下,知道正在使用哪个密钥是有用的。你可以做正常使用ssh命令 - ssh -i keyfile ..

  3. vagrant status <vmname>

    这个命令是一个提供关于虚拟机的状态信息的包装。它可能正在运行,保存并关闭。

  4. vagrant reload

    如果您在vagrantfile这就需要生效的配置进行任何更改。您可能需要重新加载虚拟机。它会重新运行vagrantfile中定义的配置,除非您不问。

    它不会破坏您从基础框创建的虚拟机。这意味着您对虚拟机进行的所有更改(如在用户目录中创建的文件夹在重新加载后都会在那里)。

    它就像重新启动它关闭虚拟机的位置,然后应用某些只能在虚拟机关闭时才能应用的配置更改。然后开启它。例如:连接另一个SATA虚拟磁盘。

  5. vagrant up

    这种读取配置文件 - vagrantfile,然后从基座盒创建一个VM。基本框就像一个模板。您可以从中创建多个虚拟机。

    同样,vagrant destroy会破坏您的虚拟机。在这种情况下,您在内部进行的所有更改都将丢失。但是,当你创建一个新的虚拟机时,你可以从基本的预定义状态开始。

我真的很喜欢它,并有blogged about it

总之,它是一个很好的包装VirtualBox API和命令。你可以看看VirtualBox commands以更好地理解一些功能。

+1

什么版本的流浪者你能得到所有这些输出?我使用的是1.0.5,我没有得到任何回报。 'vagrant gem -h'给出你所显示的输出,但其他所有人都说没有用。 – DougW 2013-02-20 03:58:18

+2

流浪者1.2似乎已经倒退了。例如'vagrant init -h'只是给出了这个:用法:vagrant init [box-name] [box-url] -h,--help打印此帮助 – 2013-07-19 06:02:10

8

这真的是太糟糕了,即使当前的v1.1文档看起来更好,但它比v1更不完整。信条'少就是多'只是不起作用的文件...

我发现,当涉及到Vagrantfiles,最完整的概述是在一个新创建的Vagrantfile的意见,后初始化一个流浪项目。它提到了当前不在文档中的参数。