Бродячий пепел: sudo: не найден
При запуске моего бродячего ящика с небольшим 15 МБ изображением Busybox я впервые получаю сообщение об ошибке во время фазы
Mounting shared folders...
Кажется, Бродяга пытается что-то с sudo, что не установлено. Я получаю эту ошибку:
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mkdir -p /vagrant
Stdout from the command:
Stderr from the command:
ash: sudo: not found
Пока это работает, я могу войти в систему как root с паролем vagrant, но я думаю, что это не идеально?
Это мои настройки: https://github.com/rubo77/ffnord-example/blob/pyddhcpd/Vagrantfile
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
config.ssh.shell = 'ash'
(0..9).each do |i|
config.vm.define "gc-node0#{i}" do |node|
end
end
1 ответ
По умолчанию vagrant делит / синхронизирует каталог /vagrant
(guest) с каталогом текущего проекта, содержащим Vagrantfile
(хост), больше каталогов может быть разделено с помощью config.vm.synced_folder
Я не знаю, если по умолчанию /vagrant
можно отключить
Если вы не используете функцию общих каталогов, то отсутствует sudo
не проблема
Если ваша файловая система доступна для записи, вы можете создать /vagrant
каталог один раз, так что дальше up
Бродяга не должен пытаться sudo mkdir
снова;
но при условии, что вы используете VirtualBox (я не знаю о поведении / архитектуре других эмуляторов), вы столкнетесь с другой проблемой, для общих каталогов требуются модули ядра vboxsf
а также vboxguest
(из гостевых дополнений VirtualBox) для сборки (против запущенных исходных кодов ядра) и загрузки (insmod), а также команду mount.vboxsf
быть построенным и установленным в /sbin
Кроме того, ваш busybox требует включенной опции помощников по монтированию, потому что бродячее использование mount -t vboxsf
и не mount.vboxsf
непосредственно, когда vagrant пытается смонтировать общие каталоги, и эти требования не соответствуют, существует много времени до сбоя с ошибкой (минута / две или более).
Обратите внимание, что busybox (текущая стабильная) поддержка sudo
, просто отключено по умолчанию.
Если вы сами собираете buildroot из исходников, я могу сказать, что общая функция работает (мне удалось получить образ с busybox для работы, как ожидается vagrant), если вы используете какое-то предварительно собранное ядро /busybox... может быть проблемой, вы должны найти соответствующие двоичные файлы для vboxsf
, vboxguest
, mount.vboxsf
и если опция mount helpers отключена в вашем busybox, вам нужно найти обходной путь (возможно, изменение vagrant для использования mount.vboxsf
).