CHEF /刀 - 运行shell脚本

时间:2017-04-22 16:06:41

标签: bash chef knife

我使用脚本从用户收集构建规范信息,然后使用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

如果我转到主机并尝试手动运行脚本,以下所有工作都可以正常工作:

  • sh C3_Component_Install.sh
  • / bin / bash C3_Component_Install.sh
  • / usr / bin / bash C3_Component_Install.sh
  • /tmp/C3_Component_Install.sh

所以我不知道出了什么问题。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您正在使用Windows换行符保存文件,在处理过程中修复模板时,会为您重新创建cookbook_file。如果使用Unix换行符保存它将是相同的。