Как я могу получить/бродячую папку на ubuntu/xenial64

Я только что установил бродячий бокс с командой:

vagrant init ubuntu/xenial64

и загрузите его с помощью:

vagrant up --provider virtualbox

после ssh-ing Я не могу найти папку/бродягу

Что я делаю неправильно?

В соответствии с документацией должна быть папка /vagrant:

По умолчанию Vagrant поделится вашим каталогом проектов (каталог с Vagrantfile) до/бродяги.

Вот скриншот , где очевидно, что нет /vagrant folder

Моя среда хоста:

  • окна 7
  • Бродячая версия 1.8.1
  • Версия Vbox 5.0.20r106931

Вот мой бродячий файл:

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/xenial64"

  config.vm.provision "shell", path: "provision.sh"

  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = true

    # Customize the amount of memory on the VM:
    vb.memory = "4096"
    vb.cpus = "2"

    # Hack for nom global install
    # https://github.com/npm/npm/issues/7308
    vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]

  end
end

и вот мой файл обеспечения:

echo "------------------------------"
echo "--- Updating packages list ---"
echo "------------------------------"
apt-get -y update

echo "-----------------------"
echo "--- Installing curl ---"
echo "-----------------------"
apt-get -y install curl

echo "----------------------"
echo "--- Installing git ---"
echo "----------------------"
apt-get -y install git

echo "-----------------------------"
echo "--- Installing python-pip ---"
echo "-----------------------------"
apt-get -y install python-pip
yes | pip install --upgrade pip

echo "--------------------------"
echo "--- Installing node.js ---"
echo "--------------------------"
apt-get -y install  nodejs

echo "----------------------"
echo "--- Installing npm ---"
echo "----------------------"
apt-get -y install npm

Ответ 1

Update:

Эта проблема была окончательно исправлена ​​в версии v20160921.0.0 и выше официальной 16.04 бродячего бокса. Релиз до этого v20160909.0.0 также исправлен, но имеет еще одну несвязанную проблему, как указано в Poma в комментариях.

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

vagrant box update

Если вы по какой-то причине не хотите уничтожить свою виртуальную машину, вы можете применить мои первоначальные исправления ниже.

Оригинальное сообщение:

По-видимому, официальное изображение ubuntu/xenial64 нарушено, как указано в этот отчет об ошибке на панели запуска.

Вот цитата из комментариев Луиса Цукермана со всеми проблемами, которые по-прежнему нефиксированы по версии 20160627.0.0 из того, что я мог сказать:

Существует ряд проблем с официальной коробкой бродяг для xenial:

  • отсутствуют необходимые пакеты (синхронизированные папки не работают, без управления конфигурацией)
  • default/vagrant синхронизированная папка отключена.
  • vm name статично, поэтому вы можете иметь только один экземпляр окна на хосте

[...]

Эти шаги исправили проблемы 1 и 2 для меня:

  • ssh в поле и вручную установите отсутствующие гостевые дополнения

    vagrant ssh
    sudo apt-get install virtualbox-guest-utils
    exit 
    
  • вручную добавьте отсутствующую точку монтирования в Vagrantfile

    config.vm.synced_folder ".", "/vagrant/" # fix broken ubuntu/xenial64 image
    

Чтобы устранить третью проблему, вы должны указать уникальное имя в поле вручную, добавив опцию-специфику для VirtualBox для вашего Vagrantfile.

config.vm.provider "virtualbox" do |vb|
  vb.name = "This_Name_Is_Unique_For_This_Machine"
end

Ниже приведено более подробное обсуждение этой проблемы здесь, как указано в комментариях к этому ответу.

Ответ 2

Есть ли причина, по которой люди не используют bento/ubuntu-16.04?

Смотрите этот ответ: https://github.com/mitchellh/vagrant/issues/7155

поля, опубликованные каноническими в пространстве имен ubuntu для 16.04 очень нарушены. Они не следуют рекомендациям руководства о том, как построить коробку бродяг, и им не хватает ключевых компонентов, таких как гость дополнения, требуемые пакеты, или они делают такие вещи, как hardcode, hostname, чтобы сделать одновременные виртуальные машины невозможными.... В общем, пользователи добились большего успеха с коробками под bento Пространства имен. Распространенным заблуждением является то, что пространство имен, например "ubuntu", представляет собой каноническое пространство для ящиков Ubuntu. Это неверно.

Кажется, есть много причин НЕ использовать ящики ubuntu/xenial64 и просто использовать рабочий ящик из пространства имен bento вместо того, чтобы пытаться взломать ящики пространства имен ubuntu. Для некоторых людей бренд Ubuntu может быть более удобным, но я думаю, что он сломался с Vagrant.

Ответ 3

По какой-то причине ubuntu/xenial64 не поставляется с синхронизированной/бродящей папкой.

Мне пришлось настроить свой собственный в бродячем файле:

config.vm.synced_folder ".", "/vagrant"

Первым вариантом является источник (Windows), второй - цель (Ubuntu)

Vagrant Synced Folders

Ответ 4

Vagrant по умолчанию монтирует /vagrant папку на гостевой машине, которая синхронизируется с папкой, где находится Vagrantfile.

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

Сначала убедитесь, что у вас нет этой строки в вашем Vagrantfile, потому что это отключит синхронизированную папку:

config.vm.synced_folder ".", "/vagrant", disabled: true

Если у вас его нет, возможно, это ошибка с модулями virtualbox в вашей системе, и я бы рекомендовал вам проверить драйверы, выполнив следующие шаги.

Уничтожьте свою виртуальную машину:

vagrant destroy -f

Вы можете проверить версию своего ядра, используя:

uname -r

После этого установите заголовки для вашего ядра:

sudo apt-get install linux-headers-'uname-r'

Затем установите пакеты виртуальных пакетов для вашего ядра:

sudo apt-get install virtualbox virtualbox-dkms virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-additions-iso

Загрузите драйверы виртуальных боксов:

sudo modprobe vboxdrv

Теперь вы можете попробовать снова подключить виртуальную машину с бродягой:

vagrant up

Помните, что вы можете перенастроить свой vm, чтобы иметь столько общих папок, которые вы хотите, вы можете сделать это с помощью

config.vm.synced_folder "src/", "/srv/website"

Первый аргумент - это путь к папке на главном компьютере, второй - папка, которая будет присутствовать на гостевой машине.

Надеюсь, это поможет вам.

Ответ 5

Вы можете попробовать установить плагин добавления vbguest и посмотреть, помогает ли это.

$ vagrant plugin install vagrant-vbguest

vb-guest плагин репо

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

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