Table of Contents

Najlepsze sposoby radzenia sobie z instalacją aktualizacji Linuksa offline dla Ubuntu/Debian i CentOS/RHEL

Aktualizacje systemu Linux są niezbędne do utrzymania bezpieczeństwa i stabilności systemu. Jednak w niektórych scenariuszach możesz mieć do czynienia ze środowiskami offline, w których łączność z Internetem jest ograniczona lub nie istnieje. W takich przypadkach kluczowe staje się posiadanie odpowiedniej strategii instalowania aktualizacji w trybie offline. Ten artykuł poprowadzi Cię przez najlepsze sposoby radzenia sobie z instalacją aktualizacji Linuksa dla Ubuntu/Debian i CentOS/RHEL w środowiskach offline, koncentrując się w szczególności na korzystaniu z lokalnego repozytorium lub pamięci podręcznej.

Konfiguracja lokalnego repozytorium

Jednym z najskuteczniejszych sposobów obsługi aktualizacji offline jest skonfigurowanie lokalnego repozytorium. Lokalne repozytorium zawiera wszystkie niezbędne pakiety oprogramowania i aktualizacje, umożliwiając aktualizację systemu bez połączenia z Internetem. Oto jak skonfigurować lokalne repozytorium dla dystrybucji opartych na Debianie i Red Hat:

Dla Debiana/Ubuntu

  1. Zacznij od skonfigurowania kopii lustrzanej repozytorium Debiana na serwerze z dostępem do Internetu. Możesz użyć narzędzi takich jak apt-mirror or debmirror aby utworzyć lokalną kopię lustrzaną oficjalnych repozytoriów Debiana lub Ubuntu.

Tworzenie kopii lustrzanej repozytorium Debiana za pomocą apt-mirror:

# Install apt-mirror
sudo apt-get install apt-mirror

# Edit the apt-mirror configuration file
sudo nano /etc/apt/mirror.list

# Uncomment the deb line for the desired repository
# For example, uncomment the line for Ubuntu 20.04:
# deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse

# Specify the mirror location
# Modify the base_path to your desired location
set base_path /path/to/mirror

# Save and close the file

# Run apt-mirror to start the mirroring process
sudo apt-mirror

# Wait for the mirroring process to complete

Konfigurowanie kopii lustrzanej repozytorium Debiana za pomocą debmirror:

# Install debmirror
sudo apt-get install debmirror

# Create a directory to store the mirror
sudo mkdir /path/to/mirror

# Run debmirror to start the mirroring process
# Replace <RELEASE> with the Debian or Ubuntu release and <MIRROR_URL> with the official repository URL
# For example, to mirror Ubuntu 20.04:
sudo debmirror --arch=amd64 --verbose --method=http --dist=<RELEASE> --root=<MIRROR_URL> /path/to/mirror

# Wait for the mirroring process to complete

Instrukcje klienta Debiana

  1. Skonfiguruj lokalne repozytorium, edytując **/etc/apt/sources.list w systemie offline. Zastąp domyślne adresy URL repozytoriów lokalnymi adresami URL repozytoriów. Na przykład, jeśli lokalne repozytorium jest hostowane pod adresem http://local-repo/ubuntu aktualizacja sources.list plik odpowiednio.

Przykład /etc/apt/sources.list pliki:

deb http://local-repo/ubuntu focal main restricted universe multiverse
  1. Po zaktualizowaniu konfiguracji można uruchomić **apt update w systemie offline, aby pobrać listy pakietów z lokalnego repozytorium.
sudo apt update
  1. Na koniec można użyć **apt upgrade aby zainstalować dostępne aktualizacje z lokalnego repozytorium.
sudo apt upgrade

