Puppet 关系元参数与链接箭头之间有什么区别?
页面具有关系元参数before、require、notify、subscribe和链接箭头->、~> 看来这些都可以达到同样的效果。使用他们给出的示例,您可以使用before或require来指定顺序,或者您也可以声明Package['openssh-server']->File['/etc/ssh/sshd_-config'] 这些选项之间有什么区别 订购的最佳实践是什么 另外,什么时候最好提前使用或通知vs require或订阅?这有关系还是只是偏好的问题Puppet 关系元参数与链接箭头之间有什么区别?,puppet,Puppet,页面具有关系元参数before、require、notify、subscribe和链接箭头->、~> 看来这些都可以达到同样的效果。使用他们给出的示例,您可以使用before或require来指定顺序,或者您也可以声明Package['openssh-server']->File['/etc/ssh/sshd_-config'] 这些选项之间有什么区别 订购的最佳实践是什么 另外,什么时候最好提前使用或通知vs require或订阅?这有关系还是只是偏好的问题 same ordering rel
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,您会发现在许多情况下,在一方定义关系比在另一方定义关系更为自然。当其中一个相关资源仅被有条件地声明时尤其如此:然后需要在条件端声明关系,以免无条件端有时有未解析的关系。当许多资源必须与一个资源相关时,也可能是这样:即使您知道所有涉及的资源,从多方面声明关系通常更容易
然而,在许多情况下,这是一个偏好问题