Как добавить загруженный файл .box в Vagrant?

115

Как мне добавить загруженный .boxфайл в список доступных ящиков Vagrant? .boxФайл находится на внешнем диске.

Я пробовал запустить vagrant box add my-box d:/path/to/box, но Vagrant интерпретирует путь как URL.

Петрус Терон
источник
Не могли бы вы опубликовать весь вывод вместе с бродячей версией? Теоретически добавление
vagrant
3
Я в Ubuntu, и vagrant box add my-box /path/to/file.boxу меня все работало нормально.
maan81

Ответы:

179

Решение:

vagrant box add my-box file:///d:/path/to/file.box

Должен быть в формате URL.

Петрус Терон
источник
8
что, если я используюvagrant box add my-box ./path/to/mybox.box ?
Ракиб
вы также можете передать, -fчтобы заставить его снова загрузить ящик и заменить его, если он уже существует. напримерvagrant box add -f my-box http://some-url
Брэд Паркс
vagrant под macos и linux (2.2.2) работает с URI-путем к монашеству, поэтому схему file: // здесь можно как минимум опустить. Может быть, это изменение, связанное с конкретной версией, или с конкретными окнами, я скорее ожидаю последнего
Ойген Майер
90

Вы можете указать папку, в которой находится vagrant, и скопировать файл коробки в то же место. Затем после того, как вы можете запустить следующее

vagrant box add my-box name-of-the-box.box
vagrant init my-box
vagrant up

Просто чтобы проверить статус

vagrant status
Самира Тилакасири
источник
Я сделал, vagrant initи vagrant upмоя бродячая коробка работает. Но я не могу использовать ssh. Когда я это делаю, vagrant sshон говорит: «Машина, на которую вы пытаетесь подключиться по SSH, настроена на использование аутентификации на основе пароля. Бродяга не может ввести пароль за вас. Если вам будет предложено ввести пароль, введите тот же пароль, что и вы. настроили в Vagrantfile. " тогда как я ничего не настраивал в Vagrantfile. Я просто использую то, Vagrantfileчто было создано автоматически vagrant init. Когда я cat Vagrantfile, я не вижу ничего, что называется паролем, pem или чем-то еще
Ракиб
Если vagrant sshзапрашивается пароль, а используемый вами базовый ящик является общедоступным, скорее всего, это пароль vagrant.
Bender the Greatest
У меня та же ошибка, и бродяга с паролем ее не решила
Карим Самир
Пароль для современных ящиков MicrosoftPassw0rd!
Redsandro
27

Попробуйте сменить каталог на то, где .boxхранится

Запустите vagrant box add my-box downloaded.box, это может сработать, поскольку позволяет избежать абсолютного пути (в Windows?).

Терри Ван
источник
Я сделал, vagrant initи vagrant upмоя бродячая коробка работает. Но я не могу использовать ssh. Когда я это делаю, vagrant sshон говорит: «Машина, на которую вы пытаетесь подключиться по SSH, настроена на использование аутентификации на основе пароля. Vagrant не может ввести пароль за вас по сценарию. Если вам будет предложено ввести пароль, введите тот же пароль, что и вы. настроили в Vagrantfile. " тогда как я ничего не настраивал в Vagrantfile. Я просто использую то, Vagrantfileчто было создано автоматически vagrant init. Когда я cat Vagrantfile, я не вижу ничего, что называется паролем, pem или чем-то еще
Ракиб
9

Решение для Windows:

  • Откройте cmd или powershell от имени администратора
  • CD в ​​папку с .boxфайлом
  • vagrant box add --name name_of_my_box 'name_of_my_box.box'
  • vagrant box list должно появиться новое поле в списке

Решение для MAC:

  • Открытый терминал
  • CD в ​​папку с .boxфайлом
  • vagrant box add --name name_of_my_box "./name_of_my_box.box"
  • vagrant box list должно появиться новое поле в списке
langlauf.io
источник
4

В качестве альтернативы для добавления загруженного ящика можно создать файл json с метаданными. Таким образом можно добавить некоторые дополнительные детали. Например, для импорта окна и указания его версии создать файл:

{
  "name": "laravel/homestead",
  "versions": [
    {
      "version": "7.0.0",
      "providers": [
        {
          "name": "virtualbox",
          "url": "file:///path/to/box/virtualbox.box"
        }
      ]
    }
  ]
}

Затем запустите vagrant box addкоманду с параметром:

vagrant box add laravel/homestead /path/to/metadata.json
Джахангир
источник
3
F:\PuppetLab\src\boxes>vagrant box add precise32 file:///F:/PuppetLab/src/boxes/precise32.box
==> box: Adding box 'precise32' (v0) for provider:
    box: Downloading: file:///F:/PuppetLab/src/boxes/precise32.box
    box: Progress: 100% (Rate: 1200k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'precise32' (v0) for 'virtualbox'!
bhapat
источник
3

Сначала переименуйте Vagrantfile, затем

vagrant box add new-box name-of-the-box.box
vagrant init new-box
vagrant up

Просто чтобы проверить статус

vagrant status

вот и все

Ашфак
источник
1

Просто чтобы добавить описание еще одного случая. Мне нужно установить аналогичные конфигурации на основе Vagrant Ubuntu 18.04 на несколько машин Ubuntu. Загрузил ящик bionic64 на один, используя vagrant upс, Vagrantfileгде был указан этот ящик, затем скопировал папку .vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64в другие.

Дмитрий Винокуров
источник