꼭두각시: 구성 파일이 수정된 후 서비스를 강제로 다시 시작합니다.

꼭두각시: 구성 파일이 수정된 후 서비스를 강제로 다시 시작합니다.

구성 파일의 새 버전이 마스터 리포지토리에서 Puppet을 통해 관리 서버 중 하나로 다운로드되면 관련 서비스가 다시 시작되는지 어떻게 확인할 수 있습니까?

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

정말 감사합니다!

답변1

알림의 대안은 구독입니다.

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

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

차이점은 관계가 반대쪽에서 설명된다는 것입니다. 예를 들어, 아파치가 /etc/apache/httpd.conf를 구독하도록 할 수 있지만, 아파치 클래스는 당신이 가지고 있는 모든 가상 호스트에 대해 알지 못하기 때문에 가상 호스트 파일이 아파치에게 알리도록 만들 것입니다.

require와 before에도 유사한 이중 종료 상황이 적용됩니다. 그것은 단지 특정 상황에서 어느 것이 더 의미가 있는지의 문제일 뿐입니다.

Chad가 언급한 것처럼, 꼭두각시가 지속적으로 서비스를 시작하려고 시도하는 경우 프로세스 목록에 적용할 정규식인 패턴 매개변수를 추가해야 합니다. 기본적으로 Puppet은 서비스를 중지하고 다시 시작합니다. "hasrestart => true"를 추가하면 "restart" 매개변수에 지정된 명령을 사용하여 서비스를 다시 시작합니다.

답변2

내가 뭔가를 발견한 것 같아:

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

service { sshd:
    ensure => running
}

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

답변3

(나는 이것이 아주 오래된 질문이라는 것을 알고 있지만 (내 생각에는) 훨씬 더 쉬운 방법으로 2센트를 투자할 것이라고 생각했습니다.)

화살표 표기법도 자유롭게 사용해 보세요.

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

또는

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

답변4

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

알림:

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
}

관련 정보