問題タブ [lwrp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chef-infra - 別のクックブックから Chef LWRP を含める
小さな LWRPapp
クックブック ( trim_log
) を書きましたが、うまくいきました。ただし、現在、この特定の LWRP をクックブックに移動しcommons
て、他のクックブックでも使用できるようにしようとしています。trim_log
問題は、私のクックブックを含むどのクックブックにもリソース/プロバイダーをロードする方法がわからないことapp
です。
trim_log
コモンズ クックブックでプロバイダー/リソースを定義しました。trim_log
ここで、このプロバイダー/リソースをクックブックで使用したいと考えていますapp
。そこで利用できるようにするにはどうすればよいですか?
ruby - シェフ lwrp での ruby ライブラリのインストール、要求、および使用
認証を許可する API キーを使用して redis データベースをシードする LWRP を作成しています。問題は、Ruby 用の redis ライブラリを使用することです。私は周りを検索してオンラインでいくつかの例を見つけましたが、何もうまくいきませんでした。
AWS OpsWorks でこれを実行しているので、chef-solo を使用しています
redis gem をインストールする実行リストにレシピを含めてみました ( https://github.com/brianbianco/redisio/blob/master/recipes/redis_gem.rb )
また、クックブック内に宝石をインストールしようとしました。
また
これは、シェフの実行で発生しているエラーです
私はルビーが初めてなので、すべての助けに感謝します、ありがとう。
django - python_application Chef クックブックの使用
application_python クックブックで提供される django リソースを使用しようとしています: https://github.com/opscode-cookbooks/application_python
https://github.com/opscode-cookbooks/application_python/blob/master/examples/recipes-packaginator.rbで提供されている例に従い、
mt メタデータで
宣言depends application_python
すると、次のエラーが発生しました。
No resource found for django. Tried application_django, application_python_django, django
そこで、「django」だけでなく「application_python_django」リソースを使用して、別のクックブックから Chef LWRP をインクルードするのアドバイスに従ってみました。そして、私は得ました:
No resource found for application_python_django. Tried application_application_python_django, application_python_application_python_django, application_python_django
興味深いのは、アプリケーション リソースを削除して application_python_django リソースのみを残すと、次のような不満が生じることです。
You must supply a name when declaring a application_python_django resource
!!! それで、リソースが見つかったようです。そのため、リソース名を宣言すると、レシピは実行されますが、django リソースに対してアクションは実行されません (実際には、アプリケーション リソースにあった多くのパラメーターが欠落しています)。
ああ、アプリケーションを削除してリソースだけを django のままにすると、次のようにもなります。
Cannot find a resource for django on ubuntu version 12.04
さて、私はかなり迷っています。
私のレシピの最初の試みは次のとおりです。
tks、レオナルド
chef-infra - 通知と not_if を実装するためのシェフのカスタム lwrp を取得するにはどうすればよいですか?
カスタムの軽量リソースを作成します。しかし、notify と only_if は認識されません。
他の誰かがこれを機能させますか?
opsworks サプライ リソースでこれらを使用します。だから私はそれらを正しく使用していることを知っています。残念ながら独自のコードなので、コードを投稿できません。
ruby - シェフクックブック lwrp、new_resource.updated_by_last_action(true) を使用する最も簡単な方法
私はシェフ10用のLWRPを書いています。そして、そのリソースが他のレシピで実行されるとき、何かが変更された場合、「updated_by_last_action」としてマークされるべきです。しかし、何も変わっていない場合。updated_by_last_action は false にする必要があります。
例として、シェフのドキュメントhttp://docs.opscode.com/lwrp_custom_provider.html#updated-by-last-actionがあります。その例では、リソース テンプレートが変数内にラップされて、変更されたかどうかをテストし、updated_by_last_action ステータスを設定します。したがって、私のコードは次のようになります
ただし、プロバイダーが大きくなり、テンプレート、ファイル、ディレクトリ、マウントなどの多くのリソースを使用する場合.リソースが更新されたかどうかを確認するために、これらのすべてのリソースを例のような変数内にラップする必要があるため、さらに送信するこのプロバイダが更新されたステータス。
new_resource.updated_by_last_action(true)
すべてのリソースを変数内にラップするよりも、他のものを実行するためのより簡単でクリーンな方法があるかどうか疑問に思っています。LWRP がシェフの実行ごとに更新されているとマークされる前にnew_resource.updated_by_last_action(true)
内部に入れただけの場合、これは最適ではありません。action
end
ruby - Chef LWRP からノード タグを更新する
特定のユース ケースでは、カスタム LWRP を介してノードのタグを更新する必要があります。私は2つのアプローチを試しました:
「タグ」/「タグ解除」を使用します。これにより、次のエラーが発生します。
/li>を使用して
node[:tags].concat(<new_tags_array>)
。これは機能しますが、タグが保持されないため、検索に使用できません。
ここに欠けているものはありますか?
ありがとう
編集: 実際、質問は: プロバイダーからノード属性を更新することさえ可能ですか?
EDIT2:これにより、タグが正しく設定されます:
ただし、タグはchef-clientの実行ごとにリセットされるため、これらの新しいタグを含める前に(2回目のchef-clientの実行で)それらの存在を確認すると、タグは取得されません。
chef-infra - LWRP カスタム定義で nil:NilClass の未定義メソッドが得られるのはなぜですか
この LWRP のカスタム定義に問題があります。
リソース: user_postgresql。
プロバイダー: user_postgresql。
そして変更アクション。
そして私のload_current_resource:
そして、それはエラーです:
定義で current_resource が nil なのはなぜですかaction :alter
???