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