Dla CentOS/RHEL

  1. Aby skonfigurować lokalne repozytorium dla CentOS/RHEL, należy użyć opcji createrepo tool. Narzędzie to tworzy niezbędne metadane dla lokalnego repozytorium.

  2. Utwórz katalog do przechowywania plików repozytorium na serwerze z dostępem do Internetu. Na przykład, można utworzyć katalog o nazwie **local-repo

  3. Skopiuj wszystkie odpowiednie pliki pakietów RPM i aktualizacje do **local-repo katalog.

Konfigurowanie lokalnego repozytorium za pomocą createrepo:

# Install the createrepo tool
sudo yum install createrepo

# Create a directory to store the repository files
sudo mkdir /path/to/local-repo

# Move or copy the RPM package files and updates to the local-repo directory

# Run the createrepo command to generate the necessary repository metadata
sudo createrepo /path/to/local-repo

# Update the repository metadata whenever new packages are added or removed
sudo createrepo --update /path/to/local-repo
  1. Po wygenerowaniu metadanych repozytorium można przenieść całe repozytorium. local-repo do systemu offline za pomocą napędu USB lub w inny sposób.

  2. W systemie offline utwórz nowy katalog .repo w pliku /etc/yum.repos.d/ directory. Podaj niezbędne szczegóły konfiguracji, takie jak baseurl wskazując na lokalny katalog repozytorium.

Na przykład, utwórz plik o nazwie local.repo w /etc/yum.repos.d/ i dodać następującą zawartość:

sudo nano /etc/yum.repos.d/local.repo
[local]
name=Local Repository
baseurl=file:///path/to/local-repo
enabled=1
gpgcheck=0
  1. Zapisz plik i zamknij edytor.

  2. Po skonfigurowaniu repozytorium można użyć polecenia yum update, aby zainstalować aktualizacje z lokalnego repozytorium.

sudo yum update

To polecenie zaktualizuje pakiety w systemie przy użyciu pakietów z lokalnego repozytorium.

Pamiętaj, aby zaktualizować lokalne repozytorium, uruchamiając polecenie createrepo za każdym razem, gdy nowe pakiety są dodawane lub usuwane z repozytorium.

Należy pamiętać, że trzeba będzie zastąpić /path/to/local-repo z rzeczywistą ścieżką do katalogu, w którym przechowywane są pliki repozytorium.

Konfigurowanie lokalnej pamięci podręcznej

Innym podejściem do obsługi aktualizacji offline jest skonfigurowanie lokalnej pamięci podręcznej. Lokalna pamięć podręczna przechowuje pobrane pakiety i aktualizacje, umożliwiając ich dystrybucję w wielu systemach bez konieczności indywidualnego pobierania. Taką pamięć podręczną należy skonfigurować w systemie online, a następnie przenieść katalog do systemu, który jest offline, aby umożliwić innym systemom dostęp do pakietów. Oto jak skonfigurować lokalną pamięć podręczną dla dystrybucji opartych na Debianie i Red Hat:

Dla Debiana/Ubuntu

  1. Zainstaluj i skonfiguruj apt-cacher-ng buforujący serwer proxy dla pakietów Debiana/Ubuntu. Można go zainstalować, uruchamiając polecenie **sudo apt-get install apt-cacher-ng

  2. Po zainstalowaniu edytuj **/etc/apt-cacher-ng/acng.conf aby skonfigurować zachowanie buforowania. Upewnij się, że **PassThroughPattern zawiera niezbędne adresy URL repozytoriów.

sudo nano /etc/apt-cacher-ng/acng.conf

Usuń komentarz lub dodaj niezbędne adresy URL repozytoriów do parametru PassThroughPattern. Na przykład, aby uwzględnić repozytoria Ubuntu, należy dodać lub odkomentować następujący wiersz:

PassThroughPattern: (security|archive).ubuntu.com/ubuntu

Zapisz plik i zamknij edytor.

  1. Uruchom aplikację apt-cacher-ng przy użyciu polecenia **sudo systemctl start apt-cacher-ng
