Praktyczny poradnik / Obraz i zgodność

Jak wybrać i sprawdzić obraz Ubuntu na VPS

Obraz Ubuntu na VPS wybierz według wymagań aplikacji, architektury procesora i okresu utrzymania. Po pierwszym logowaniu sprawdź, co rzeczywiście zainstalował dostawca. Nazwa obrazu w panelu nie potwierdza wersji każdego pakietu ani gotowości Twojej aplikacji.

Spis treści

Zapisz wymagania przed utworzeniem maszyny

Sprawdź dokumentację aplikacji, panelu, bazy, rozszerzeń, kontenerów i agenta kopii zapasowych. Zapisz obsługiwane wydania Ubuntu, wersje środowiska uruchomieniowego i architektury. Oddziel deklarowane wsparcie producenta od konfiguracji sprawdzonej we własnym teście.

Ubuntu 24.04 wprowadzono z rodzinami pakietów Python 3.12, PHP 8.3 i PostgreSQL 16. To punkt odniesienia, a nie gwarancja konkretnej wersji poprawkowej na nowym VPS. Dodatkowe repozytoria i sposób instalacji mogą zmienić zestaw pakietów.

Najpierw porównaj okresy utrzymania Ubuntu LTS. Jeśli aplikacja wymaga innej dystrybucji, wróć do wyboru systemu Linux.

Potwierdź wydanie i architekturę

Na VPS wykonaj odczyt informacji o systemie. Polecenia nie zmieniają konfiguracji.

cat /etc/os-release
uname -r
dpkg --print-architecture
uname -m

W /etc/os-release sprawdź VERSION_ID. uname pokazuje jądro, którego numer nie jest numerem wydania Ubuntu. amd64 w dpkg odpowiada zwykle x86_64 w uname, a arm64 odpowiada aarch64. Jądro dostosowane do chmury nie określa samo w sobie zakresu wsparcia pakietów.

Biblioteka dostępna tylko dla amd64 nie zacznie działać natywnie na Arm dlatego, że oba serwery mają Ubuntu. Sprawdź także architekturę używanych obrazów kontenerów.

Sprawdź zakończenie przygotowania obrazu

Dostawca może używać cloud-init do kont, kluczy i sieci. Najpierw sprawdź, czy narzędzie istnieje i jaki zgłasza stan.

if command -v cloud-init >/dev/null 2>&1; then
    cloud-init status --long
else
    printf '%s\n' 'cloud-init nie jest zainstalowany; sprawdź sposób przygotowania obrazu u dostawcy.'
fi

Stan running oznacza trwającą pracę. error lub degraded wymaga zbadania przyczyny, nawet gdy SSH już działa. Jeżeli cloud-init nie jest zainstalowany, sprawdź inny mechanizm przygotowania obrazu u dostawcy.

sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.log

Dzienniki mogą zawierać dane przekazane podczas tworzenia VM. Usuń sekrety przed ich udostępnieniem. Nie uruchamiaj cloud-init clean i nie nadpisuj sieci tylko po to, by usunąć komunikat. Zakończone przygotowanie systemu nie potwierdza sprawności aplikacji.

Sprawdź kandydatów pakietów

Odśwież indeks pakietów i odczytaj kandydatów. To nie instaluje wymienionych środowisk.

sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16

Installed: (none) oznacza brak danego pakietu. Candidate: (none) oznacza brak kandydata w aktualnie skonfigurowanych źródłach. Rozwiąż zgodność źródeł i aplikacji, zamiast dodawać przypadkowe repozytorium.

php i postgresql mogą być metapakietami. Sprawdź również pakiety wersjonowane oraz środowisko rzeczywiście uruchamiające usługę. Wersja klienta bazy nie dowodzi wersji serwera bazy.

Rozdziel zgodność wersji od zgodności procesora

Przykład: aplikacja wymaga Python 3.10 i natywnego rozszerzenia amd64, a obraz ma Ubuntu 24.04 na Arm. To dwa niezależne warunki. Wybór amd64 rozwiązuje architekturę, lecz nie zapewnia Python 3.10. Środowisko venv nie zamienia Python 3.12 w 3.10.

