我使用脚本从用户收集构建规范信息,然后使用knife克隆并构建VM到规范。然后CHEF将一些shell脚本复制到配置节点,然后使用" knife ssh"执行这些脚本。
这很好用:
template '/path/to/filename.sh' do
source 'filename.sh.erb'
mode 755
end
这不是:
cookbook_file '/path/to/filename.sh' do
source 'filename.sh'
mode 755
end
filename.sh.erb和filename.sh的内容完全相同。我得到的错误信息如下:
DEMO-CCM2.t3fca.com bash:/tmp/C3_Component_Install.sh:/ bin / bash ^ M:错误的解释器:没有这样的文件或目录
这两个文件的顶部如下所示:
#!/bin/bash
如果我转到主机并尝试手动运行脚本,以下所有工作都可以正常工作:
所以我不知道出了什么问题。提前感谢您的帮助。
答案 0 :(得分:0)
您正在使用Windows换行符保存文件,在处理过程中修复模板时,会为您重新创建cookbook_file。如果使用Unix换行符保存它将是相同的。