我遇到了puppet模块的问题,这个模块应该替换基于Redhat版本的/etc/ssh/sshd_config
文件。所以问题是,在应用代码之后,puppet删除了文件,而不是替换它。
有人请建议我的代码有任何问题。
这是我的木偶清单文件;
class os_vul_ssh {
case $::operatingsystemmajrelease {
'6':{$sshconfigfile = 'sshd_config.rhel6'}
'7':{$sshconfigfile = 'sshd_config.rhel7'}
}
package { "openssh-server":
ensure => installed,
}
service { 'sshd':
ensure => "running",
enable => true,
require => Package["openssh-server"],
}
file { "/etc/ssh/sshd_config":
owner => root,
group => root,
mode => '0644',
source => "puppet:///modules/os_vul/${::sshconfigfile}",
require => Package["openssh-server"],
notify => Service["sshd"],
}
}
答案 0 :(得分:3)
file { "/etc/ssh/sshd_config":
ensure => file, <----- this is missing
owner => root,
group => root,
mode => '0644',
source => "puppet:///modules/os_vul/${::sshconfigfile}",
require => Package["openssh-server"],
notify => Service["sshd"],
}
可能会继续这里,但这是第一个跳出来的问题。
顺便说一句,您可以使用以下方法清理代码:
file { "/etc/ssh/sshd_config":
ensure => file,
owner => root,
group => root,
mode => '0644',
source => "puppet:///modules/os_vul/sshd_config.rhel${::operatingsystemmajrelease}",
require => Package["openssh-server"],
notify => Service["sshd"],
}
如果您使用的是Facter 3,请考虑将您的事实更改为:
$facts['operatingsystemmajrelease']
并注意您的sshconfigfile
是一个局部变量,应作为局部变量$sshconfigfile
包含在您的文件资源中,而不是全局$::sshconfigfile
。