2017-03-10 9 views
0
  1. どのようににアクセスすると、ライブラリ関数のにアクセスします。
  2. どのように既存のコミュニティ料理ブックリソースのカスタムアクション属性を追加します。

はじめに:削除:作成または:扇子の料理は、名前付きリソース二つの作用を有する "sensu_check" を持っています。レシピで約200の小切手が書かれています。ヘルパーライブラリのシェフリソースプロパティにアクセスする方法

レシピを実行すると、望ましくないすべてのサーバーで200のチェックがすべて構成されます。これは適用可能なチェックのみがそのタイプのサーバーで構成される必要があるためです。

私はcheck_name、適用可能なサーバーの種類が記載されているチェックのハッシュを1つ作成しました。

current_checkが現在のサーバで適切かどうか、またはそのホスト名に基づいていないかどうかを判断する1つのライブラリ関数が記述されています。

問題:ライブラリ関数内の現在のリソース名すなわちプロパティ "tomcat_service_check" を取得する方法を

1)。リソーススニペット -

sensu_ckeck "tomcat_service_check" do 
    command "sh start.sh" 
    subscriber "tomcat" 
    ... 
    action :create or :delete (we want to add :ignore with custom provider) 
end 

2)は、別のカスタムアクションの属性を追加する方法はあります:カスタムプロバイダと「sensu_check」リソース(コミュニティ・クックブック)で無視されます。 Yesの場合、現在のリソースが無視された状態で実行されていないことを実行時にシェフに伝える方法。

答えて

0

このデータに直接アクセスすることはできませんが、そうする必要はありません。

all_of_the_checks.each do |check_name| 
    if check_applies_to_host?(node, check_name) 
    sensu_check check_name do 
     # Whatever else 
    end 
    end 
end 

パート2については、既存のカスタムリソースに新しいアクションを直接追加することはできません。非DSL宣言メソッドを使用する場合、それをサブクラス化することができますが、通常はそうすることはできません。

関連する問題