สำหรับเซิร์ฟเวอร์ Debian 12 ที่ไม่มีหน้าจอแสดงผล ให้ติดตั้งunattended-upgradesเปิดใช้งานการรีเฟรชรายการแพ็กเกจรายวันของ APT และการตั้งค่าการอัปเกรดอัตโนมัติ และคงค่าอนุญาตแหล่งที่มาด้านความปลอดภัยตามค่าเริ่มต้น จากนั้นตรวจสอบตัวจับเวลาและบันทึกของ systemd ผ่าน SSH การดำเนินการนี้จะทำการอัปเดตแพ็กเกจที่เหมาะสมโดยอัตโนมัติ แต่จะไม่ทำการอัปเกรดเวอร์ชันหลักของ Debian หรือรับประกันว่าทุกแอปพลิเคชันไม่จำเป็นต้องมีการอัปเดตเพิ่มเติม
รีเฟรชข้อมูลเมตาของ APT และติดตั้งแพ็คเกจการอัปเกรดอัตโนมัติจากเซสชัน SSH
1. ติดตั้งโปรแกรมอัปเดตและยืนยันการเผยแพร่
เชื่อมต่อกับบัญชีที่สามารถใช้งานได้sudoตรวจสอบเวอร์ชันของเซิร์ฟเวอร์และอัปเดตดัชนีแพ็กเกจก่อนทำการติดตั้ง:
cat /etc/debian_version
sudo apt update
sudo apt install unattended-upgrades
ขั้นตอนนี้นำไปใช้กับ Debian 12 (Bookworm) โดยใช้ที่เก็บแพ็กเกจ APT ตามปกติ ตรวจสอบแผนการติดตั้งแพ็กเกจก่อนยอมรับ หาก APT รายงานข้อผิดพลาดเกี่ยวกับที่เก็บแพ็กเกจ DNS พื้นที่ดิสก์ หรือการพึ่งพาแพ็กเกจ โปรดแก้ไขปัญหาเหล่านั้นก่อน การทำงานโดยอัตโนมัติไม่สามารถแก้ไขแหล่งที่มาของแพ็กเกจที่เสียหายหรือระบบไฟล์ที่ไม่สมบูรณ์ได้
2. เปิดใช้งานการรีเฟรชรายวันและการอัปเกรดความปลอดภัย
ตั้งค่าตัวเลือกการอัปเดตเป็นระยะของ APT ในไฟล์เฉพาะในเครื่อง วิธีนี้จะช่วยให้สามารถรีเฟรชรายการแพ็กเกจทุกวันและเรียกใช้การอัปเกรดอัตโนมัติได้:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
การกำหนดค่า APT ในเครื่องช่วยให้สามารถอัปเดตรายการแพ็กเกจได้ทุกวันและอัปเกรดโดยอัตโนมัติ
ป้อนและบันทึกสองบรรทัดนี้:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
ใน Nano ให้กดCtrl+OEnter จากนั้นกด Enter Ctrl+Xค่านี้1หมายถึงทุกวันunattended-upgradesการกำหนดค่าแพ็กเกจของ APT จะควบคุมว่าสามารถติดตั้งแหล่งเก็บถาวรใดได้บ้าง ในการตั้งค่า Debian 12 มาตรฐาน ให้ปล่อยไว้/etc/apt/apt.conf.d/50unattended-upgradesเหมือนเดิมในตอนแรก รายการที่อนุญาตเริ่มต้นนั้นมีไว้เพื่อเลือกการอัปเดตความปลอดภัยของ Debian และการอัปเดต Debian ที่กำหนดค่าไว้ที่เกี่ยวข้อง อย่าเพิ่มที่เก็บของบุคคลที่สามหรือ Bookworm ทั้งหมดเพียงเพื่อให้เอาต์พุตสถานะดูยุ่งมากขึ้น หากคุณขยายรายการที่อนุญาตโดยเจตนา ให้ตรวจสอบแหล่งที่มาที่แน่นอน ทดสอบ และตรวจสอบบริการเช่นเดียวกับการเปลี่ยนแปลงการผลิตอื่นๆ
3. ตั้งค่าการรีบูตอัตโนมัติให้อยู่ภายใต้การควบคุมของผู้ดูแลระบบ
สำหรับเซิร์ฟเวอร์ที่จัดการจากระยะไกล โปรดตรวจสอบนโยบายการรีบูตใน50unattended-upgrades:
grep -n 'Automatic-Reboot' /etc/apt/apt.conf.d/50unattended-upgrades
อย่าเปิดใช้งานการรีบูตอัตโนมัติ เว้นแต่คุณได้วางแผนรับมือกับการหยุดชะงักของบริการ ตรวจสอบการกู้คืนแอปพลิเคชัน และมีเส้นทางการกู้คืนนอกระบบหรือผ่านคอนโซลที่เชื่อถือได้ การอัปเดตความปลอดภัยของ Debian อาจติดตั้งเคอร์เนลหรือไลบรารีใหม่ที่ต้องรีสตาร์ทเพื่อให้มีผล แต่การอัปเกรดอัตโนมัติไม่ได้ทดแทนนโยบายการรีบูตหรือแผนการแก้ไขปัญหาเมื่อจำเป็น เมื่อปิดใช้งานการรีบูตอัตโนมัติ ให้กำหนดช่วงเวลาการบำรุงรักษาเป็นประจำและตรวจสอบว่าจำเป็นต้องรีบูตหลังจากอัปเดตหรือไม่
การทดสอบแบบจำลองสามารถแสดงแหล่งที่มาที่กำหนดค่าไว้และแพ็กเกจที่อาจเป็นไปได้โดยไม่ต้องติดตั้ง แพ็กเกจที่แสดงออกมานั้นเป็นเพียงตัวอย่างเท่านั้น
4. ทดสอบการตั้งค่าก่อนใช้งานจริง
เรียกใช้การจำลองผ่าน SSH --dry-runตัวเลือกนี้จะไม่ติดตั้งแพ็กเกจ แต่--debugจะให้รายละเอียดเพิ่มเติมในบันทึกการอัปเกรดอัตโนมัติ:
sudo unattended-upgrade --dry-run --debug
อ่านผลลัพธ์เพื่อดูแหล่งที่มาที่อนุญาตและการดำเนินการแพ็กเกจที่เสนอ ข้อความที่ระบุว่าไม่มีแพ็กเกจที่จะอัปเกรดอาจเป็นผลลัพธ์ที่ดีเมื่อไม่มีแพ็กเกจใดที่เข้าเกณฑ์รออยู่ แต่นั่นไม่ได้หมายความว่าตัวจับเวลาจะทำงานในภายหลัง หากแหล่งที่มาที่อนุญาตว่างเปล่าหรือผู้สมัครหายไปโดยไม่คาดคิด ให้ตรวจสอบแหล่งที่มาและ50unattended-upgradesรูปแบบของ APT ก่อนที่จะเปลี่ยนแปลง คู่มือ Bookworm อธิบายคำสั่งนี้ว่าเป็นแบบจำลอง ไม่ใช่การติดตั้ง
5. ตรวจสอบตัวจับเวลา บริการ และบันทึกต่างๆ
APT ใช้ตัวจับเวลา systemd ในการทำงานประจำวัน ตรวจสอบทั้งตัวจับเวลาและบริการอัปเกรด:
systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers 'apt-daily*'
systemctl status apt-daily-upgrade.service
ตัวจับเวลาควรได้รับการโหลดและเปิดใช้งานแล้ว และรายการควรแสดงการทำงานครั้งถัดไปตามกำหนดการ หากตัวจับเวลาได้รับการติดตั้งแล้วแต่ไม่ได้ใช้งาน ให้เริ่มการทำงานและเปิดใช้งานสำหรับการบูตครั้งต่อไป:
sudo systemctl enable --now apt-daily.timer apt-daily-upgrade.timer
บริการอาจไม่ได้ทำงานระหว่างการทำงานตามกำหนดเวลา เนื่องจากเป็นงานที่ทำเพียงครั้งเดียว ตรวจสอบผลลัพธ์ล่าสุดแทนที่จะคาดหวังว่ามันจะทำงานต่อไปเรื่อยๆ หลังจากช่วงเวลาที่กำหนดไว้ ให้ตรวจสอบบันทึกแพ็กเกจและบันทึกเหตุการณ์ของ systemd:
ใช้สถานะตัวจับเวลาและบันทึกการอัปเกรดอัตโนมัติเพื่อยืนยันกิจกรรมที่กำหนดไว้ รายการที่แสดงเป็นเพียงตัวอย่างเท่านั้น
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
sudo journalctl -u apt-daily-upgrade.service --since "7 days ago"
ตรวจสอบว่าการทำงานเสร็จสมบูรณ์แล้วหรือไม่ แหล่งที่มาที่อนุญาต และแพ็กเกจได้รับการติดตั้งแล้วหรือไม่ หรือไม่มีแพ็กเกจใดที่รอการติดตั้ง ตรวจสอบความล้มเหลวในการดาวน์โหลดซ้ำ แพ็กเกจที่ถูกระงับ หรือข้อผิดพลาดของ dpkg คู่มือระบุเส้นทางบันทึกเหล่านี้และอธิบายว่าบริการ systemd ทำงานอยู่เบื้องหลังการอัปเกรดอัตโนมัติ
ระบบนี้สามารถยืนยันอะไรได้บ้าง และยืนยันอะไรไม่ได้บ้าง
การกำหนดค่าที่ใช้งานได้หมายความว่าตัวจับเวลาทำงานอยู่ การตั้งค่า APT เป็นระยะถูกเปิดใช้งาน และบันทึกแสดงการทำงานอัตโนมัติที่ประสบความสำเร็จ แต่ไม่ได้หมายความว่าทุกแพ็กเกจในทุกที่เก็บได้รับการอัปเดตแล้ว การแก้ไขที่ต้องรีบูตทำงานอยู่แล้ว หรือบริการยังคงทำงานได้ดีหลังจากมีการเปลี่ยนแปลงแพ็กเกจ กระบวนการอัปเกรดเวอร์ชันของ Debian ยังคงเป็นการดำเนินการที่วางแผนไว้แยกต่างหาก การอัปเกรดอัตโนมัติมีไว้สำหรับการอัปเดตแพ็กเกจภายในแหล่งที่มาที่กำหนดค่าไว้ สำหรับเซิร์ฟเวอร์ที่สำคัญ ให้เพิ่มการตรวจสอบการทำงานที่ล้มเหลว บำรุงรักษาข้อมูลสำรอง ทดสอบการเปลี่ยนแปลงในสภาพแวดล้อมที่เป็นตัวแทน และกำหนดช่วงเวลาการรีบูตที่ตรวจสอบโดยมนุษย์
ขั้นตอนเหล่านี้เป็นไปตามคู่มือการอัปเกรดอัตโนมัติ ของ Debian Bookworm, คำแนะนำเกี่ยวกับการอัปเดตเป็นระยะของ Debian และคู่มือ systemd.timer ของ Bookworm คู่มือ Bookworm ระบุเวอร์ชันแพ็กเกจ Debian เป็น 2.9.1+nmu3; เวอร์ชันแพ็กเกจอาจเปลี่ยนแปลงได้ตามการอัปเดตของ Debian