2

Chefでシンボリックリンクを作成する:

link "#{node[:tomcat][:home]}/webapps/myface.war" do
  to "/srv/scafandru/current/myface.war"
end

その時点で親ディレクトリがノードにないため、失敗します。

linkリソース内にdirectoryリソースに類似した属性が表示されなかったため、現在のrecursive trueアプローチは、を実行してディレクトリ構造が存在することを確認することです。

directory "#{node[:tomcat][:home]}/webapps" do
  recursive true
end

リンクする直前。

この動作をリンクリソース内にカプセル化するエレガントな方法はありますか?

4

1 に答える 1

2

コードを書きたくない場合は、ソリューションが最適です。

より良い解決策が必要な場合は、リンクのプロバイダーを拡張して再帰属性を追加できます。

これを行うには、次のように記載されているopscodeのドキュメントを参照してください。

既存のプロバイダーの拡張

別のプロバイダークラスを拡張するLWPを作成する場合は、それをミックスインとして実行し、その拡張クラスを使用してクックブックのライブラリディレクトリの下のライブラリに配置できます。

次に、LWRPは、拡張コアリソースにアクセスするために、プロバイダーの実装にそのライブラリを含めるように作成されます。transmission_torrent_file例については、BitTorrentプロトコルを介してファイルをダウンロードできるLWRPが含まれているTransmissionCookbookを参照してください 。このtransmission_torrent_fileLWRPは、既存のファイルおよびremote_fileリソースの拡張です。

于 2013-03-10T18:00:53.713 に答える