3

我正在尝试在CoreOS具有许多移动部件的 Vagrant VM 中为 Rails 2 项目设置开发环境。配置 VM 后,会有一个Puppet脚本安装所有零碎并启动它们。

我正在处理的位在我的本地计算机(OS X 10.10.5)上,通过 a 暴露给 VM,synced folder并出现在 VM 中的正确位置,其中包含 ownervagrant和 group vagrant

为了让它与系统的其余部分一起工作,需要将该文件夹的所有权设置为projectx

简单地告诉Puppet设置权限是行不通的。他们不会改变。我已经通过手动chowning 文件确认了这一点,并且它们没有改变。

我不能只是将用户设置Vagrantfile为,直到Puppet完成它的工作才没有projectx用户。

看起来我唯一的解决方案是破解Puppet文件并消除projectx用户的使用,但我宁愿找到一种方法来设置所有者,synced folder因为这样会更干净。

如何将 a 的所有权设置synced folder给在配置 VM 之后才创建的用户?

4

1 回答 1

4

不幸的是,没有简单的方法可以做到这一点。

常见的解决方法是在同步文件夹配置中使用 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

于 2015-08-19T09:49:00.367 回答