Puppet (หรือคล้ายกัน) เป็นเทคโนโลยีที่เหมาะสมสำหรับการดูแลการเปลี่ยนแปลงพื้นฐาน แต่สำคัญหรือไม่?
ใช่มันสามารถใช้วิธีนี้ ฉันใช้สิ่งนี้เพื่อสนับสนุนระบบไคลเอนต์ภายนอก
ฉันไม่ต้องการให้เซิร์ฟเวอร์ใด ๆ สามารถดูการกำหนดค่าใด ๆ ที่ไม่ควรทำ
หากคุณกำลังใช้หุ่นคุณจะต้องไม่เปิดใช้งานการลงชื่ออัตโนมัติ Autosign อนุญาตให้โฮสต์ร้องขอใบรับรองโดยอัตโนมัติ การกำหนดค่าและการอนุญาตของคุณจะเชื่อมโยงโดยตรงกับ CN ในใบรับรอง คุณไม่ต้องการให้คอมพิวเตอร์สุ่มมาออนไลน์และสามารถอ้างได้ว่าพวกเขาเป็นระบบที่มีความปลอดภัยสูง
หากคุณหวาดระแวงจริงๆคุณสามารถปรับการตั้งค่าเซิร์ฟเวอร์หุ่นกระบอกเพื่อสร้างการแชร์ที่มีเพียงบางระบบเท่านั้นที่สามารถเข้าถึงได้ การเข้าถึงไฟล์เซิร์ฟเวอร์ขึ้นอยู่กับใบรับรอง
ฉันไม่ต้องการให้ Puppet ทำการเปลี่ยนแปลงใด ๆ ที่ไม่ควรทำหรือย้อนกลับการเปลี่ยนแปลงด้วยตนเองที่ทำบนเซิร์ฟเวอร์
มีวิธีการที่แตกต่างกันสองวิธีในการอนุญาตการเปลี่ยนแปลงในท้องถิ่น
วิธีหนึ่งที่ฉันใช้บ่อยอยู่ด้านล่าง โดยทั่วไปถ้าคุณส่งรายการไปยัง a source
หุ่นเชิดก็ลองแต่ละรายการในรายการ ดังนั้นฉันจึงเพิ่มรายการแรกในรายการเพื่อชี้ไปที่ไฟล์ในเครื่อง
file { '/etc/ssh/sshd_config':
ensure => present,
source => ["/etc/ssh/sshd_config_local",
"puppet:///modules/ssh/$ssh_config_file"],
...
}
ตัวเลือกอื่นจะใช้ประโยชน์จาก symlinks หากมีคนต้องการใช้รุ่นหุ่นเชิดพวกเขาจะเชื่อมโยงไปยังไฟล์รุ่นหุ่นเชิด หากพวกเขาต้องการบำรุงรักษาการกำหนดค่าของพวกเขาในท้องถิ่นพวกเขาจะไม่สร้าง symlink
file { '/etc/ssh/sshd_config_puppet':
ensure => present,
source => "puppet:///modules/ssh/$ssh_config_file",
...
}
ความเป็นไปได้อื่นคือการใช้ augeas เพื่อทำการเปลี่ยนแปลงระดับบรรทัดแทนที่จะเปลี่ยนไฟล์ทั้งหมด ระมัดระวังเกี่ยวกับสิ่งที่คุณเปลี่ยนแปลง