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

3

我在Linux机器上设置了一个NFS共享。我的配方安装了Windows的NFS服务,我可以使用UNC路径或映射驱动器连接到NFS共享。我也可以手动挂载共享,成功地使用mount或net use。我现在想用Chef自动化这个过程,但是手动工作的相同命令在使用Chef时无法正常运行。我尝试了多种方法,但都没有成功。

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

参数错误:找不到网络路径。

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

参数错误:参数不正确。
execute "Mount" do
  command "net use X: \\\\d-devfs02.domain.com\\software"
  action :run
end

---- 开始输出 net use X: \d-devfs02.domain.com\software ---- STDOUT: STDERR: 系统错误 53。

找不到网络路径。 ---- 结束输出 net use X: \d-devfs02.domain.com\software ---- 运行 net use 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\software * ----

标准输出:

标准错误:'C:/Windows/System32/mount.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。

---- 结束执行 C:/Windows/System32/mount.exe \d-devfs02.domain.com\software * ----

C:/Windows/System32/mount.exe 文件明明存在于该位置,而且手动执行这个命令(以及所有 net use 命令)都可以正常工作,让我感到非常困惑。

手动执行 net use 和 mount 命令可以正常工作。我正在以自己的身份运行 chef-client,所以不是权限问题。出于某种原因,chef-client 找不到 mount.exe 文件,而且 net use 命令在路径上也存在问题。我不知道还能做什么。


第一段代码片段应该可以工作。它甚至在文档http://docs.opscode.com/resource_mount.html中有展示。您是否使用与手动运行命令相同的用户运行Chef?也许Chef没有访问共享文件的某些权限? - Draco Ater
我正在以自己的身份运行chef-client,并且当我手动运行命令时,我能够连接到共享。我想知道在chef-client运行的上下文中是否有任何更改会导致此问题?或者如果它是Windows客户端上的NFS共享,则可能需要进行一些更改? - wewantbananas
我建议您在Chef邮件列表chef@lists.opscode.com上提问,看看是否有其他人遇到了相同的问题。您还可以尝试在tickets.opscode.com上开启一个工单,因为这似乎是一个错误。 - sethvargo
即使过了7年,我仍然遇到同样的问题。这些东西都不起作用。 - Dr. Polar Humenn
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接