区分 Puppet 代码中的常规调用和一次性调用

Distinguishing between regular and one-time invocations in Puppet code

Puppet 脚本能否确定它是否作为常规配置的一部分被调用 运行,即 Puppet 代理是否定期应用配置(即 puppet agent),或者因为一次性操作(例如 puppet agent -tpuppet apply)?

我还没有在实践中尝试过这个,但以下可能会提供前进的方向:

command line (such as --test) are also available as Puppet master variables 上的设置(例如$settings::test)。

Puppet master 变量 $servername 标识 puppet agent 次运行的 Puppet master,并且(可能)undefpuppet apply 次运行。

因此,整体解决方案的配方可能如下所示:

$onetime = $settings::test or $settings::onetime or ($servername == undef)