Meine Vagrant-Box ist von einer Basis-Linux (wissenschaftliche Linux), während der Bereitstellung (mit Shell-Skripten), Apache ist installiert.Vagrant Huhn-und-Ei: Gemeinsamer Ordner mit UID = Apache Benutzer
Ich änderte vor kurzem die Vagrant Datei (v2) zu:
config.vm.synced_folder "public", "/var/www/sites.d/example.com",
:owner => "apache", :group => "apache"
Welche gut, wenn die Box arbeitet bereits bereitgestellt wird und nur neu gestartet.
Jetzt, nach einem vagrant destroy && vagrant up
erhalte ich die Fehlermeldung:
mount -t vboxsf -o uid=`id -u apache`,gid=`id -g apache`
/var/www/sites.d/example.com /var/www/sites.d/example.com
id: apache: User does not exist
Welche klar ist - wie bei der ersten Ausführung, Apache noch nicht installiert ist.
Ein hässlicher Workaround wäre natürlich, die grundlegende Bereitstellung mit dem 0 kommentiert auskommentieren, kommentieren und dann neu starten.
Gibt es einen sauberen Trick, um das zu lösen? Vor allem so, dass vagrant up
immer ohne Unterbrechungen läuft, auch wenn die Box neu ist.
Wie Sie Apache installieren? Eine Möglichkeit wäre, den synchronisierten Ordner mit User Vagrant zu erstellen und dann den Besitzer in Ihrem Provisionierungsskript/Kochbuch/etc. nachdem Apache installiert ist. – pauljm
Apache wird über yum installiert. Der Dokumentenstamm ist ein freigegebener Ordner. Ich bin nicht sicher, was passiert, wenn ich den Besitzer dieses Ordners ändern -> würde auch die Besitzer auf den freigegebenen Ordner im Host-System ändern? Aber im Grunde Vagrant erzwingt einen Benutzer bei der Montage, ich glaube nicht, dass das funktioniert (aber nicht versucht) – Alex
Ich glaube nicht, Besitzerwechsel auf den Gast-Ordner wirkt sich auf Berechtigungen auf den Host-Ordner (siehe http://StackOverflow.com/ Fragen/13566201/can-i-modifiziere-den-Besitz-für-einen-geteilten-Ordner-in-vagrant). Meine Annahme ist, dass der Host-Ordner den Benutzer vagrant als seinen Besitzer ausführt. Wenn es versucht, Besitzer zwischen Gast und Host zu synchronisieren, würde es ernsthafte Probleme geben, da der Host-Computer eine andere Gruppe von Benutzern als der Gast hat. Ich denke, Besitzerwechsel nach der Installation von Apache wird funktionieren. – pauljm