Puppet으로 puppet.conf를 어떻게 관리 할 수 ​​있습니까? 수업은 다음과 같습니다. class puppet { file

꼭두각시를 사용하여 리눅스 서버와 다양한 서비스를 관리합니다. 꼭두각시 서비스 자체를 제외하고는 잘 작동 합니다.

내 꼭두각시 수업은 다음과 같습니다.

class puppet {
  file { "/etc/puppet/puppet.conf":
    owner  => 0, group  => 0, mode => 0644,
    content => template("${module_name}/puppet.conf.erb"),
  }

  service { "puppet":
    name       => "puppet",
    ensure     => running,
    enable     => true, hasstatus  => true, hasrestart => true,
    require    => File["/etc/puppet/puppet/conf"]
    subscribe  => File["/etc/puppet/puppet/conf"]
  }
}

}

/etc/puppet/puppet.conf에 변경 사항이 적용되면 꼭두각시는 꼭두각시 서비스를 다시 시작해야한다는 것을 알기 때문에 충돌이 발생합니다.

Mar 30 17:08:23 XXXX puppet-agent[20172]: (/Stage[main]/Puppet/File[/etc/puppet/puppet.conf]/content) content changed '{md5}eeaf5dfc7d88c8d9c85e6a8cc714d702' to '{md5}ef6ff0e423f4125e24b689980df9f71d'
Mar 30 17:08:23 XXXX puppet-agent[20172]: Caught TERM; calling stop

puppet으로 puppet.conf를 올바르게 업데이트하는 방법을 알고 있습니까?



답변

꼭두각시 데몬은 다시 시작할 필요없이 puppet.conf 파일의 변경 사항을 자동으로 알 수 있습니다. subscribe => File["/etc/puppet/puppet.conf"]에서를 제거하면 service { "puppet" ... }모든 것이 여전히 작동합니다.

꼭두각시는 ensure => running그 자체로는 실제로 할 수 없습니다 . 그러나 꼭두각시가 cron이 실행 중이고 cronjob이 꼭두각시가 실행 중임을 나타내는 Mutal Restart 와 같은 것을 사용 하면 작동합니다.


답변

한 가지 해결책은 퍼펫을 데몬으로 실행하지 않고 cron에서 호출하는 것입니다. 데몬은 많은 메모리를 소비하기 때문에 많은 사람들이 선호하는 것입니다.