我在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在路径上存在问题。我不知道还能在这做什么。
答案 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。