Puppet 链接傀儡提供者

Puppet 链接傀儡提供者,puppet,apache-nifi,Puppet,Apache Nifi,我正在使用并正在编写一个基于的自动化程序。这个工具是一个RubyGem,所以我想在我的应用程序中使用它作为傀儡类型/提供者 类型(lib/puppet/Type/nifi_pg.rb)如下所示: Puppet::Type.newtype(:nifi_pg)do @doc=“管理Nifi流程组” 保证的 newparam(:name)do 伊斯纳梅瓦尔 描述“进程组名称” 验证do |值| 结束 结束 newparam(:id)do 描述“进程组ID” 验证do |值| 结束 结束 结束 提供者

我正在使用并正在编写一个基于的自动化程序。这个工具是一个RubyGem,所以我想在我的应用程序中使用它作为傀儡类型/提供者

类型(lib/puppet/Type/nifi_pg.rb)如下所示:

Puppet::Type.newtype(:nifi_pg)do
@doc=“管理Nifi流程组”
保证的
newparam(:name)do
伊斯纳梅瓦尔
描述“进程组名称”
验证do |值|
结束
结束
newparam(:id)do
描述“进程组ID”
验证do |值|
结束
结束
结束
提供者(lib/puppet/Provider/nifi_pg/ruby.rb)如下所示:

require'nifi\u sdk\u ruby'
Puppet::Type.Type(:nifi_pg).provide(:ruby)do
def创建
nifi_client=nifi.new()
nifi_client.set_debug(true)
nifi\u客户端。创建\u进程\u组(:name=>resource[:name])
结束
def销毁
nifi_client=nifi.new()
nifi_client.set_debug(true)
nifi\u客户端。删除\u进程\u组(资源[:id])
结束
def存在吗?
假的
结束
结束
使用它很容易:

nifi_pg{“测试”:
确保=>存在
}
问题是我需要一些关于所创建资源的信息(如新流程组ID),以便使用它,例如,将模板上载到此新流程组。傀儡资源不会返回任何东西

有解决办法吗

我认为答案是否定的


这很好地解释了这一点。

可能有一种更简单的方法来实现这一点,但Puppet允许您这样做,您可以将其与
curl
结合使用,以点击并检索任何必要的进程组ID。将pgid提取到Ruby变量,并在下一个命令中引用它

这不是他所要求的。他想在一个目录应用程序中实现这一点,这在你的建议下是不可能的。
curl
脚本可以定义为一个引用Ruby代码的脚本吗?不,因为这些都是在应用程序之前的目录编译过程中解决的。我不知道,这是不可能的,因为事实和函数在编译时执行,您需要一个或两个来解决这个问题。但是,您是否可以编辑此理论模板的问题,即资源和模板是什么样的?这种情况可能有解决办法。或者,这是需要在节点上执行的吗?如果没有,也有一条前进的道路。