我已经设置了一个木偶模块来安装和保持bacula备份系统在许多系统上运行。我在puppet服务器和客户端都使用了puppet 3.7.5和SELinix。
我提出的公式的一部分是将SSL证书/密钥对传输到使用该模块的每个主机。因此,bacula可以在TLS上工作。
我在bacula配置清单中定义了这个:
file { "/etc/pki/tls/private/${::hostname}.mydomain.com.key":
notify => Service["bacula-fd"],
owner => "bacula",
group => "bacula",
mode => 0400,
require => Package["bacula-client","bacula-common"],
source => "puppet:///modules/bacula/${::hostname}/${::hostname}.mydomain.com.key",
}
file { "/etc/pki/tls/certs/${::hostname}.mydomain.com.crt":
notify => Service["bacula-fd"],
owner => "bacula",
group => "bacula",
mode => 0400,
require => Package["bacula-client","bacula-common"],
source => "puppet:///modules/bacula/${::hostname}/${::hostname}.mydomain.com.crt",
}
这一段时间以来一直很好用。但只有在最近添加的一些主机上,我正在尝试发送的密钥对中出现“无法检索信息”错误。
Error: /Stage[main]/Bacula::Config/File[/etc/pki/tls/certs/monitor1.mydomain.com.crt]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/bacula/monitor1/monitor1.mydomain.com.crt
Error: /Stage[main]/Bacula::Config/File[/etc/pki/tls/private/monitor1.mydomain.com.key]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/bacula/monitor1/monitor1.mydomain.com.key
这是奇怪的部分!我正在传输密钥和证书的所有目录对工作和非工作主机都拥有相同的所有权和权限!
这是一个不起作用的证书和密钥的目录列表:
/etc/puppet/environments/production/modules/bacula/files/monitor1:
total 8.0K
-rw-r--r--. 1 puppet puppet 2.0K Jun 16 21:53 monitor1.mydomain.com.crt
-rw-r--r--. 1 puppet puppet 3.2K Jun 16 21:53 monitor1.mydomain.com.key
这是一个包含证书和密钥的目录中的列表:
/etc/puppet/environments/production/modules/bacula/files/logs:
total 8.0K
-rw-r--r--. 1 puppet puppet 1.9K Apr 23 22:14 logs.mydomain.com.crt
-rw-r--r--. 1 puppet puppet 3.2K Apr 23 22:14 logs.mydomain.com.key
这些是目录本身的权限:
drwxr-xr-x. 2 puppet puppet 62 Jun 16 22:13 /etc/puppet/environments/production/modules/bacula/files/logs
drwxr-xr-x. 2 puppet puppet 70 Jun 16 22:14 /etc/puppet/environments/production/modules/bacula/files/monitor1
麻烦的是我可以说工作和非工作目录没有区别。
如果我在monitor1主机上使用bacula模块运行puppet,我会收到错误消息。如果我在日志主机上使用bacula模块运行puppet,一切正常!配置清单中的公式相同,两个目录不同但权限相同,但只有一个失败!这对我没有任何意义。
Puppet应该能够根据$ hostname事实为monitor1主机选择正确的目录名,就像它对日志主机一样。
我只是想知道我可能会遗漏哪些可以摆脱这个错误!