Tôi sử dụng Trellis cho sự phát triển WordPress của tôi. Nó hoạt động rất tốt, ngoại trừ tôi thấy khó thay đổi quyền (hoặc thư mục) trong thư mục được đồng bộ hóa.
Nói chung tôi ổn với thiết lập quyền mặc định. Tuy nhiên, đôi khi tôi cần cấp quyền ghi cho một số thư mục con của thư mục được đồng bộ hóa chính (NFS).
Đây là Vagrantfile sử dụng Playbook Ansible cho cấu hình chính của VM (Tôi sử dụng VirtualBox). Tôi không phải là lập trình viên Ruby và tôi cũng chưa từng làm việc với Ansible, tuy nhiên, bởi vẻ bề ngoài của nó, sau đây là một phần của Vagrantfile
quyền truy cập tệp đang được đặt:
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
Làm cách nào tôi có thể thay đổi tệp này theo cách để tôi có thể kiểm soát quyền đối với các tệp và thư mục cụ thể khi tôi cần. Do việc thay đổi quyền trong thư mục được đồng bộ hóa vagrant trên máy chủ không phản ánh trên Máy ảo, nên ít nhất tôi phải có thể làm điều đó bằng cách thay đổi Vagrantfile và sau đó cung cấp lại.
Làm thế nào tôi có thể đạt được điều này một cách dễ dàng mà sẽ tiếp tục cung cấp lại trong tương lai?