Vagrantコマンドは正確には何をしますか?


96

Vagrantコマンドが何をするかについてのドキュメントは、「はじめに」のチュートリアル全体での参照以外、驚くほどありません。

これまでに解決したこと:

  • box-「ボックス」を管理する
  • destroy -VMをシャットダウンして、保存されているイメージを削除しますか?
  • gem
  • halt -VMをシャットダウンします
  • init -新しいVagrantfileでディレクトリを準備します
  • package-VMをシャットダウンしてから、ボックスに変換できる「パッケージ」に変換しますか?(か何か)
  • provision -プロビジョニング(シェフ、人形など)ステージのみを実行する
  • reload -VM構成を変更(例:Vagrantfileを再適用)、VMを再起動、再プロビジョニング
  • resume -中断を解除する(つまり、休止状態を解除する)
  • ssh -VMへのSSHシェル接続を開く
  • ssh-config
  • status
  • suspend -VMを休止状態にする
  • up -一部またはすべて:VMイメージをコピーして新しいVMを作成し、構成を適用して起動します

これらは正しいですか?他は何ですか?reloaddestroy/の正確な違いについてはまだわかりませんup


現在のドキュメントはずっと良くなりました-vagrantup.com/v1/docs/index.html
JavaRocky

2
@JavaRocky、それは私には思えない。 vagrantup.com/v1/docs/commands.htmlには、文字通りサブコマンドごとの情報はありません。このようなガイドでは、各コマンドについて(と比較して)より多くの情報が期待されます-h
Matthew Flaschen、

2
@JavaRocky-それがもっと良ければ、以前の状態は想像できません。まったく役に立たない。
DougW 2013

興味深いことに、実際にはコマンドのリストが削除されているため、Webサイトの情報が以前よりも少なくなっています。
スティーブベネット

現在のドキュメントから、「再開」は「vagrant up」と冗長であるように見えます。たとえば、後者はマシンがサスペンドした場合にマシンをレジュームし、停止した場合に再プロビジョニングします。それは正確ですか? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

回答:


48

vagrantupのドキュメントは短い方にあることに同意します。

一部の情報は、コマンドヘルプシステムから収集できます。

  1. 例:gemコマンド。

    引数なしでコマンドを入力するだけで、vagrant gem -h必要な情報が得られます。

    vagrant gemRubyGemsシステムを介してVagrantプラグインをインストールするために使用されます。実際、vagrant gemは実際のgem インターフェースのフロントエンドに過ぎませんが、Vagrantがgemがインストールされているカスタムディレクトリをセットアップして、システムgemから分離されるようになっている点が異なります。

  2. Vagrant ssh-config

    内部で、vagrant sshssh を実行してVMにアクセスします。よく知られているsshキーを利用しています。このキーの情報はによって提供されvagrant ssh-configます。これは、既知の鍵を自分の秘密鍵に変更し、それを使用するボックスを準備する場合に役立ちます。

    また、VMでSSHベースの自動化を使用したい場合もあります。その場合、どのキーが使用されているかを知ることは役に立ちます。通常のsshコマンドを使用できます-ssh -i keyfile ..

  3. vagrant status <vmname>

    このコマンドは、vmのステータスに関する情報を提供するラッパーです。実行、保存、電源オフの可能性があります。

  4. vagrant reload

    有効にする必要があるvagrantfileの構成に変更を加えた場合。VMをリロードすることができます。要求しない限り、vagrantfileで定義されたプロビジョニングを再実行します。

    ベースボックスから作成したVMは破棄されません。つまり、たとえば、ユーザーディレクトリにフォルダーを作成した場合など、VMに加えたすべての変更は、再読み込み後にも存在します。

    これは、VMの電源をオフにし、VMの電源がオフの場合にのみ適用できる特定の構成変更を適用する再起動のようなものです。次に電源を入れます。例:別のSATA仮想ディスクを接続するようなもの。

  5. vagrant up

    これにより、構成ファイルが読み取らvagrantfileれ、ベースボックスからVMが作成されます。ベースボックスはテンプレートのようなものです。そこから多くのVMを作成できます。

    同様に、vagrant destroyVMを破棄します。この場合、内部で行ったすべての変更は失われます。しかし、これは、新しいVMを作成するときに、事前定義された基本状態から開始できるという素晴らしいアイデアです。

私は本当にそれを使うのが好きで、それについてブログを書いています。

要約すると、これはVirtualBox APIおよびコマンドの優れたラッパーです。VirtualBoxコマンドを見て、いくつかの機能をよりよく理解することができます。


1
このすべての出力はどのバージョンのvagrantから取得しますか?1.0.5を使用していますが、何も表示されません。 vagrant gem -hあなたが示した出力を提供しますが、他のすべては何も役に立たないと言っています。
DougW 2013

2
Vagrant 1.2は後退したようです。たとえば、次のvagrant init -hように指定します。使用法:vagrant init [box-name] [box-url] -h、
Steve Bennett

34

いつ変更されたかはわかりませんが、現在のバージョン(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 コマンドのみです。私のシステムでは、とにかく。

それが今のところ決定的な答えのようです。


8

v1.1の現在のドキュメントの見栄えは良くても、v1よりも完成度が低いのは残念です。credo 'less is more'は、ドキュメンテーションの領域では機能しません...

Vagrantfilesに関しては、最も完全な概要は、Vagrantプロジェクトを初期化した後、新しく作成されたVagrantfileのコメントにあることがわかりました。現在ドキュメントにないパラメータについて言及しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.