Mục lục
Đối chiếu yêu cầu trước khi tạo VPSXác định image thực nhậnKiểm tra quá trình khởi tạoXem phiên bản gói trước khi càiVí dụ một quyết định tương thíchTheo dõi container và từng lớp phần mềmTách cập nhật gói khỏi nâng phiên bản hệ điều hànhLưu quyết định có thể tái lậpĐối chiếu yêu cầu trước khi tạo VPS
Liệt kê hệ điều hành, runtime, database và kiến trúc mà ứng dụng cùng phần mở rộng hỗ trợ. Tính cả agent sao lưu và giám sát. Phân biệt hỗ trợ chính thức với kết quả nhóm của bạn tự thử.
- Ghi các phiên bản Ubuntu, runtime và database ứng dụng hỗ trợ.
- Kiểm tra kiến trúc của module native, image container và agent.
- Chọn trong các phiên bản tương thích theo thời gian bảo trì còn lại.
- Xác nhận nhà cung cấp có image và kiến trúc đó tại region cần dùng.
- Kiểm tra sau khi tạo máy và thử ứng dụng trước khi chuyển dữ liệu.
Ubuntu 24.04 LTS là ví dụ cụ thể: phiên bản này đưa Python mặc định 3.12, PHP 8.3 và PostgreSQL 16. Bản vá thay đổi qua cập nhật; hỗ trợ phiên bản major cũ không tự bảo đảm tương thích. Xem bảng vòng đời LTS để đối chiếu thời hạn.
Xác định image thực nhận
Chạy các lệnh chỉ đọc trên VPS và lưu kết quả trước khi cài thêm phần mềm.
cat /etc/os-release
uname -r
dpkg --print-architecture
uname -mCuộn bảng sang ngang để xem đủ các cột.
| Kết quả | Ý nghĩa |
|---|---|
| VERSION_ID trong /etc/os-release | Phiên bản Ubuntu đã cài, chẳng hạn 24.04 |
| Kernel từ uname -r | Kernel đang chạy, có thể đổi sau cập nhật và reboot |
| amd64 / x86_64 | Tên kiến trúc gói / máy cho x86 64-bit |
| arm64 / aarch64 | Tên thường dùng cho Arm 64-bit |
Chuỗi kernel không xác định riêng phiên bản Ubuntu hay phạm vi hỗ trợ; cloud có thể dùng kernel riêng. Không mặc nhiên chạy tệp amd64 trực tiếp trên arm64. Cần bản dựng Arm hoặc phương án khác được hỗ trợ.
Kiểm tra quá trình khởi tạo
Nhiều image dùng cloud-init để tạo tài khoản, cài khóa và mạng. Kiểm tra công cụ có tồn tại trước; thiếu cloud-init không tự chứng minh lỗi, vì nhà cung cấp có thể khởi tạo bằng cách khác.
if command -v cloud-init >/dev/null 2>&1; then
cloud-init status --long
else
printf '%s\n' 'Chưa cài cloud-init; hãy kiểm tra cách nhà cung cấp khởi tạo máy.'
fiTrạng thái running là đang làm việc. Error hoặc degraded cần kiểm tra dù SSH đã vào được. Khi có cloud-init, xem log liên quan:
sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.logScript khởi tạo có thể in bí mật; xóa thông tin nhạy cảm trước khi chia sẻ log. Không chạy cloud-init clean hoặc thay tệp mạng chỉ để giấu lỗi. Khởi tạo xong không chứng minh ứng dụng, database và sao lưu đều tốt.
Xem phiên bản gói trước khi cài
apt update làm mới chỉ mục mà chưa cài các gói ứng dụng dưới đây. Ghi phiên bản candidate và kho cung cấp.
sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16Installed: (none) nghĩa là chưa cài; Candidate: (none) nghĩa nguồn gói hiện không cung cấp phiên bản đó. Kiểm tra tên, kiến trúc và thành phần Ubuntu trước khi thêm kho tùy ý.
Metapackage như php hoặc postgresql chọn triển khai mặc định; kiểm tra cả gói có số phiên bản. Với phần mềm đã có, xem executable hoặc dịch vụ thực chạy: python3 --version và php --version kiểm tra chương trình đó, trong khi client database có thể khác server.
Ví dụ một quyết định tương thích
Giả sử ứng dụng chỉ hỗ trợ Python 3.10 và module native chỉ có amd64. Đây là giả định, không nói về sản phẩm cụ thể. Ubuntu 24.04 arm64 mặc định không đạt hai yêu cầu: Python 3.12 và kiến trúc khác.
Chọn amd64 chỉ giải quyết kiến trúc, không đổi Python mặc định. Virtual environment dùng interpreter tạo nó, không biến 3.12 thành 3.10. Không thay Python hệ thống của Ubuntu để đáp ứng ứng dụng.
Có thể nâng ứng dụng hoặc chọn runtime/container được bảo trì riêng với kế hoạch hỗ trợ rõ ràng. Kiểm tra mọi thành phần native; bản Ubuntu cũ hơn cũng có thời hạn bảo trì riêng, không phải cách sửa tự động.
Trong staging, chạy phần mã dùng extension, thao tác database, tác vụ nền và chu kỳ backup/restore. Ghi build và phiên bản. Cài thành công hoặc tải trang chủ được là phép thử quá hẹp.
Theo dõi container và từng lớp phần mềm
Container tách phụ thuộc khỏi gói mặc định Ubuntu nhưng vẫn dùng kernel, đĩa và mạng của host. Kiểm tra image hỗ trợ kiến trúc đích; giả lập có giả định hiệu năng và hỗ trợ khác.
Giữ dữ liệu ở volume có tài liệu hoặc kho ngoài và thử khôi phục độc lập với container có thể xóa. Ghim release hoặc digest để dựng lại được, đồng thời lên lịch cập nhật. Image có lỗ hổng bị ghim mãi vẫn là hệ thống được bảo trì kém.
Phân biệt hỗ trợ bản Ubuntu với từng gói: bảo trì tiêu chuẩn, Ubuntu Pro, kho bên thứ ba, tệp tải riêng và container có người bảo trì khác nhau. Ghi ai cập nhật từng lớp.
Tách cập nhật gói khỏi nâng phiên bản hệ điều hành
Làm mới metadata trước rồi xem gói chờ cập nhật và dịch vụ lỗi. Khối này liệt kê thông tin, không thực hiện nâng phiên bản phân phối.
apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fiRà soát và áp dụng cập nhật trong cửa sổ phù hợp, rồi thử lại ứng dụng. Dịch vụ có thể restart trong bảo trì. Dấu reboot-required hữu ích nếu có; không có nó không chứng minh mọi thành phần đã mới nhất.
Thử nâng phiên bản trên bản sao hoặc máy mới: kiểm tra runtime, kho gói, yêu cầu nâng database và extension. Lập đồng bộ dữ liệu cuối và đường quay lại có tính đến dữ liệu ghi sau thay đổi. Snapshot trước nâng cấp không thể chứa đơn hàng xuất hiện sau đó.
Lưu quyết định có thể tái lập
Cuộn bảng sang ngang để xem đủ các cột.
| Hồ sơ | Thông tin cần lưu |
|---|---|
| Hệ điều hành | Release, kiến trúc, kernel và ID image |
| Ứng dụng | Build, runtime, lockfile và nguồn kho |
| Khởi tạo | Kết quả và cấu hình không có bí mật |
| Kiểm tra | Luồng đã thử, kết quả, lỗi còn lại |
| Bảo trì | Người phụ trách, cửa sổ cập nhật, nơi nhận cảnh báo |
| Khôi phục | Nơi sao lưu, quy trình, lần restore đã xác minh |
Giữ bí mật ngoài hồ sơ; đưa cấu hình không nhạy cảm vào quản lý phiên bản. Dựng máy riêng khi phụ thuộc quan trọng thay đổi. Xem tạo VM công khai hoặc triển khai website khi môi trường phù hợp.
Các họ gói Ubuntu 24.04 là ví dụ theo tài liệu. Kiểm tra candidate hiện có trên image đích và thử ứng dụng của bạn; bài viết không tuyên bố đã thử tính tương thích của ứng dụng.
Câu hỏi thường gặp
Ubuntu 24.04 luôn là lựa chọn tốt nhất sao?
Đó là phiên bản minh họa. Chọn bản còn được hỗ trợ mà cả ứng dụng lẫn nhà cung cấp đáp ứng; phiên bản mới hoặc cũ đều có thể cần sửa ứng dụng.
Cài lại image có giữ dữ liệu không?
Cài lại qua panel thường thay ổ hệ thống. Kiểm tra thủ tục, xuất dữ liệu và cấu hình rồi thử khôi phục trước. Cài lại khác với nâng phiên bản tại chỗ.
Kernel cho biết đủ phiên bản Ubuntu không?
Không. Xem /etc/os-release cho release, kernel đang chạy bằng uname và kiến trúc gói bằng dpkg; lưu cả ba thay vì suy từ một chuỗi.