Package manager là hợp đồng tin cậy với distro

Debian/Ubuntu, apt:

sudo apt update
apt-cache policy nginx
sudo apt install -y nginx=1.24.0-*
apt-mark showhold

RHEL family, dnf / yum:

dnf list available nginx
sudo dnf install nginx-1.26.*
sudo dnf versionlock nginx  # plugin

Bài học ops: “cùng tên package” khác phiên bản giữa distro, đừng copy số version từ blog sang production mù.


Repository: official, PPA, vendor repo

  • Official / distro mirror: nguồn vá security chính.
  • PPA / COPR / third-party: tiện nhưng tăng supply chain surface, cần owner và quy trình rotate key.
ls /etc/apt/sources.list.d/
ls /etc/yum.repos.d/

Pinning / priority (Debian), khi bạn cần “lấy nginx mới hơn nhưng không upgrade cả thế giới”

APT pinning (/etc/apt/preferences.d/) điều khiển candidate version khi có nhiều repo cung cấp cùng package.

Footgun: pin sai có thể giữ bản cũ lỗi hoặc kéo bản quá mới phá dependency.


unattended-upgrades vs maintenance window

Unattended-upgrades (Debian family):

  • Ưu: vá nhanh CVE nhỏ không cần người.
  • Nhược: reboot không kiểm soát nếu cấu hình lỏng; logrotate + service restart có thể gây nháy availability.

Orchestrated maintenance:

  • Patch theo lịch; drain LB; snapshot; apply; verify health; un-drain.

Không có đáp án đúng duy nhất, có SLAđội ngủ quyết định.


Kernel update: không chỉ là “một package”

Kernel mới cần reboot (trừ livepatch/kpatch trong phạm vi hỗ trợ). Cloud provider đôi khi đưa “kernel hot” nhưng bạn vẫn cần policy reboot.

uname -r
# So với meta package linux-image-* đã cài trên Debian
dpkg -l 'linux-image-*' | tail

needrestart / checkrestart, sau upgrade, process nào vẫn dùng binary cũ?

sudo needrestart  # Debian/Ubuntu nếu cài

Điển hình: libssl upgrade nhưng nginx chưa restart → bạn đã patch disk nhưng chưa patch memory.


Reproducibility: image, cloud-init, lock file

  • Golden image + version tag.
  • cloud-init/ignition chạy một lần bootstrap, log secret cẩn thận.
  • Container: pin digest image, không chỉ tag latest.

Rollback mindset

Package downgrade không luôn được hỗ trợ an toàn (schema DB, migration một chiều). Ops thường rollback bằng:

  • snapshot volume trước major upgrade
  • blue/green deployment thay vì inplace downgrade

Liên hệ bài trước / sau


Câu hỏi hay gặp

1. “apt upgrade vs apt full-upgrade?”
full-upgrade có thể gỡ package để giải dependency, nguy hiểm hơn trên server không được kiểm soát; đọc diff trước.

2. “Tôi có nên tự build từ source trên prod?”
Chỉ khi bạn có pipeline tái lập được và owner rõ, nếu không, bạn đang tạo snowflake.

3. “CVE báo HIGH nhưng distro chưa có fix?”
Theo dõi USN/RHSA; đôi khi mitigation là config (tắt module) chứ không phải version bump.


Bài tiếp theo trong loạt

Phần 9: Firewall trên Linux, tư duy và thực hành, default deny và quy tắc tối thiểu.