webdevqa.jp.net

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

驚くべきことに、Vagrantコマンドの動作に関するドキュメントは、「はじめに」チュートリアル全体のリファレンス以外にはありません。

私がこれまでに取り組んだこと:

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

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

96
Steve Bennett

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

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

34
Steve Bennett

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

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

  1. 例:gemコマンド。

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

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

  2. Vagrant ssh-config

    内部でvagrant sshを実行してVMにsshします。よく知られている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の電源がオフになったときにのみ適用できる特定の構成変更を適用します。 on。例:別のSATA仮想ディスクを接続するように。

  5. vagrant up

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

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

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

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

47
pyfunc

V1.1の現在のドキュメントの見栄えは良くても、v1よりも完全ではないのは本当に残念です。 「less is more」という信条は、ドキュメントの分野では機能しません...

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

8