Entschuldigung für die Sprachfehler, die ich gemacht habe. Ich versuche zu verhindern, dass Vagabunden nach dem Kennwort fragen, wenn freigegebene Ordner von NFS bereitgestellt werden:
[server] Exporting NFS shared folders...
Preparing to edit /etc/exports. Administrator privileges will be required...
[sudo] password for timur: #!!!
Ich habe viele Online-Ressourcen wie Github und Beiträge anderer Autoren gelesen, aber für mich funktioniert nichts ...
Ich habe versucht die Anleitung hier zu finden . Ich habe keine tiefgreifenden Kenntnisse. Könnte also jemand die richtige Lösung für mein Problem geben?
command-line
virtualbox
sudo
nfs
vagrant
Timur Fayzrakhmanov
quelle
quelle
nfs-server
auf Ihrem Computer installiert ist.Antworten:
Die offiziellen Vagrant-Dokumente behandeln dies nun: https://www.vagrantup.com/docs/synced-folders/nfs.html#root-privilege-requirement
Sie müssen der
/etc/sudoers
Datei Einträge hinzufügen und diese über das Terminal eingeben:sudo visudo
Geben Sie Ihr Passwort ein und Sie bearbeiten die Datei. Sie sollten diese Zeilen unten einfügen (abhängig davon, ob Sie Vagrant unter OS X oder Linux ausführen).
Wenn Sie nicht mit vim vertraut sind , in dem es geöffnet wird, hat diese Seite geholfen . Kopieren Sie im Grunde den entsprechenden Textblock unten. Gehen Sie dann in visudo zu der Stelle, an der Sie Text in die Datei einfügen möchten (das Ende der Datei ist in Ordnung), und drücken Sie "i", um in den Einfügemodus zu wechseln. CMD + V, um Ihren Text einzufügen. Drücken Sie dann ESC und geben Sie ein
:w
, um Ihre Änderungen zu speichern und dann:q
zu beenden.Ab Version 1.7.3 sollte die sudoers-Datei in OS X folgende Einträge enthalten:
Und Linux sollte diese Einträge haben:
Beachten Sie, dass sich diese von einer Version von Vagrant zu einer anderen ändern, sodass die oben genannten möglicherweise veraltet sind. Das Wichtige ist, dass die Dokumente dies jetzt behandeln.
quelle
/var/log/auth.log
nur die dort aufgelisteten Befehle enthalten sind und ich manuell überprüfen kann, ob die sudo-Berechtigungen funktionieren./etc/sudoers.d
, um zukünftige Konflikte beim Aktualisieren des Betriebssystems zu vermeiden. Auf Ubuntu:sudo visudo -f /etc/sudoers.d/vagrant-nfs
oder OSX:sudo visudo -f /private/etc/sudoers.d/vagrant-nfs
sudo EDITOR=nano visudo
command, um vim vollständig zu umgehen .Die genauen Befehle können sich zwischen den Vagrant-Versionen ändern, so dass es unmöglich ist, diejenigen aufzulisten, die immer funktionieren würden.
Wie auch immer, die Sudoer-Regeln in diesem Kern sollten noch ziemlich eng sein. Sehen Sie in /var/log/auth.log nach, ob die tatsächlichen Befehle für Ihre Vagrant-Version angezeigt werden, und passen Sie die Regeln entsprechend an.
quelle
Für alle, die dies für OSX tun (ich arbeite unter MacOS Sierra Version 10.12.6), fiel es mir schwer, Berechtigungen zu erhalten, selbst nachdem ich diese Zeilen hinzugefügt hatte. Dieser Beitrag hat wirklich geholfen:
Grundsätzlich ist es die Tatsache, dass Sie keine Berechtigungen für diesen Ordner selbst festgelegt haben. Also musst du laufen:
quelle
Hinzufügen
, nfs_export: false
am Ende derconfig.vm.synced_folder
-Linien in der Vagrantdatei, löste es für mich.Wenn Sie bereits eine funktionierende NFS-Konfiguration haben und Ihr Vagrant diese nicht bei jedem Start überschreiben muss, können Sie das Schreiben in die Exportdatei einfach deaktivieren.
Dies löst auch das Kollisionsproblem, wenn Sie mehr als einen Vagrant haben, der versucht, auf denselben Ordner zuzugreifen, wie zum Beispiel 2 nahezu identische Vagrants, einen mit PHP 5.6 und einen mit PHP 7.2.
quelle
TL & DR: Fügen Sie den folgenden override.vm.synced_folder ".", "/ Vagrant", disabled: true hinzu
Rational: Standardmäßig versucht der Vagrant, alle NFS / SMB-Ordner zu erkennen. Während ich verstehen kann, warum die Entwickler diese Funktion hinzugefügt haben, ist dies für meinen Anwendungsfall sehr ärgerlich. Die Lösung besteht darin, die NFS-Ordnersynchronisierung einfach zu deaktivieren.
Dies kann durch Überschreiben der Option "VM-synchronisierter Ordner" erreicht werden. Ich habe die folgende Konfiguration für Digital Ocean angehängt, damit Sie die gesamte Konfiguration sehen können.
quelle