【发布时间】:2017-02-05 17:29:54
【问题描述】:
我在 CentOS Linux 7.2 版上使用以下 Puppet 版本:
# puppetserver -v
puppetserver version: 2016.5.0.11
我有一个 Win 代理节点,以后可能会有更多。 Win节点代理版本:
C:\Windows\system32>puppet --version
4.8.1
我想禁用代理 runinterval永久,以便在需要时仅从我的 Puppet 服务器推送。我看到几个链接并尝试将以下行放入 Puppet 服务器的 /etc/puppetlabs/puppet/puppet.conf 文件中。我还重新启动了服务器,但代理仍在获取目录。
[agent]
daemonize=false
我还想知道是否可以仅在特定节点上禁用runinterval。如果是,怎么做?
【问题讨论】:
-
您有一个很好的答案来解释如何防止代理发出目录请求,但我不清楚您希望如何实现从主节点到其他节点的任何类型的推送。当然,不是通过 Puppet,除非这是我不知道的 PE 功能。 Puppet从未有推送功能,尽管在 Puppet 4 之前它有一个远程触发目录请求功能(这需要代理运行,但不一定配置为发出目录请求) .
-
虽然我没有进入实现,但我认为
mco将有助于推动更改。在禁用代理服务的同时,这不可能吗? -
您可以使用 MCollective 使代理程序按需执行目录运行。如果这可以满足您的需求,那么很好。但是,从技术上讲,它不是推送,也不是核心 Puppet 促成的。这些细微差别对您来说可能并不重要。
-
这是否意味着我必须保持代理服务启用?如果是这种情况,那么我可能必须将
runinterval设置为一个非常大的数字,使其有效地被禁用。 -
不,如果您打算使用 MCollective 来触发目录运行,那么您不需要启用 Puppet 服务。我主要是指出,这样做在技术上并不是一种推动。这对您来说可能无关紧要,但在某些可能重要的细节上确实有所不同。例如,通过推送,代理不需要能够启动与主节点的连接,但通过您的方法,他们将需要能够这样做,即使他们只会在您选择的时间这样做。