Что именно делают команды Vagrant?

96

На удивление нет никакой документации о том, что делают команды Vagrant, кроме ссылок в руководстве по началу работы.

Что я до сих пор разработал:

  • box- управлять « ящиками »
  • destroy - выключить виртуальную машину, а затем удалить ее сохраненный образ?
  • gem
  • halt - выключить ВМ
  • init - подготовить каталог с новым Vagrantfile
  • package- выключить виртуальную машину, а затем преобразовать ее в «пакет», который можно превратить в коробку? (Или что-то)
  • provision - запустить только этап подготовки (например, Chef, Puppet ...)
  • reload - изменить конфигурацию виртуальной машины (например, повторно применить Vagrantfile), перезагрузить виртуальную машину, повторно подготовить
  • resume - un-Suspend (т.е. переход в спящий режим)
  • ssh - открыть соединение оболочки SSH с виртуальной машиной
  • ssh-config
  • status
  • suspend - перевести виртуальную машину в спящий режим
  • up - частично или полностью: скопируйте образ виртуальной машины для создания новой виртуальной машины, примените к ней конфигурацию, загрузите ее

Я имею это право? Какие еще? Мне все еще не совсем понятно, в чем разница между reloadи destroy/ up.

Стив Беннетт
источник
Текущая документация теперь намного лучше - vagrantup.com/v1/docs/index.html
JavaRocky
2
@JavaRocky, мне это не кажется. vagrantup.com/v1/docs/commands.html по- прежнему буквально не содержит информации о каждой подкоманде. Я ожидал бы больше информации о каждой команде в подобном руководстве (по сравнению с -h), а не меньше.
Мэтью Флашен
2
@JavaRocky - Если так, я не могу представить, какими они были раньше. Совершенно бесполезно.
DougW
Интересно, что, похоже, они действительно удалили список команд, сделав сайт еще менее информативным, чем раньше.
Стив Беннетт
Судя по текущим документам, «возобновление» является избыточным с «vagrant up», например, последнее возобновит работу машины, если она приостановлена, и повторно инициализирует ее, если она остановлена. Это точно? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

Ответы:

48

Я согласен с вами, что документация на vagrantup короче.

Некоторую информацию можно получить из справочной системы по командам.

  1. Например: gemкоманда.

    Просто введите команду без аргументов: vagrant gem -hи она выдаст информацию, которая может вам понадобиться.

    vagrant gemиспользуется для установки плагинов Vagrant через систему RubyGems. Фактически, vagrant gemэто всего лишь интерфейс к фактическому gem интерфейсу, с той разницей, что Vagrant устанавливает собственный каталог, в который устанавливаются драгоценные камни, чтобы они были изолированы от ваших системных гемов.

  2. Vagrant ssh-config:

    Под капотом, когда вы выполняете vagrant sshssh в виртуальной машине. Он использует хорошо известный ключ ssh. Информация об этом ключе предоставлена vagrant ssh-config. Это полезно, если вы хотите заменить хорошо известный ключ своим личным ключом и подготовить коробки для его использования.

    Также иногда вы можете захотеть использовать автоматизацию на основе ssh с вашими виртуальными машинами. В этом случае полезно знать, какой ключ используется. Вы можете использовать обычную команду ssh -ssh -i keyfile ..

  3. vagrant status <vmname>

    Эта команда является оболочкой, которая предоставляет информацию о статусе vm. Он может быть запущен, сохранен и отключен.

  4. vagrant reload

    Если вы внесете какие-либо изменения в конфигурацию в vagrantfile, которые должны вступить в силу. Вы можете перезагрузить виртуальную машину. Он повторно запускает подготовку, определенную в vagrantfile, если вы этого не попросите.

    Он не уничтожает виртуальную машину, созданную вами из базового блока. Это означает, что все изменения, которые вы внесли в свою виртуальную машину, например, созданную папку в вашем пользовательском каталоге, будут там после перезагрузки.

    Это похоже на перезагрузку, когда она отключает вашу виртуальную машину, а затем применяет определенные изменения конфигурации, которые могут быть применены только тогда, когда виртуальная машина была отключена. а затем включите его. Пример: как подключение еще одного виртуального диска SATA.

  5. vagrant up

    Это прочитает ваш файл конфигурации, vagrantfileа затем создаст виртуальную машину из базового блока. Базовая коробка похожа на шаблон. Из него можно создать множество виртуальных машин.

    Точно так же vagrant destroyуничтожает вашу ВМ. В этом случае все изменения, которые вы сделали внутри него, будут потеряны. Но это крутая идея, что вы можете начать с базового предопределенного состояния при создании новой виртуальной машины.

Мне очень нравится его использовать, и я писал об этом в блоге .

Таким образом, это хорошая оболочка для API и команд VirtualBox . Вы можете взглянуть на команды VirtualBox, чтобы лучше понять некоторые возможности.

pyfunc
источник
1
Из какой версии vagrant вы получаете весь этот вывод? Я использую 1.0.5 и ничего подобного не получаю. vagrant gem -hдает результат, который вы показали, но все остальные вообще ничего полезного не говорят.
DougW
2
Vagrant 1.2, похоже, пошел вспять. например, vagrant init -hпросто дает следующее: Использование: vagrant init [box-name] [box-url] -h, --help Распечатать эту справку
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. Кредо «меньше значит больше» просто не работает в области документации ...

Я обнаружил, что когда дело доходит до Vagrantfiles, наиболее полный обзор находится в комментариях к только что созданному Vagrantfile после инициализации vagrant-проекта. В нем упоминаются параметры, которых в настоящее время нет в документации.

Дэвид Сприкмистер
источник