Puppet(或类似产品)是否适合用于处理基本但重要的质量变化?
是的,可以通过这种方式使用。我用它来支持外部客户端系统。
我不希望任何服务器都能看到它不应该看到的任何配置
如果您使用的是人偶,则一定不能启用自动签名。自动签名允许主机自动请求证书。您的配置和权限几乎可以肯定直接与证书中的CN绑定。您不希望随机计算机联机并能够声称它们实际上是具有所有秘密高安全性内容的系统。
如果您真的很偏执,可以调整人偶文件服务器设置以创建仅某些系统可以访问的共享。文件服务器访问基于证书。
我不希望Puppet进行不应做的任何更改,也不希望还原服务器上所做的任何手动更改。
有两种允许本地更改的方法。
我经常使用的一种方法如下。基本上,如果您将列表传递给source
,则人偶会尝试列表中的每个项目。因此,我在列表中添加了第一项以指向本地文件。
file { '/etc/ssh/sshd_config':
ensure => present,
source => ["/etc/ssh/sshd_config_local",
"puppet:///modules/ssh/$ssh_config_file"],
...
}
另一种选择是利用符号链接。如果有人要使用人偶版本,他们会符号链接到文件的人偶版本。如果他们想在本地维护其配置,则不会创建符号链接。
file { '/etc/ssh/sshd_config_puppet':
ensure => present,
source => "puppet:///modules/ssh/$ssh_config_file",
...
}
另一种可能性是使用augeas进行行级更改,而不是更改整个文件。对您所做的更改要非常保守。