sudo systemctl start apt-cacher-ng
  1. W systemach offline skonfiguruj **/etc/apt/apt.conf.d/02proxy aby wskazać lokalną pamięć podręczną. Użyj następującej linii: **Acquire::http::Proxy "http://<cache-server-ip>:3142";
sudo nano /etc/apt/apt.conf.d/02proxy

Dodaj następujący wiersz do pliku, zastępując adresem IP serwera pamięci podręcznej:

Acquire::http::Proxy "http://<cache-server-ip>:3142";

Zapisz plik i zamknij edytor

  1. Teraz, po uruchomieniu **apt update i **apt upgrade na systemach offline, będą one pobierać pakiety z lokalnej pamięci podręcznej.
sudo apt update
sudo apt upgrade

Polecenia te będą pobierać i instalować aktualizacje z lokalnej pamięci podręcznej, zmniejszając potrzebę dostępu do Internetu w systemach offline.

Należy pamiętać, że konieczne będzie zastąpienie **<cache-server-ip> z rzeczywistym adresem IP komputera, na którym zainstalowany jest apt-cacher-ng.

Dla CentOS/RHEL

  1. Dla CentOS/RHEL, można użyć yum-cron aby skonfigurować lokalną pamięć podręczną. Zainstaluj go, uruchamiając polecenie **sudo yum install yum-cron

  2. Edytuj **/etc/yum/yum-cron.conf i skonfigurować **download_only parametr do **yes Zapewnia to, że pakiety są tylko pobierane, a nie instalowane automatycznie.

sudo nano /etc/yum/yum-cron.conf
  1. Uruchomić yum-cron przy użyciu polecenia **sudo systemctl start yum-cron
sudo systemctl start yum-cron
  1. W systemach offline utwórz lokalny katalog do przechowywania pobranych pakietów, na przykład **/var/cache/yum
sudo mkdir /var/cache/yum
  1. Skopiuj pobrane pakiety z systemu online do lokalnego katalogu pamięci podręcznej.
sudo cp -R /var/cache/yum /path/to/local/cache

Wymiana /path/to/local/cache ze ścieżką do lokalnego katalogu pamięci podręcznej w systemie offline.

  1. W systemach offline utwórz nowy **.repo w pliku **/etc/yum.repos.d/ wskazując na lokalny katalog pamięci podręcznej.
sudo nano /etc/yum.repos.d/local.repo

Dodaj następującą zawartość do pliku, zastępując <local-cache-path> ze ścieżką do lokalnego katalogu pamięci podręcznej:

[local]
name=Local Cache
baseurl=file:///path/to/local/cache
enabled=1
gpgcheck=0

Zapisz plik i zamknij edytor.

  1. Na koniec możesz użyć **yum update w systemach offline, aby zainstalować aktualizacje z lokalnej pamięci podręcznej.
sudo yum update

To polecenie zaktualizuje pakiety w systemach offline przy użyciu pakietów z lokalnej pamięci podręcznej.

Należy pamiętać, że trzeba będzie zastąpić **<local-cache-path> z rzeczywistą ścieżką do lokalnego katalogu pamięci podręcznej w systemie offline.


Wnioski

Obsługa aktualizacji systemu Linux w środowiskach offline może stanowić wyzwanie, ale przy odpowiednim podejściu można zapewnić, że systemy pozostaną aktualne i bezpieczne. W tym artykule omówiliśmy najlepsze sposoby radzenia sobie z instalowaniem aktualizacji offline dla Ubuntu/Debian i CentOS/RHEL. Przeanalizowaliśmy konfigurację lokalnego repozytorium i lokalnej pamięci podręcznej, dostarczając instrukcje krok po kroku zarówno dla dystrybucji opartych na Debianie, jak i Red Hat.

Postępując zgodnie z tymi metodami, można zachować bezpieczeństwo i stabilność systemów Linux, nawet w środowiskach offline. Pamiętaj, aby okresowo aktualizować lokalne repozytorium lub pamięć podręczną, aby zawierały najnowsze aktualizacje.


Referencje