Puppet中notify函数和notice资源之间到底有什么区别?

4
我可以用两种方式在Puppet中显示自定义消息,分别是:
notice("My extra information as a function")

或通过
notify{"My extra information as a resource":}

共同点:

  • 两者都在Puppet Master上进行评估。
  • 两者都可以访问事实。
  • 如果消息由变量组成,则两者将显示相同的字符串。

不同之处:

  • 执行顺序不同。函数在编译阶段首先被评估,然后才能满足资源需求。
  • notify可以设置为虚拟或导出资源,并具有重要的含义,而notice则没有。
  • notice无法显示调用路径(没有withpath => true)。
  • notice有一个名为fail的姐妹函数,它有权使清单的编译失败。由于notify在编译完成后开始工作,因此它不能做到这一点。

我觉得我可能错过了一些重要的方面,或者我在某些部分是错误的。比我更擅长Puppet的人能提供更多细节吗?


通知在被多次调用的函数中也很有用,因此任何通知资源都会失败其名称的唯一性要求。 - Bill McGonigle
1个回答

8
notify函数会向puppet agent发送一条日志信息,而notice函数则会在puppet server/masternotice日志级别中记录一条消息。对于errdebuginfowarning函数也是如此。

请注意,notify是一个受管理的资源,而notice是在主服务器上执行的函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接