Przepraszam za błędy językowe, które popełniłem. Próbuję zapobiec błędnemu pytaniu o hasło podczas montowania folderów współdzielonych przez NFS:
[server] Exporting NFS shared folders...
Preparing to edit /etc/exports. Administrator privileges will be required...
[sudo] password for timur: #!!!
Mam wiele zasobów internetowych, takich jak github i inne posty autora, ale nic nie działa dla mnie ...
Próbowałem znaleźć instrukcje tutaj . Nie mam głębokiej wiedzy praktycznej. Czy ktoś mógłby podać prawidłowe rozwiązanie mojego problemu?
command-line
virtualbox
sudo
nfs
vagrant
Timur Fajzrakhmanov
źródło
źródło
nfs-server
zainstalowana na twoim komputerze.Odpowiedzi:
Oficjalne dokumenty Vagrant obejmują teraz to: https://www.vagrantup.com/docs/synced-folders/nfs.html#root-privilege-requirement
Musisz dodać wpisy do
/etc/sudoers
pliku, a sposobem edycji jest wpisanie tego w terminalu:sudo visudo
Wpisz hasło i edytujesz plik. Będziesz chciał wkleić te linie poniżej (w zależności od tego, czy korzystasz z Vagrant na OS X czy Linux).
Jeśli nie znasz vima , w którym się otwiera, ta strona pomogła . Zasadniczo skopiuj odpowiedni blok tekstu poniżej. Następnie w visudo przejdź do miejsca, w którym chcesz wkleić tekst do pliku (koniec pliku jest w porządku) i naciśnij „i”, aby przejść do trybu wstawiania. CMD + V, aby wkleić tekst. Następnie naciśnij ESC, następnie wpisz,
:w
aby zapisać zmiany, a następnie:q
wyjść.Od wersji 1.7.3 plik sudoers w systemie OS X powinien zawierać następujące wpisy:
Linux powinien mieć następujące wpisy:
Pamiętaj, że zmieniają się one z jednej wersji Vagrant na inną, więc powyższe może być nieaktualne. Ważną rzeczą jest to, że dokumenty obejmują to teraz.
źródło
/var/log/auth.log
zawiera tylko polecenia, które są tam wymienione i mogę ręcznie sprawdzić, czy uprawnienia sudo działają./etc/sudoers.d
aby uniknąć przyszłych konfliktów podczas aktualizacji systemu operacyjnego. W systemie Ubuntu:sudo visudo -f /etc/sudoers.d/vagrant-nfs
lub OSX:sudo visudo -f /private/etc/sudoers.d/vagrant-nfs
sudo EDITOR=nano visudo
polecenia, który pozwala na ominięcie vim całkowicie.Dokładne polecenia mogą się zmieniać między wersjami Vagrant, więc nie można wymienić tych, które zawsze by działały.
W każdym razie zasady sudoersów w tym gistzie powinny być jeszcze dość blisko. Sprawdź /var/log/auth.log, czy ujawnia rzeczywiste polecenia twojej wersji Vagrant i odpowiednio dostosuj reguły.
źródło
Dla każdego, kto robi to dla OSX (korzystam z systemu MacOS Sierra w wersji 10.12.6) miałem problemy z uprawnieniami, nawet po dodaniu tych wierszy. Ten post naprawdę pomógł:
Zasadniczo jest to fakt, że sam nie masz ustawionych uprawnień do tego folderu. Musisz więc uruchomić:
źródło
dodanie
, nfs_export: false
na końcu liniiconfig.vm.synced_folder
w Vagrantfile rozwiązało to dla mnie.Jeśli masz już działającą konfigurację nfs i nie potrzebujesz, aby Vagrant nadpisywał ją przy każdym uruchomieniu, możesz po prostu wyłączyć zapisywanie do pliku eksportu.
To także rozwiązuje problem kolizji, jeśli masz więcej niż jednego Vagranta próbującego uzyskać dostęp do tego samego folderu, ponieważ na przykład masz 2 prawie identyczne Vagrant, jeden z uruchomionym php 5.6 i jeden z uruchomionym php 7.2.
źródło
TL&DR: Dodaj następujący override.vm.synced_folder „.”, „/ Vagrant”, wyłączony: true
Racjonalny: Domyślnie Vagrant próbuje wykryć dowolne foldery NFS / SMB. Chociaż rozumiem, dlaczego programiści dodali tę funkcję, dla mojego przypadku użycia jest to bardzo denerwujące. Rozwiązaniem jest po prostu WYŁĄCZ synchronizację folderów NFS.
Można to zrobić, zastępując opcję folderu synchronizowanego maszyny wirtualnej. Dołączyłem poniższą konfigurację dla cyfrowego oceanu, abyś mógł zobaczyć całą konfigurację.
źródło