꼭두각시 : 구성 파일을 수정 한 후 서비스를 강제로 다시 시작


21

마스터 저장소에서 관리 서버 중 하나로 퍼펫을 통해 새 버전의 구성 파일을 다운로드 한 경우 관련 서비스가 다시 시작되도록하려면 어떻게해야합니까?

일반적인 시나리오-새로운 munin 또는 apache 구성이 있다고 가정 해 봅시다. 꼭두각시 클라이언트가 발견하고 로컬 파일을 덮어 씁니다 ... 그리고 ...-서비스가 다시 시작 / 다시로드되도록하는 방법은 무엇입니까?

고마워요!

답변:


23

통지하는 대안은 subscribe입니다.

file { "/etc/sshd_config":
    source => "....",
}

service { sshd:
    ensure => running,
    subscribe => File["/etc/sshd_config"],
}

차이점은 관계가 다른 쪽 끝에서 설명된다는 것입니다. 예를 들어, apache가 /etc/apache/httpd.conf를 구독하도록 만들 수 있지만, 아파치 클래스가 가지고있는 모든 호스트에 대해 아는 것은 아니므로 vhost 파일이 아파치를 알릴 수 있습니다.

유사한 이중 종단 상황이 요구 및 이전에 적용됩니다. 특정 상황에서 더 의미가있는 문제 일뿐입니다.

Chad가 언급했듯이 꼭두각시가 지속적으로 서비스를 시작하려고하면 프로세스 매개 변수에 적용 할 정규 표현식 인 패턴 매개 변수를 추가해야합니다. 기본적으로 퍼펫은 서비스를 중지하고 다시 시작합니다. "hasrestart => true"를 추가하면 "restart"매개 변수에 지정된 명령을 사용하여 서비스를 다시 시작합니다.


22

내가 찾은 것 같습니다.

file { "/etc/sshd_config":
    source => "....",
    notify => Service[sshd]
}

service { sshd:
    ensure => running
}

우리는 그것이 어떻게 작동하는지 볼 것입니다. 어쨌든 주제에 대한 당신의 생각은 환영합니다.


1
예. Puppet Type Reference의 "Metaparameters"( reductivelabs.com/trac/puppet/wiki/TypeReference#metaparameters ) 에서 자세한 내용을 확인할 수 있습니다.
Chad Huneycutt

1
아, 그리고 OS에 따라 서비스 상태의 hasstatus, hasrestart 및 / 또는 pattern 매개 변수를 사용해야 할 수도 있습니다.
Chad Huneycutt

2

(이것은 매우 오래된 질문이라는 것을 알고 있지만 (내 의견으로는) 훨씬 쉬운 방법으로 내 2 센트에 넣을 것이라고 생각했습니다)

화살표 표기법도 자유롭게 사용하십시오.

file { "/etc/sshd_config":
  source => "....",
} ~>
service { sshd:
  ensure => running
}

또는

File['/etc/sshd_config'] ~> Service['sshd']

첫 번째 예에서 화살표를 사용하면 알림 옵션이 필요하지 않습니다
c4f4t0r

죄송합니다. 방금 복사해서 꺼내는 것을 잊었습니다.
Ethan Brouwer 2016 년

1

이것은 Solaris 10에서 작동합니다 :)

class sun_cron_root {
    file { "/var/spool/cron/crontabs/root" :
            source => "puppet:///files/cron/sun/sun_cron_root"
            }

    service {
            "cron":
            provider => "smf",
            ensure => running,
            enable => true,
            hasrestart => true,
            subscribe => File["/var/spool/cron/crontabs/root"]
            }

}

0

이에 상응하는 여러 표기법이 있습니다.

알림 :

file { '/etc/sshd_config':
    notify => Service[sshd],
}

service { sshd:
    ensure => running
}

구독 :

file { '/etc/sshd_config':
   ...
}

service { sshd:
    ensure => running,
    subscribe => File['/etc/sshd_config'],
}

화살표 표기법 :

File['/etc/sshd_config'] ~> Service['sshd']

연쇄 선언

file { '/etc/sshd_config':
   ...
}
~> service { sshd:
    ensure => running,
}

reload대신에 트리거하려면 restart서비스 선언을 조정하십시오.

service { sshd:
    ensure => running,
    restart => 'pkill -HUP sshd', # if service support such reload
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.