如何从木偶清单中调用木偶提供者方法?

时间:2018-01-09 16:00:20

标签: puppet

我正在使用puppet forge中的ibm_installation_manager模块,它有点基础,因为IBM在完成幂等性的时候编写了Installation Manager。 参考:https://forge.puppet.com/puppetlabs/ibm_installation_manager

因此它不能很好地满足升级要求 - 因此模块不会检测是否需要升级,停止现有进程,进行升级然后再次启动进程。它只会检测是否需要升级并尝试安装所需的版本,如果这构成升级非常好,但由于运行实例可能会失败。

所以我需要实施一些"停止流程"升级前功能。

在这一点上我需要提一下我对红宝石的新手,对傀儡来说还是个新手。

模块使用的提供程序(imcl.rb)具有exists方法。 我检测升级是否会发生(以及停止实例)的理想方式是我的木偶清单能够以某种方式调用exists方法。这可能吗?

或者你会如何处理这个问题? 类似于imcl.exists(ibm_pkg [" my_imcl_pkg_resource"])

1 个答案:

答案 0 :(得分:1)

  

我检测升级是否会发生(以及停止实例)的理想方式是我的木偶清单能够以某种方式调用exists方法。这可能吗?

不,这是不可能的,至少没有任何有用的方式。您的清单描述了如何构建描述机器目标状态的资源的目录。在主/代理设置中,这发生在主服务器上。然后,该目录将用作单独步骤的输入,在该步骤中,目录将传输到目标计算机并在那里应用。正是在这第二步中,提供商参与其中。

如果您希望目录内容受目标机器当前状态的影响,那么Puppet机制就是以事实的形式将所需的状态详细信息传递给目录构建器。添加自己的事实相对简单。事实上,至少two distinct, non-exclusive mechanisms,在名称"外部事实和#34;之下。和#34;自定义事实"。