【问题标题】:Vagrant and synced folders: How to set the owner to a user other than the default vagrant user?Vagrant 和同步文件夹:如何将所有者设置为默认 vagrant 用户以外的用户?
【发布时间】:2015-11-12 06:59:31
【问题描述】:

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

我正在处理的位(位于我的本地计算机(OS X 10.10.5)上)通过 synced folder 暴露给 VM,并以所有者 vagrant 出现在 VM 中的正确位置和群组vagrant

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

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

我不能只在Vagrantfile 中设置用户,因为在Puppet 完成它的工作之前没有projectx 用户。

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

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

【问题讨论】:

  • Google 索引的相关错误消息:“Vagrant 无法挂载 VirtualBox 共享文件夹...没有这样的用户”

标签: vagrant puppet vagrantfile synced-folder


【解决方案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

【讨论】:

  • 效果很好。而我只是在puppet文件中手动指定了giduid
猜你喜欢
  • 1970-01-01
  • 2017-08-24
  • 2019-07-26
  • 2013-05-26
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多