fileC
他の 2 つのファイルfileA
とfileB
. 私の現在のセットアップでは、3 つのファイルすべてがクックブックにあり、クックブック ファイル リソースとして宣言されています。
しかし、それは冗長に感じます。より大きなファイルを他の 2 つの関数として宣言したいと思います。
が最初に必要になったときfileC
、ファイル リソースの内容をIO.read(file1) + IO.read(file2)
. しかし、fileA
とfileB
はコンパイル時に存在しないため、レシピが新しいノードにデプロイされるとすぐに失敗します。
クックブックをデプロイできる場所に関する基礎となる Ruby オブジェクトの情報にアクセスしようとしました。しかし、調べれば調べるほど、私のレベルの Chef/Ruby の知識ではそれが可能であるという確信が持てなくなりました。リソース ↔ プロバイダーのギャップが広すぎるようです。
cat fileA fileB >fileC
次の理由から、このタイプのソリューションは避けたいと思います。将来的には、C を必要とするノードと A/B を必要とするノードを区別する必要が生じる可能性があります。
冗長性に対処する方法についてのアイデアはありますか?