Puppet:订购箭头和通知箭头有什么区别?

Puppet: What's the difference between an ordering arrow and a notification arrow?

在官方 Puppet 文档中说有两个链接箭头: https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html

->(排序箭头) 使左侧资源先于右侧资源应用。用连字符和大于号书写。

~>(通知箭头) 导致首先应用左侧资源,如果左侧资源发生变化,则向右侧资源发送刷新事件。用波浪号和大于号书写。

谁能说清楚这两者的区别?

你提到的文档已经给出了最好的解释。如果您尝试通过简单的方式理解它,请使用现有示例。

Package['ntp'] -> File['/etc/ntp.conf'] ~> Service['ntpd']

对于 File['/etc/ntp.conf'],puppet 需要确保在创建或更新文件 ntp.conf 之前已安装软件包 ntp。没有重启请求。

但对于服务['ntpd'],ntp.conf 需要首先存在 - 这与 -> 的顺序相同。 * 但是如果puppet发现文件ntp.conf有任何变化(无论是创建还是更新),都需要重启服务ntp。这就是区别*.

有关在 Puppet 中排序的更多信息,请参阅这些文档:

Learning Puppet — Resource Ordering

并自己做一些测试以了解其工作原理。

  1. set Package['ntp'], File['/etc/ntp.conf'],Service['ntpd'] with the order.
  2. 运行 puppet 申请以确保,Package/File/Service 在系统上准备就绪。
  3. 在文件中进行更改 ntp.conf。
  4. 使用 puppet apply 命令启用 --debug 选项。调试日志将在后台为您提供详细信息 - 例如,您应该看到文件已更新并且 ntpd 服务已重新启动。