Vagrant命令究竟做什么?

令人惊讶的是没有关于Vagrant命令的文档,除了“入门”教程中的引用外。

到目前为止,我所做的是:

  • box – pipe理“ 盒子 ”
  • destroy – closures虚拟机,然后删除其存储的图像?
  • gem
  • halt – closures虚拟机
  • init – 准备一个新的Vagrantfile的目录
  • package – closures虚拟机,然后将其转换为“包”,可以变成一个盒子? (或者其他的东西)
  • provision – 只运行configuration(例如,厨师,木偶…)阶段
  • reload – 修改虚拟机configuration(例如,重新申请Vagrantfile),重启虚拟机,重新configuration
  • resume – 不中断(即不中断)
  • ssh – 打开到VM的SSH shell连接
  • ssh-config
  • status
  • suspend – hibernate虚拟机
  • 部分或全部:复制VM映像以创build新VM,对其应用configuration,启动它

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

我同意你的意见, vagrantup的文件是较短的一面。

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

  1. 例如: gem命令。

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

    vagrant gem用于通过RubyGems系统安装Vagrant插件。 事实上, vagrant gem只是实际的gem界面的前端,不同之处在于,stream浪者设置了一个自定义的目录,在这个目录中安装了gem,这样它们就与系统gem隔离开来了。

  2. Vagrant ssh-config

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

    也有的时候,你可能想使用基于SSH的自动化与您的虚拟机。 在这种情况下,知道正在使用哪个密钥是有用的。 你可以使用普通的ssh命令 – ssh -i keyfile ..

  3. vagrant status <vmname>

    这个命令是一个包装器,提供有关vm状态的信息。 它可能正在运行,保存和closures。

  4. vagrant reload

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

    它不会破坏您从基础框创build的虚拟机。 这意味着您对虚拟机所做的所有更改,比如说在用户目录中创build一个文件夹,在重新加载之后将会在那里。

    这就像重新启动虚拟机的电源,然后应用某些configuration更改,只有当虚拟机已closures电源时才能应用此更改。 然后启动它。 例如:连接另一个SATA虚拟磁盘。

  5. vagrant up

    这将读取您的configuration文件 – vagrantfile ,然后从基本框中创build一个虚拟机。 基本框就像一个模板。 您可以从中创build多个虚拟机。

    同样, vagrant destroy破坏你的虚拟机。 在这种情况下,你在里面所做的所有更改将会丢失。 但是这是一个很酷的想法,当你创build一个新的虚拟机时,你可以从基本的预定义状态开始。

我真的很喜欢使用它,并已经博客了 。

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

我不知道什么时候改变了,但是当前版本(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。 无论如何,在我的系统上。

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

这真的是太糟糕了,即使当前的v1.1文档看起来更好,但它比v1更不完整。 信条“less就是多”只是在文档方面不起作用…

我发现,当涉及到stream浪文件时,在初始化一个stream浪项目之后,最全面的概述是在新创build的stream浪文件的评论中。 它提到了目前不在文档中的参数。