python クラス/オブジェクト/関数を puppet ファイル (カスタム プロバイダーまたはその他の .rb ファイル) にインポートできますか? パペットを使用してPythonコードを実行する「exec」以外の方法はありますか?
1 に答える
0
Ruby にはsystem()
、外部の Python プログラムを実行できる方法があります。Ruby にはfork()
andもありexec()
、より詳細に制御できます。Puppet には、Ruby プラグイン コードで使用できる後者のラッパーもあります。
しかし、あなたは何か違うものを求めているようです。標準の C Ruby 実装はネイティブ (C) 拡張機能を提供し、Python には C API があります。したがって、原則として、Python インタープリターをネイティブ拡張を介して Ruby に埋め込むことが可能であり、Ruby --> C --> Python のパスに従って呼び出します。このような拡張機能は、カスタム関数、カスタム ファクト、リソース プロバイダー、さらには ERB テンプレートなど、Puppet がサポートするあらゆる種類の Ruby プラグインで使用できます。
実際には、埋め込みアプローチはお勧めできません。動作させることができると確信していますが、実行時のオーバーヘッドが大きく、不要な複雑さが大幅に増しているように思えます。
于 2016-04-14T15:12:18.227 に答える