問題タブ [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 - LWRP が冪等モードで実行されないのはなぜですか?
これは私action :create
のカスタム LWRP ですが、常に実行されます。冪等のアクションを行いたい。
これが私の実装です:
最後の行が機能しないのはなぜ@new_resource.updated_by_last_action(true)
ですか?
chef-infra - LWRP を作成すると、グローバル リソースが Chef リソース コンテキストに nil になるのはなぜですか
カスタム LWRP の作成は、リソースが Chef のリソース コンテキストに nil であることを報告しています。これは私の最初のステップでしたか?
ただし、グローバル変数の値を別のローカル変数に保存します。このような:
そして、問題は解決しました。
グローバル変数を使用した Chef リソース コンテキストに問題はありますか?
ruby - シェフのLWリソース属性のデフォルト値はどのように別の属性を参照できますか?
あるリソース属性のデフォルト値を別の属性の値に設定しようとしています。
作成中のTomcatクックブック用に、次の定義を含むリソースを定義しています。個別に設定できる「name」属性と「service_name」属性が必要です。サービス名が設定されていない場合、「名前」に指定されているものをデフォルトにしたい。
以下は期待どおりに機能しません。
2 行目の末尾にある ":default => :name" に注意してください。レシピの新しいブロックで自分のリソースを参照するとき
属性値は次のように割り当てられます
これは私が期待したものではありません。明示的に設定されていない限り、service_name を「foo_bar」にしたかったのです。
私はもう試した
しかし、それらはコンパイルされません。
私がやろうとしていることをする方法はありますか?
ruby - シェフの only_if 属性が true に等しい
問題:属性が「true」の場合にのみ実行するシェフ ステートメントがあります。しかし、それは毎回実行されます。
予想される動作:default[:QuickBase_Legacy_Stack][:dotNetFx4_Install] = "false"
dotnet4 をインストールしない場合 。
実際の動作:属性の設定に関係なく、dotnet4 がインストールされます。
私のコード:
属性ファイル:
レシピファイル:
chef-infra - Chef LWRP での git リソースの使用
LWRP (Chef 10) を使用して独自のデプロイ リソースを作成しようとしていますが、エラーが発生し、ドキュメントで例を見つけることができませんでした。
私のリソースファイルは次のようになります。
このリソースを使用しようとすると、次のエラーが発生します。
トレースで参照されるプロバイダー ファイルのブロックは次のとおりです。
印刷してみました@new_resource.deploy_tag
が、期待どおりの値が含まれているため、LWRP 内から git リソースが正しく機能していないだけだと思いますが、それを示すドキュメントを見つけることができませんでしたこのことをどのように呼ぶべきか。助言がありますか?
実際の答え:
次のように、リソース ブロックを使用する前にローカル変数を作成する必要があるようです。
ruby - レシピで Chef LWRP 属性にアクセスするにはどうすればよいですか
一部のデフォルトのchefリソースでは、呼び出された後に一部の属性にアクセスできます
カスタム LWRP でこれをどのように達成できますか (ここに例があります)
このプロバイダーでnew_resource.full_path
は、ファイル リソースのパスと等しくなるようにのプロパティを更新しようとしています。
しかしresource.full_path
、レシピでアクセスしようとするとnil
、期待されたものではなく/path/to/my/resource/relative/path
この例はかなり不自然です。実際のアプリケーション/理由は、https://github.com/peterjmit/chef-ssl-certのデフォルトのリソース/プロバイダーで確認できます。
chef-infra - 必要に応じてリソース :create アクションをスキップする方法
アクションだけのカスタム LWRP があり:create
ます (これもデフォルト アクションに設定されています)。
これで、ノードを収束するたびに、LWRP アクションが実行され、更新されたリソースの最終カウントに追加されます。他のリソースに「(up to date)」というメッセージが表示されていることに気付きました。
必要でない場合、LWRP が実行されないようにするにはどうすればよいですか?
私の LWRP は標準の Chef リソースの小さなセットにすぎないので、すべてのステータスを収集してラッパー リソースからプッシュする方法があると思います。