2012-07-11 105 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的意見,後初始化一個流浪項目。它提到了當前不在文檔中的參數。