令人惊讶的是,没有关于Vagrant命令的文档,除了“入门”教程中的参考文献 .
到目前为止我已经解决了什么:
-
box
- 管理“boxes” -
destroy
- 关闭VM然后删除其存储的图像? -
gem
-
halt
- 关闭虚拟机 -
init
- 使用新的Vagrantfile准备一个目录 -
package
- 关闭VM,然后将其转换为'package',可以将其变成一个盒子? (或者其他的东西) -
provision
- 只运行配置(例如,Chef,Puppet ......)阶段 -
reload
- 修改VM配置(例如,重新应用Vagrantfile),重新启动VM,重新配置 -
resume
- 取消暂停(即unhibernate) -
ssh
- 打开与VM的SSH shell连接 -
ssh-config
-
status
-
suspend
- 休眠VM -
up
- 部分或全部:复制VM映像以创建新VM,对其应用配置,启动它
我有这些权利吗?其他的是什么?我仍然有点不清楚 reload
和 destroy
/ up
之间的确切区别 .
3 回答
我同意你的意见,vagrantup的文件是短的 .
可以从命令帮助系统中收集一些信息 .
gem
命令 .只需键入不带参数的命令:
vagrant gem -h
它会生成您可能需要的信息 .Vagrant ssh-config
:在引擎盖下,当你执行
vagrant ssh
到ssh进入VM . 它正在利用它众所周知的ssh密钥 . 有关此密钥的信息由vagrant ssh-config
提供 . 如果您想要将熟知密钥更改为您自己的私钥并准备使用该密钥框,这将非常有用 .有时,您可能希望在VM上使用基于ssh的自动化 . 在这种情况下,知道正在使用哪个密钥是有用的 . 你可以使用普通的ssh命令 -
ssh -i keyfile ..
vagrant status <vmname>
此命令是一个包装器,它提供有关vm状态的信息 . 它可以运行,保存和关闭 .
vagrant reload
如果对vagrantfile中的配置进行了任何更改,需要生效 . 您可能想要重新加载VM . 它重新运行vagrantfile中定义的配置,除非你不这样做 .
它不会破坏您从基本框创建的VM . 这意味着您对VM所做的所有更改,比如说在重新加载后在用户目录中创建了一个文件夹 .
它就像重启一样,它会关闭VM,然后应用某些配置更改,只有在VM关闭时才能应用 . 然后打开电源 . 示例:喜欢附加另一个SATA虚拟磁盘 .
vagrant up
这将读取您的配置文件 -
vagrantfile
,然后从基本框创建VM . Base Box就像一个模板 . 您可以从中创建许多VM .同样,
vagrant destroy
会破坏您的VM . 在这种情况下,您在其中进行的所有更改都将丢失 . 但是,这是一个很酷的想法,即您可以在创建新VM时从基本预定义状态开始 .我真的很喜欢使用它并且blogged about it .
In summary, it is a good wrapper over VirtualBox APIs and Commands . 您可以查看VirtualBox commands以更好地了解某些功能 .
我不确定它何时更改,但当前版本(1.6.3)有一个正确的命令列表,并且运行
vagrant list-commands
提供了更完整的列表:在运行
vagrant
时,从完整列表中遗漏的唯一命令是docker和rsync . 无论如何,在我的系统上 .现在,这似乎是明确的答案 .
真的太糟糕了,即使v1.1的当前文档看起来更好,它也不如v1完整 . 信条“少即是多”只是在文件领域不起作用......
我发现在涉及Vagrantfiles时,最完整的概述是在初始化一个流浪者项目之后,在一个新创建的Vagrantfile的注释中 . 它提到了目前文档中没有的参数 .