Vagrant Up и раздражающий запрос пароля NFS

Извините за языковые ошибки, которые я сделал. Я пытаюсь запретить vagrant спрашивать пароль, когда он монтирует общие папки по NFS:

 [server] Exporting NFS shared folders...
 Preparing to edit /etc/exports. Administrator privileges will be required...
 [sudo] password for timur: #!!!

У меня есть много онлайн-ресурсов, таких как github и посты других авторов, но у меня ничего не работает ...

Я пытался инструкции были найдены здесь . У меня нет глубоких рабочих знаний. Так кто-нибудь может дать правильное решение для моей проблемы?

17
задан 29 January 2014 в 15:17

5 ответов

Официальные документы Vagrant теперь охватывают это: https://www.vagrantup.com/docs/synced-folders/nfs.html#root-privilege-requirement

Вам нужно чтобы добавить записи в файл /etc/sudoers и способ редактирования, то есть набрать его на терминале: sudo visudo

Введите свой пароль, и вы редактируете файл. Вы можете вставить эти строки ниже (в зависимости от того, используете ли вы Vagrant в OS X или Linux.

Если вы не знакомы с vim , в котором он открывается, эта страница помогла . По сути, скопируйте соответствующий блок текста ниже. Затем, в visudo, перейдите к месту, куда вы хотите вставить текст в файл (конец файла в порядке), и нажмите «i ", чтобы перейти в режим вставки. CMD + V, чтобы вставить ваш текст. Затем нажмите ESC, затем введите :w, чтобы сохранить изменения, а затем :q, чтобы выйти.

Начиная с версии 1.7 .3 , файл sudoers в OS X должен иметь следующие записи:

Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

И в Linux должны быть следующие записи:

Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/*
Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/* /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status
Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start
Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
%sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY

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

0
ответ дан 29 January 2014 в 15:17

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

В любом случае, правила sudoers в , эта суть должна быть еще довольно близка. Проверьте /var/log/auth.log, показывает ли он фактические команды для вашей версии Vagrant и адаптируйте правила соответствующим образом.

0
ответ дан 29 January 2014 в 15:17

Для тех, кто делает это для OSX (я на MacOS Sierra версии 10.12.6), у меня были трудности с разрешениями даже после добавления этих строк. Это сообщение действительно помогло:

https://github.com/cogitatio/vagrant-hostsupdater/issues/50

По сути, это тот факт, что у вас нет установленных прав доступа для этой папки. Итак, вам нужно запустить:

sudo chmod +a "$USER allow write,append" /etc/hosts
0
ответ дан 29 January 2014 в 15:17
  • 1
    Это может быть найдено в Google " символьная ссылка ubuntu". или здесь также. – Pilot6 20 July 2015 в 19:22

добавив , nfs_export: false в конце config.vm.synced_folder -линий в Vagrantfile, решил это для меня.

Если у вас уже есть работающий nfs-config, и вам не нужен Vagrant, чтобы перезаписывать его при каждом запуске, вы можете просто отключить запись в файл экспорта.

Это также решает проблему коллизий, если у вас есть более одного Vagrant, пытающегося получить доступ к одной и той же папке, например, у вас есть 2 почти идентичных Vagrant, один работает php 5.6 и один работает php 7.2.

0
ответ дан 29 January 2014 в 15:17

TL & DR: добавить следующее override.vm.synced_folder ".", "/ Vagrant", отключено: true

Rational: по умолчанию Vagrant пытается обнаружить любую NFS / SMB папки. Хотя я могу понять, почему разработчики добавили эту функцию, для моего варианта использования это очень раздражает. Решение состоит в том, чтобы просто отключить синхронизацию папок NFS.

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

 config.vm.define "droplet1" do |config|
 config.vm.provider :digital_ocean do |provider, override|
    override.vm.synced_folder ".", "/vagrant", disabled: true
        override.ssh.private_key_path = '~/.ssh/id_rsa'
        override.vm.box = 'digital_ocean'=
        override.vm.box_url = "https://github.com/devopsgroup-io/vagrant- 
 digitalocean/raw/master/box/digital_ocean.box"
    override.nfs.functional = false
            provider.image = 'ubuntu-14-04-x64'
            provider.region = 'nyc1'
            provider.size = '512mb'
       end
      end
    end
0
ответ дан 29 January 2014 в 15:17

Другие вопросы по тегам:

Похожие вопросы: