ฉันจะจัดการ puppet.conf ด้วย Puppet ได้อย่างไร


11

ฉันใช้หุ่นกระบอกเพื่อจัดการเซิร์ฟเวอร์ลินุกซ์และบริการต่างๆ มันใช้งานได้ดียกเว้นบริการหุ่นกระบอกเอง

ชั้นหุ่นของฉันเป็นแบบนี้:

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 หุ่นเชิดจะแจ้งให้ทราบว่าจะต้องเริ่มบริการ puppet ใหม่ดังนั้นจึงขัดข้องเอง:

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.conf อย่างถูกต้องด้วย puppet ได้อย่างไร

คำตอบ:


10

puppet daemon จะสังเกตเห็นการเปลี่ยนแปลงในไฟล์ puppet.conf โดยอัตโนมัติโดยไม่จำเป็นต้องรีสตาร์ท เพียงแค่ลบsubscribe => File["/etc/puppet/puppet.conf"]จากservice { "puppet" ... }และทุกอย่างจะยังคงทำงาน

หุ่นกระบอกไม่สามารถทำensure => runningเพื่อตัวเองได้เช่นกัน การใช้บางอย่างเช่นMutal Restartพร้อมกับหุ่นกระบอกทำให้ cron มั่นใจได้ว่ากำลังทำงานและ cronjob ที่ทำให้มั่นใจว่าหุ่นกำลังทำงานอยู่จะทำงานอย่างไร


ฉันจะตรวจสอบว่ามันทำงานได้ในวันจันทร์หรือไม่ แต่มันก็ดูดีมากสำหรับฉัน ขอบคุณสำหรับตัวชี้เกี่ยวกับการรีสตาร์ทร่วม
Coren

1

ทางออกหนึ่งคือการไม่เรียกใช้หุ่นเชิดเป็น daemon แต่เรียกใช้จาก cron สิ่งนี้ที่หลายคนชอบเพราะสำหรับพวกเขาภูตนั้นใช้หน่วยความจำจำนวนมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.