2014-12-29 3 views
1

동일한 우체투 가상 머신 (VM)을 사용하고 있는데, 동일한 메일 릴레이 서버를 사용하고 있습니다. VM은 꼭두각시에 의해 관리됩니다. 모든 VM에서 "위성 시스템"으로 postfix를 설치하고 구성하는 간단한 모듈을 만들었습니다. 아래의 모듈의 매니페스트 파일을 참조하십시오. 모듈은 다음과 같이 노드 블록에서 호출됩니다꼭두각시로 접미사를 다시 구성하는 방법은 무엇입니까?

node "mynode.com" { 
    class { 'postfix_satellite': mailname => 'mydomain.com', relayhost => 'myrelay.com' } 
} 

문제는이 솔루션을 설치하고 처음 실행에 접미사를 구성한다는 것입니다,하지만 미리 설정 파일의 템플릿이 변경 될 경우는 접미사-구성을 다시하지 않습니다. 미리 설정 파일 만 설치되고 dpkg-reconfigure -f noninteractive postfix을 수동으로 실행해야합니다. 어떤 생각이라도 환영합니다.

# Puppet module: postfix_satellite 
# 

class postfix_satellite ($mailname, $relayhost) { 

    case $operatingsystem { 
    ubuntu: { } 
    default: { fail("postfix_satellite: unsupported OS: ${operatingsystem}") } 
    } 

    $preseed_dir  = '/var/local/preseed' 
    $preseed_file = "postfix.preseed" 

    # -- Packages 

    package { 'postfix': 
    ensure   => present, 
    responsefile => "${preseed_dir}/${preseed_file}", 
    require     => File["${preseed_dir}/${preseed_file}"], 
    } 

    package { 'mailutils': 
    ensure => present, 
    require => Package['postfix'], 
    } 

    # -- Service  

    service { 'postfix': 
    ensure   => running, 
    enable   => true, 
    hasstatus  => true, 
    hasrestart  => true, 
    require => Package['postfix'], 
    } 

    file { $preseed_dir: 
    ensure   => directory, 
    owner   => root, 
    group   => root, 
    mode   => 755, 
    } 

    file { "${preseed_dir}/${preseed_file}": 
    ensure => present, 
    owner => root, 
    group => root, 
    mode => 644, 
    content => template("postfix_satellite/${preseed_file}.erb"), 
    } 
} 

답변

0

패키지 미리 설정 파일을 통해 후위 관리를 고집하는 경우 슬레지 해머 방식을 사용할 수 있습니다. 나는 신발에 있다면

exec { 'apt-get install --reinstall postfix': 
    refreshonly => true, 
    subscribe => File["${preseed_dir}/${preseed_file}"], 
    path  => '/bin:/usr/bin' 
} 

하지만, 나는 적극적으로 설치 후에도 접미사를 관리하는 existing module를 찾을 것입니다.

관련 문제