更改Foreman UI以忽略Puppet资源“通知”消息

时间:2016-02-02 17:24:37

标签: puppet notify theforeman

我们正在使用Puppet + Foreman通过检查自定义事实来监控环境的变化。例如,只要自定义事实等于'true',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'),
   }   } }

See screenshot of Foreman here

更新: 我将改进这个问题:是否有办法使用Notify资源而不会导致puppet报告节点已更改?含义只是将消息打印到客户端日志(因此消息将在报告中显示)但没有puppet将事件分类为应用配置?

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

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

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

1 个答案:

答案 0 :(得分:0)

目前还不完全清楚你想要完成什么。一种选择是使用notice function而不是资源。函数在puppet master上执行,因此日志将最终出现在puppet master的日志中而不是代理报告中。这也意味着它不会被视为应用资源,并且该节点应该看起来是稳定的。