无法在Windows客户端上挂载NFS共享

时间:2014-01-29 21:19:48

标签: windows chef nfs

我在Linux机器上设置了NFS共享。我的配方安装了Windows的NFS服务,我可以使用UNC路径连接到NFS共享或映射驱动器。我也可以手动挂载共享,使用mount或net use成功。我正在尝试使用Chef自动执行此操作,但是当我烹饪它时,手动工作的相同命令无效。我尝试过多种方法,但都没有。

mount "X:" do
    device "\\\\d-devfs02.domain.com\\software"
    action :mount
end

ArgumentError:找不到网络路径。

mount "X:" do
    device "d-devfs02.domain.com:/software"
    fstype "nfs"
    action :mount
end

ArgumentError:参数不正确。

execute "Mount" do
  command "net use X: \\\\d-devfs02.domain.com\\software"
  action :run
end

----开始输出网络使用X:\ d-devfs02.domain.com \ software ---- STDOUT: STDERR:发生了系统错误53。

找不到网络路径。 ----结束网络使用输出X:\ d-devfs02.domain.com \ software ---- Ran net使用X:\ d-devfs02.domain.com \ software返回2

execute "Mount" do
  command "C:/Windows/System32/mount.exe \\\\d-devfs02.domain.com\\software *"
  action :run
end

----开始输出C:/Windows/System32/mount.exe \ d-devfs02.domain.com \ so ftware * ---- STDOUT: STDERR:'C:/Windows/System32/mount.exe'未被识别为内部或外部 rnal命令, 可操作程序或批处理文件。 ----结束输出C:/Windows/System32/mount.exe \ d-devfs02.domain.com \ soft 洁具* ---- Ran C:/Windows/System32/mount.exe \ d-devfs02.domain.com \ software *返回  1

这个让我大吃一惊。我不仅确认该文件存在于该位置,此命令(以及所有网络使用命令)在我手动运行时也能正常工作。

手动执行时,net use和mount命令有效。我正在以自己的身份运行chef-client,因此它不是权限问题。由于某种原因,Chef-client无法看到mount.exe,并且net use在路径上存在问题。我不知道还能在这做什么。

1 个答案:

答案 0 :(得分:0)

您使用的是64位Windows计算机吗?这可能是因为Ruby in Chef是一个32位的Ruby,因此Windows'有用的"文件系统重定向器"踢进去。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187.aspx

换句话说,32位Ruby看到的实际路径是C:\ Windows \ Sysnative,而不是C:\ Windows \ System32。