0
我正在使用脚本从用户收集生成规格信息,然后使用刀克隆和建立一个虚拟机规范。 CHEF然后将一些shell脚本复制到配置节点,然后使用“ssh ssh”执行这些脚本。CHEF /刀 - 运行shell脚本
这工作得很好:
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庆典:/tmp/C3_Component_Install.sh:/斌/庆典^ M:坏的解释:没有这样的文件或目录
这两个文件的最顶端看起来是这样的:
#!/bin/bash
如果我去了主机和尝试手动运行该脚本,下面所有的工作就好了:
- SHç 3_Component_Install.sh
- /斌/庆典C3_Component_Install.sh
- 在/ usr /斌/庆典C3_Component_Install.sh
- /tmp/C3_Component_Install.sh
所以我不知道什么是错。预先感谢您的帮助。
我在Windows上使用Atom,使用Vagrant实例将文件保存到共享目录中,因此我可以从Vagrant实例(CentOS 7)中执行Chef代码。你是说如果不是通过Atom保存文件,而是将文本复制到我的剪贴板中,然后将其粘贴到我的终端仿真器中的'nano'(文本编辑器)中,并放入Vagrant实例中,这不会解决我的问题?有没有办法解决我的问题,除了在Linux中本地执行所有文本编辑?或者是坚持使用模板方法的唯一解决方案?有关模板如何修复此问题?谢谢。 – Dan
Atom默认包含行结束选择器插件AFAIK,请参阅https://github.com/atom/line-ending-selector获取屏幕截图。制作那个'LF'。 – coderanger