无法更改Vagrant VM

时间:2016-08-19 18:54:47

标签: linux permissions vagrant puppet nfs

我已经在我的Vagrant VM中使用NFS挂载数月而没有任何问题来运行我们的puppet配置。正如您所知,每次使用puppet创建文件夹时,您必须指定其所有者和组,否则将使用默认值。我们已将默认设置为root:root 由于某种原因,也适用于其他一些文件/目录

Puppet尝试chown文件 root:root 失败但不应该因为 chown退出0 而没有更改所有者或组。 NFS和VirtualBox共享上的行为相同,但 puppet仅在使用NFS 共享时失败。

问题是 - 有没有合理的解释为什么木偶在改变文件的所有权时开始失败?它曾经工作了几个月,我仍然运行相同版本的 Vagrant VirtualBox

我发现了很多关于类似问题(更改所有权)的问题,并发现所有者和群组都没有改变。我只是不知道为什么puppet因为这个只在NFS上失败

Vagrantfile挂载部分

config.vm.synced_folder "../puppet", "/root/puppet", type: "nfs", mount_options: ["rw", "tcp", "fsc", "nolock", "noacl", "async"], nfs_udp: false
config.vm.synced_folder ".", "/media/src/project", type: "nfs", mount_options: ["rw", "tcp", "fsc", "nolock", "noacl", "async"], nfs_udp: false

Puppet登录NFS

Info: Applying configuration version '1471704237'
Notice: /Stage[main]/Farm_tooling::Webgrind/Exec[configure]/returns: executed successfully
Notice: /Stage[main]/Ulozto::Web::Lab/File[/media/src/ulozto/.local/]/owner: owner changed '501' to 'root'
Error: Failed to set group to '0': Operation not permitted @ lchown_internal - /media/src/ulozto/.local
Error: /Stage[main]/Ulozto::Web::Lab/File[/media/src/ulozto/.local/]/group: change from dialout to root failed: Failed to set group to '0': Operation not permitted @ lchown_internal - /media/src/ulozto/.local

Puppet登录VirtualBox共享

Info: Applying configuration version '1471704248'
Notice: /Stage[main]/Farm_tooling::Webgrind/Exec[configure]/returns: executed successfully
Notice: /Stage[main]/Ulozto::Web::Lab/File[/media/src/ulozto/.local/]/owner: owner changed 'vagrant' to 'root'
Notice: /Stage[main]/Ulozto::Web::Lab/File[/media/src/ulozto/.local/]/group: group changed 'vagrant' to 'root'
Notice: /Stage[main]/Ulozto::Pornfile::Remote/File[/var/www/pornfile-web/PornFile/App]/owner: owner changed 'vagrant' to 'root'

在NFS上运行puppet后的目录列表

drwxr-xr-x  4  501 dialout    136 Aug 19 05:40 .local

我实际上不知道拨号是什么,但501是我的帐户的ID - uid=501(northys)。木偶经营者之后仍然是一样的。

在VirtualBox共享上运行puppet后的目录列表

drwxr-xr-x  1 vagrant vagrant    136 Aug 19 05:40 .local

在木偶运行所有者和组仍然是vagrant:vagrant之后,但木偶并没有像在NFS装载情况下那样更改它。

1 个答案:

答案 0 :(得分:1)

我在这里找到了答案 https://serverfault.com/questions/487862/vagrant-os-x-host-nfs-share-permissions-error-failed-to-set-owner-to-1000

在我的VagrantFile中,我将其添加到映射中以使其工作:

:linux__nfs_options => ["no_root_squash"], :map_uid => 0, :map_gid => 0