作为一项学习练习,我在Fedora 29开发箱上设置了CentOS 7 Vagrant VirtualBox机器。我正在使用Ansible配置虚拟机。在我的Vagrantfile中,按如下方式装载我的宿主项目文件:
config.vm.synced_folder "/home/roger/projects", "/var/www/projects",
owner: "vagrant",
group: "nginx",
mount_options: ["dmode=775,fmode=775"]
在我的Nginx Ansible角色中,除了安装和启动之外,我还执行以下操作:
- name: set SELinux Nginx access to web root
command: semanage fcontext -a -t httpd_sys_content_t "/var/www/projects(/*)?"
- name: persist SELinux access
command: restorecon -Rv /var/www/projects
通过浏览器访问Nginx时,出现403 Forbidden错误。如果我通过ssh将selinux设置为在vm上允许,则可以正确提供宿主项目目录中的文件。
进入/etc/selinux/targeted/contexts/files/file_contexts.local
的条目看起来正确:
/var/www/projects/* system_u:object_r:httpd_sys_content_t:s0
我还试图在vm的命令行上运行命令,以绕过Ansible的任何相关内容。
我想念什么?