2016-09-14 6 views
1

私は人形モジュールに問題があり、このモジュールはRedhatバージョンに基づいて/etc/ssh/sshd_configファイルを置き換える必要があります。だから問題は、コードを適用した後に、人形を置き換えずにファイルを削除したということです。人形コードが置き換えられる代わりにファイルを削除しました

誰かが私のコードに間違いを示唆してください。

ここは私の人形マニフェストファイルです。

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

パペット実行のデバッグ出力が少し役に立ちます – ptierno

答えて

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

+0

また、ファイルリソースには 'ensure'のデフォルト値がありません。ですから、この答えは 'ensure => file'を加えることで正しいです... https://github.com/puppet/puppet/blob/master/lib/puppet/type/file/ensure.rb#L35-L36 – ptierno

関連する問題