2017-10-13 7 views
0

ファイルをダウンロードするシェフスクリプトを作成しようとしています&ダウンロードされたファイルの内容を内部的に複数のファイルをダウンロードするIO.read(ダウンロードされたファイル)を使用してテンプレート変数に渡します。ダウンロードしたファイルには、ファイル名、URL、チェックサムなどの特定の形式があります。最初のremote_fileのデータに基づいてテンプレート内でremote_fileを再度使用する必要があります。シェフテンプレート/ステートメントとリモートファイル

リモートファイルが存在しないので、私は、コンパイル時エラー

Errno::ENOENT 
------------- 
No such file or directory @ rb_sysopen - .... 

私のユースケースを解決するための任意の提案を得ますか?

答えて

1

2パスモデルのため、収束時間までファイルの読み込みを遅延させる必要があります。 2パスモデルの詳細については、https://coderanger.net/two-pass/を参照してください。この場合、おそらくvariables foo: lazy { IO.read('something') }(シェフ13を実行していると仮定します)のようなものが必要です。

+0

提供されたリンクを確認しました。Chef Clientバージョン12.15.19を使用しています。私はそのシェフのバージョンで対処することができますか? –

+0

もう少し長いバージョンの 'variables lazy {{foo:IO.read( 'something')}}' – coderanger

関連する問題