2017-04-22 8 views
0

私はスクリプトを使用してユーザーからビルドスペック情報を収集し、次にナイフを使用してクローンを作成し、仕様にVMを構築しています。 CHEFは、プロビジョニングされたノードにいくつかのシェルスクリプトをコピーし、 "knife ssh"を使ってこれらのスクリプトを実行します。CHEF /ナイフ実行シェルスクリプト

これは正常に動作します:

template '/path/to/filename.sh' do 
    source 'filename.sh.erb' 
    mode 755 
end 

これはしません:filename.sh.erbとfilename.shの

cookbook_file '/path/to/filename.sh' do 
    source 'filename.sh' 
    mode 755 
end 

内容は同じです。次のように私が取得エラーメッセージは次のとおりです。

DEMO-CCM2.t3fca.comのbash:/tmp/C3_Component_Install.sh:/ binに/ bashの^ M:悪い通訳:そのようなファイルやディレクトリはありません

両方のファイルの最上部に次のようになります。私はホストに移動し、うまく、手動で次の作業のすべてをスクリプトを実行しようとした場合

#!/bin/bash 

  • のsh C 3_Component_Install.sh
  • /binに/ bashのC3_Component_Install.sh
  • は/ usr/binに/ bashのC3_Component_Install.sh
  • /tmp/C3_Component_Install.sh

だから私は間違っているのか分かりません。助けを前にありがとう。

答えて

0

Windowsの改行でファイルを保存しています。このファイルは、処理中にテンプレートが固定されている間に作成されるcookbook_fileです。 Unix改行を使って保存すると、同じものになります。

+0

私はVagrantインスタンス(CentOS 7)内からシェフコードを実行できるように、ファイルを共有ディレクトリに保存してWindows上でAtomを使用しています。 Atomでファイルを保存するのではなく、テキストをクリップボードにコピーして、ターミナルエミュレータの「ナノ」(テキストエディタ)にペーストして、これが問題を解決できないようにするということですか?私の問題を解決する方法はありますか?Linuxで編集したテキストをすべて元に戻すことはできますか?または、テンプレートメソッドに固執する唯一のソリューションですか?テンプレートはこれを修正しますか?ありがとう。 – Dan

+0

Atomには、デフォルトでAFAIKという行末セレクタプラグインが含まれています。スクリーンショットについては、https://github.com/atom/lineingending-selectorを参照してください。それを 'LF'にする。 – coderanger

関連する問題