我正在尝试为CoreOS
Vagrant VM中的Rails 2项目设置一个开发环境,该VM包含许多移动部件。
配置虚拟机后,会有一个Puppet
脚本安装所有的部分并启动它们。
我在本地计算机上运行的位(OS X 10.10.5)通过synced folder
公开到VM中,并显示在VM中的所有者{ {1}}和群组vagrant
。
为了使其与系统的其余部分一起使用,该文件夹的所有权需要设置为vagrant
。
简单地告诉projectx
设置权限并不起作用。他们不会改变。我通过手动Puppet
文件确认了这一点,但他们没有改变。
我不能仅仅在chown
中设置用户,直到Vagrantfile
完成其内容,没有Puppet
用户。
它看起来像我唯一的解决方案是破解projectx
文件并取消Puppet
用户的使用,但我宁愿找到一种方法来设置所有者而projectx
则更加清晰。
如何将synced folder
的所有权设置为在配置VM之后才创建的用户?
答案 0 :(得分:1)
不幸的是,没有简单的方法可以做到这一点。
常见的解决方法是在同步文件夹配置中使用uid和gid。这样,您可以创建同步文件夹作为稍后将添加到系统的用户。
projectx_uid = 1001
projectx_gid = 1001
config.vm.synced_folder "src/", "/srv/website",
owner: projectx_uid, group: projectx_guid0
这意味着应该在配置过程的最开始创建projectx
,以便它具有可预测的uid / gid
Vagrant的跟踪器中的相关问题:https://github.com/mitchellh/vagrant/issues/936