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