Ich benutze Trellis für meine WordPress-Entwicklung. Es funktioniert hervorragend, außer dass es mir schwer fällt, die Datei- (oder Verzeichnis-) Berechtigung im synchronisierten Ordner zu ändern.
Im Allgemeinen bin ich mit dem Standard-Berechtigungs-Setup einverstanden. Manchmal muss ich jedoch einigen Unterverzeichnissen des synchronisierten Hauptverzeichnisses (NFS) Schreibberechtigung erteilen.
Dies ist die Vagrant-Datei , die Ansible Playbook für die Hauptkonfiguration der VM verwendet (ich verwende VirtualBox). Ich bin weder ein Ruby-Programmierer noch habe ich mit Ansible gearbeitet. Wie es aussieht, ist der folgende Teil der Bereiche, in Vagrantfile
denen Dateiberechtigungen festgelegt werden:
if Vagrant::Util::Platform.windows? and !Vagrant.has_plugin? 'vagrant-winnfsd'
wordpress_sites.each_pair do |name, site|
config.vm.synced_folder local_site_path(site), remote_site_path(name, site), owner: 'vagrant', group: 'www-data', mount_options: ['dmode=776', 'fmode=775']
end
config.vm.synced_folder ANSIBLE_PATH, ANSIBLE_PATH_ON_VM, mount_options: ['dmode=755', 'fmode=644']
config.vm.synced_folder File.join(ANSIBLE_PATH, 'bin'), bin_path, mount_options: ['dmode=755', 'fmode=755']
else
if !Vagrant.has_plugin? 'vagrant-bindfs'
fail_with_message "vagrant-bindfs missing, please install the plugin with this command:\nvagrant plugin install vagrant-bindfs"
else
wordpress_sites.each_pair do |name, site|
config.vm.synced_folder local_site_path(site), nfs_path(name), type: 'nfs'
config.bindfs.bind_folder nfs_path(name), remote_site_path(name, site), u: 'vagrant', g: 'www-data', o: 'nonempty'
end
config.vm.synced_folder ANSIBLE_PATH, '/ansible-nfs', type: 'nfs'
config.bindfs.bind_folder '/ansible-nfs', ANSIBLE_PATH_ON_VM, o: 'nonempty', p: '0644,a+D'
config.bindfs.bind_folder bin_path, bin_path, perms: '0755'
end
end
Wie kann ich Änderungen an dieser Datei vornehmen, damit ich die Berechtigung für bestimmte Dateien und Ordner bei Bedarf steuern kann? Da sich das Ändern der Berechtigung im vagrant-synchronisierten Ordner auf dem Host-Computer nicht auf die virtuelle Maschine auswirkt, muss ich dies zumindest durch Ändern der Vagrant-Datei und anschließende erneute Bereitstellung tun können.
Wie kann ich dies leicht erreichen, das bei einer zukünftigen erneuten Bereitstellung bestehen bleibt?