Nie zastępuj systemowego interpretera Python. Sprawdź aktualizację aplikacji, osobno utrzymywane środowisko albo zgodny kontener. Starszy system nie jest automatycznie bezpieczniejszym wyborem: musi mieć plan utrzymania.

Na kopii sprawdź uruchomienie rozszerzenia, połączenie z bazą, zadania w tle i odtworzenie danych. Zapisz wersje i wynik testu, nie tylko udane wyświetlenie strony.

Uwzględnij kontenery i utrzymanie pakietów

Kontener korzysta z jądra, sieci i magazynu danych hosta. Obraz musi obsługiwać jego architekturę; emulacja to osobna konfiguracja z własnymi ograniczeniami. Nie zakładaj, że oznaczenie multi-arch rozwiązuje wszystkie zależności.

Dane trwałe i woluminy potrzebują kopii niezależnej od obrazu aplikacji. Przypięcie wersji lub digestu ułatwia powtarzalne wdrożenie, ale nie zwalnia z dostarczania poprawek.

Standardowe utrzymanie Ubuntu Main, dodatkowe pokrycie Ubuntu Pro i pakiety zewnętrznych dostawców mają różny zakres. Ustal odpowiedzialność za każdą warstwę.

Zaplanuj aktualizację i bezpieczny powrót

Po odświeżeniu indeksu sprawdź dostępne aktualizacje, usługi w błędzie i sygnał potrzebnego restartu.

apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fi

To odczyt stanu, nie wykonanie aktualizacji. Brak pliku reboot-required nie dowodzi, że wszystkie procesy używają aktualnego kodu. Aktualizacja może wymagać restartu usług, a czasem całej maszyny.

Zmianę wydania systemu przećwicz na oddzielnej kopii. Ustal okno prac, synchronizację końcową i sposób powrotu. Przywrócenie starego snapshotu po przyjęciu nowych zamówień może utracić dane powstałe po jego wykonaniu.

Zachowaj krótką kartę wdrożenia

  • Wydanie systemu, architektura i identyfikator obrazu
  • Wersje aplikacji, środowiska i pliki blokad zależności
  • Źródła pakietów oraz sposób przygotowania VM bez sekretów
  • Wyniki testów aplikacji, zadań i odtwarzania
  • Właściciel aktualizacji, okno prac i alerty
  • Miejsce kopii oraz data ostatniego udanego odtworzenia

Po wyborze obrazu przejdź do pierwszej strony HTTPS. Dla bezpłatnej instancji Oracle użyj osobnej instrukcji tworzenia VM, która uwzględnia sieć i zaporę obrazu.

Pytania i odpowiedzi

Czy najnowsze LTS zawsze będzie najlepsze?

Nie dla każdej aplikacji. Najpierw potwierdź wspierane wydania, pakiety, architekturę i możliwość utrzymania. Następnie przetestuj wybrane środowisko.

Czy działające SSH oznacza gotowy obraz?

Nie. Przygotowanie cloud-init może nadal trwać albo zakończyć się częściowym błędem. Sprawdź jego stan oraz potrzebne aplikacji usługi.

Czy kontener rozwiązuje niezgodność Arm i amd64?

Tylko jeśli cały zestaw obsługuje wybraną architekturę albo świadomie skonfigurujesz emulację i sprawdzisz jej zachowanie. Samo użycie kontenera nie gwarantuje zgodności.

Przykłady rodzin pakietów odnoszą się do Ubuntu 24.04. Kandydatów, zakres utrzymania i zgodność aplikacji trzeba sprawdzić w docelowym środowisku. Instrukcja nie deklaruje testów każdej kombinacji pakietów.
Powiązane zadania

Co zrobić dalej?

Kolejny krok

Twój pomysł.
Miejsce na jego rozwój.

Sprawdź dostępne konfiguracje i aktualne warunki dostawcy.

Zobacz serweryLink partnerski · Zamówienie składasz u dostawcy.