0

我们使用 Puppet + Foreman 通过检查自定义事实来监控环境变化。例如,只要自定义事实等于“真”,puppet 就会调用 Notify 资源,并向代理日志发送一条消息。Puppet 在代理报告中包含此消息,Foreman 在 UI 中显示此消息。

问题在于,每当抛出消息时,Foreman 都会将此操作视为“已应用”,并且节点状态会更改为“活动”(蓝色图标)。我们希望将节点保持在“无更改”(绿色)并显示通知消息。

这在某种程度上可能吗?也许定义一个新的自定义资源类型?

这是木偶代码:

class mymodule::myclass::mysubclass {
if $::fact023 == 'fail' {
    notify {'mynotify1':
     message => "WARNING: Node ${::fqdn} failed fact023",
     loglevel => hiera('warnings_loglevel'),
   }   } }

在此处查看 Foreman 的屏幕截图

更新:我会细化这个问题:有没有办法在不导致 puppet 报告节点已更改的情况下使用 Notify 资源?意思只是将消息打印到客户端日志(因此消息将在报告中可见)但没有 puppet 将事件分类为应用配置?

原因是当 puppet 触发 Notify 资源时,Foreman 将节点标记为活动(已更改)

更新#2 我正在考虑更改工头报告文件,以便 UI 将忽略通知事件,以便节点的状态将保持不变,但仍会在报告中显示消息。有人可以指出我正确的方向吗?谢谢!

更新 #3 从“通知”资源类型切换到由 Puppet Forge 中的某个家伙创建的自定义类型“回声”后修复了问题。谢谢!

4

1 回答 1

0

目前尚不清楚您要完成什么。一种选择是使用通知功能而不是资源。函数在 puppet master 上执行,因此您的日志将最终出现在 puppet master 的日志中,而不是代理报告中。这也意味着它不会算作应用资源,并且节点应该看起来很稳定。

于 2016-02-04T06:29:03.920 回答