6

我正在尝试设置一个 Vagrant 环境来托管 Snowplow ( https://github.com/snowplow )。当我从 cygwin shell 启动 vagrant

$vagrant up && vagrant ssh

我进入了一个 Ubuntu 来宾映像(12.04),当我尝试使用 ansible 将 java8 安装到此环境中时,我收到以下消息:

vagrant@precise64:~$ ansible-playbook /vagrant/ansible-playbooks/java8-gradle.yml --inventory-file=/vagrant/home/ansible/ansible_hosts --connection=local 错误:文件/vagrant/home/ansible /ansible_hosts 被标记为可执行,但未能正确执行。如果这不应该是可执行脚本,请使用chmod -x /vagrant/home/ansible/ansible_hosts.

该文件确实是777:

-rwxrwxrwx 1 vagrant vagrant 3 月 3 日 24 日 19:03 ansible_hosts*

但是这个相同的文件被同步到主机(Windows)并且cygwin将文件显示为644:

-rw-r--r-- 1 rcoe 域用户 24 Mar 3 14:03 ansible_hosts

在无头(VirtualBox)Vagrant 环境中运行是否存在不允许对同步到主机的文件设置权限的已知问题?

谢谢。

4

1 回答 1

11

这是一个已知的缺陷,但据报道不是错误:从虚拟机中更改共享文件夹权限

有一个很好的教程,介绍如何在 vagrant 中设置同步文件夹,以便满足您的需求 - 如果您导航到该链接,它将显示以下代码段

config.vm.synced_folder "./", "/var/sites/dev.query-auth", id: "vagrant-root",
   owner: "vagrant",
   group: "www-data",
   mount_options: ["dmode=775,fmode=664"]

这显示了如何调整同步文件夹的权限。

或者,您也可以使用其他同步文件夹的方法,例如 rsync(记住权衡是什么)

config.vm.synced_folder "/Users/ryansechrest/Projects/Sites", "/var/www/domains", 
   type: "rsync"

更多关于这里

于 2015-10-10T04:41:47.813 回答