Vagrant和synced文件夹:如何将所有者设置为默认流氓用户以外的用户?

时间:2015-08-19 06:06:20

标签: vagrant puppet vagrantfile synced-folder

我正在尝试为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之后才创建的用户?

1 个答案:

答案 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