Puppet 关系元参数与链接箭头之间有什么区别?

Puppet 关系元参数与链接箭头之间有什么区别?,puppet,Puppet,页面具有关系元参数before、require、notify、subscribe和链接箭头->、~> 看来这些都可以达到同样的效果。使用他们给出的示例,您可以使用before或require来指定顺序,或者您也可以声明Package['openssh-server']->File['/etc/ssh/sshd_-config'] 这些选项之间有什么区别 订购的最佳实践是什么 另外,什么时候最好提前使用或通知vs require或订阅?这有关系还是只是偏好的问题 same ordering rel

页面具有关系元参数before、require、notify、subscribe和链接箭头->、~>

看来这些都可以达到同样的效果。使用他们给出的示例,您可以使用before或require来指定顺序,或者您也可以声明Package['openssh-server']->File['/etc/ssh/sshd_-config']

这些选项之间有什么区别

订购的最佳实践是什么

另外,什么时候最好提前使用或通知vs require或订阅?这有关系还是只是偏好的问题

same ordering relationship
package { 'openssh-server':
  ensure => present,
  before => File['/etc/ssh/sshd_config'],
}
file { '/etc/ssh/sshd_config':
  ensure  => file,
  mode    => 600,
  source  => 'puppet:///modules/sshd/sshd_config',
  require => Package['openssh-server'],
}

same notification relationship:
file { '/etc/ssh/sshd_config':
  ensure => file,
  mode   => 600,
  source => 'puppet:///modules/sshd/sshd_config',
  notify => Service['sshd'],
}
service { 'sshd':
  ensure    => running,
  enable    => true,
  subscribe => File['/etc/ssh/sshd_config'],
}

是的,关系元参数和链接操作符是实现相同目的的不同方法。元参数的使用时间更长

链接运算符的区别在于,它们可以在资源声明范围之外使用,而无需覆盖资源参数。覆盖并不总是可能的。它们与资源收集器结合使用时特别有用,例如:

Group<||> -> User<||>
元参数通过作为参数来区分。除其他外,这意味着它们的值可以从资源默认值和/或变量或类参数中提取

对于在许多情况下是否选择链接箭头或元参数(两者都是可行的),没有一致的最佳实践。我个人倾向于选择元参数,当一个或两个资源的性质中的关系似乎是固有的,这是很多时候

至于before/notify与require/subscribe,您会发现在许多情况下,在一方定义关系比在另一方定义关系更为自然。当其中一个相关资源仅被有条件地声明时尤其如此:然后需要在条件端声明关系,以免无条件端有时有未解析的关系。当许多资源必须与一个资源相关时,也可能是这样:即使您知道所有涉及的资源,从多方面声明关系通常更容易


但是,在许多情况下,是的,这是一个偏好问题。

是的,关系元参数和链接操作符是实现相同目的的不同手段。元参数的使用时间更长

链接运算符的区别在于,它们可以在资源声明范围之外使用,而无需覆盖资源参数。覆盖并不总是可能的。它们与资源收集器结合使用时特别有用,例如:

Group<||> -> User<||>
元参数通过作为参数来区分。除其他外,这意味着它们的值可以从资源默认值和/或变量或类参数中提取

对于在许多情况下是否选择链接箭头或元参数(两者都是可行的),没有一致的最佳实践。我个人倾向于选择元参数,当一个或两个资源的性质中的关系似乎是固有的,这是很多时候

至于before/notify与require/subscribe,您会发现在许多情况下,在一方定义关系比在另一方定义关系更为自然。当其中一个相关资源仅被有条件地声明时尤其如此:然后需要在条件端声明关系,以免无条件端有时有未解析的关系。当许多资源必须与一个资源相关时,也可能是这样:即使您知道所有涉及的资源,从多方面声明关系通常更容易

然而,在许多情况下,这是一个偏好问题