2016-02-02 34 views
0

我们正在使用Puppet + Foreman通过检查自定义事实来监视环境中的更改。例如,只要自定义事实等于“真”,puppet就会通过发送给代理日志的消息调用Notify资源。 Puppet在代理报告中包含此消息,Foreman在UI中显示此消息。更改工头UI以忽略Puppet资源“通知”消息

问题在于,无论何时发出消息,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

更新: 我会改进的问题:有没有办法使用的通知资源,而不会造成傀儡报告,节点有办法改变了吗?含义只是将消息打印到客户端日志(因此消息将在报告中可见),但没有木偶将事件分类为应用配置?

的原因是,当傀儡触发通知资源,工头标志节点为活动的(改变)

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

UPDATE#3 从“Notify”资源类型切换到由Puppet Forge中的某个小伙子创建的自定义类型"echo"后,问题修复。谢谢!

回答

0

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

+0

我们尝试使用notice命令,但正如您所说,这在客户报告中不可见。 我们试图实现的是,当客户报告包含Notify消息时,Forman中的状态将保持不变。 也许这里的方向是改变福尔曼报告代码? – amirb

+0

我会改进问题:有没有办法使用Notify资源而不会导致puppet报告节点已经改变?含义只是将消息打印到客户端日志(因此消息将在报告中可见),但没有木偶将事件分类为应用配置? 原因是,当木偶触发Notify资源时,Foreman将该节点标记为活动(已更改) – amirb

+0

我发现这是我确切的情况:projects.theforeman.org/issues/1443是否有任何解决方法? – amirb