SLES Zypper HTTP 500: Znajdź niedziałające repozytorium

Gdy zypper refreshw systemie SLES zostanie zgłoszony błąd HTTP 500, należy najpierw zidentyfikować adres URL repozytorium, który go zwrócił. Błąd HTTP 500 oznacza, że ​​serwer obsługujący żądanie napotkał nieoczekiwany problem; serwerem odpowiadającym może być host repozytorium, serwer RMT organizacji lub serwer proxy HTTP. Przed wyczyszczeniem lokalnych metadanych należy wyizolować uszkodzone repozytorium i naprawić lub zgłosić ten punkt końcowy. Wymuszona odbudowa pamięci podręcznej nie może naprawić serwera, który nadal zwraca błąd 500.

Aktualne podręczniki administracji i aktualizacji systemu SUSE SLES 15 SP7 dokumentują polecenia dotyczące listy i odświeżania repozytoriów, w tym zypper refresh -fdbdotyczące odbudowy lokalnych metadanych repozytorium. Nie identyfikują one bieżącego incydentu HTTP 500 w całym systemie SLES. Praktyczne rozwiązanie zależy od tego, czy adres URL należy do Centrum Obsługi Klienta SUSE, wewnętrznego serwera lustrzanego, czy repozytorium innej firmy.

Czy jedno repozytorium uległo awarii, czy jest ich kilka?

Zacznij od zapisania aliasu i adresu URL repozytorium. W SLES uruchom:

zypper repos -u

Opcja -uwyświetla pochodzenie każdego skonfigurowanego repozytorium. Zwróć uwagę, które wpisy są włączone i ustawione na odświeżanie, a następnie porównaj nazwy hostów adresów URL, które nie działają. Jeśli jedno repozytorium zewnętrzne ulegnie awarii, podczas gdy źródła aktualizacji SUSE zostaną pomyślnie odświeżone, sprawdź właściciela tego repozytorium. Jeśli kilka repozytoriów wskazuje na tego samego hosta wewnętrznego i wszystkie ulegną awarii, silniejszym tropem jest współdzielone lustro, usługa RMT, odwrotny serwer proxy lub jego połączenie nadrzędne.

Polecenie zypper repos -u wprowadza się w terminalu Linux, aby sprawdzić skonfigurowane adresy URL repozytoriów.
Polecenie terminala służące do wyświetlania listy aliasów repozytoriów i ich skonfigurowanych adresów URL źródłowych przed rozwiązywaniem problemów.

Następnie odśwież tylko repozytorium, którego dotyczy problem, według aliasu:

sudo zypper refresh -f 'Vendor-App'

Zastąp Vendor-Appgo dokładnym aliasem wskazanym przez zypper repos -u. Pozwoli to uniknąć wyświetlania ekranu z powtarzającymi się błędami z niepowiązanych repozytoriów i zapewni Ci skupiony wynik do udostępnienia administratorowi. Jeśli alias zawiera spacje, zachowaj pojedyncze cudzysłowy. Zachowaj dokładny adres URL i znacznik czasu błędu, ale usuń wszelkie osadzone nazwy użytkownika, hasła, tokeny lub inne tajne dane przed wysłaniem logów lub zrzutów ekranu.

Polecenie zypper refresh dotyczy tylko aliasu repozytorium Vendor-App.
Polecenie terminala służące do odświeżenia aliasu jednego repozytorium w celu sprawdzenia, czy protokół HTTP 500 jest izolowany od tego źródła.

Czy punkt końcowy metadanych sam w sobie zwraca HTTP 500?

Przeczytaj cały błąd Zyppera i zidentyfikuj konkretny adres URL metadanych, który on wskazuje – często jest to plik w katalogu repozytorium repodata. Jeśli punkt końcowy można przeszukać bez poświadczeń, porównaj jego odpowiedź HTTP z hosta SLES:

curl -sS -D - -o /dev/null --max-time 20 "$METADATA_URL"

Ustaw METADATA_URLdokładny adres URL metadanych, które nie działają, bez podawania danych uwierzytelniających w adresie URL lub wierszu poleceń. Polecenie wyświetla nagłówki odpowiedzi i usuwa treść odpowiedzi. Wynik, taki jak HTTP/1.1 500„potwierdza”, że serwer w ścieżce żądania zwraca błąd; nie dowodzi on jednak, czy błąd został wygenerowany przez źródło, czy pośrednika. Curl może również używać innych ustawień uwierzytelniania lub proxy niż Zypper, więc traktuj to jako porównanie, a nie jako definitywne odtworzenie. Jeśli dostęp do repozytorium wymaga uwierzytelnienia, użyj zatwierdzonej w organizacji metody testowania zamiast ujawniania danych uwierzytelniających.

Polecenie curl żąda nagłówków odpowiedzi HTTP dla adresu URL metadanych przechowywanych w zmiennej REPO_URL.
Polecenie terminala umożliwiające sprawdzenie odpowiedzi HTTP z dokładnego punktu końcowego metadanych repozytorium zgłoszonego przez Zypper.

Odpowiedź 500 różni się od problemu z lokalną pamięcią podręczną metadanych. Różni się również od awarii DNS, błędów certyfikatu TLS, przekroczenia limitu czasu i odpowiedzi uwierzytelniających, takich jak 401 lub 403. Te komunikaty wymagają innych kontroli. Nie należy wyłączać weryfikacji TLS, zmieniać repozytorium na zwykły HTTP ani wielokrotnie usuwać pamięci podręcznej, aby zniknęła odpowiedź 500. W przypadku semantyki HTTP, RFC 9110 definiuje odpowiedź 500 jako nieoczekiwany stan serwera, który uniemożliwił realizację żądania.

Gdzie należy dokonać naprawy?

  • Repozytoria Centrum Obsługi Klienta SUSE: Spróbuj ponownie po krótkiej przerwie, jeśli awaria wydaje się tymczasowa. Jeśli ten sam hostowany punkt końcowy SUSE nadal zwraca błąd 500, zapisz produkt, dodatek Service Pack, architekturę, adres URL repozytorium i czas awarii, a następnie sprawdź ścieżkę wsparcia technicznego SUSE w swojej organizacji. Potwierdź dane rejestracji i subskrypcji, jeśli odpowiedź wskazuje na problem z uprawnieniami lub dostępem; sam błąd HTTP 500 nie oznacza, że ​​subskrypcja jest nieważna.
  • RMT lub inne wewnętrzne lustro: Poproś administratora lustra o sprawdzenie dzienników serwera i odwrotnego serwera proxy w zarejestrowanym czasie, potwierdzenie, że żądane repozytorium jest włączone i zsynchronizowane oraz sprawdzenie, czy plik metadanych istnieje w obsługiwanej ścieżce. SUSE dokumentuje RMT jako sposób, w jaki klienci SLES mogą pobierać aktualizacje z serwera lokalnego zamiast kontaktować się bezpośrednio z SCC.
  • Repozytorium innej firmy: Sprawdź aktualne instrukcje dostawcy dotyczące repozytorium i upewnij się, że adres URL jest zgodny z zainstalowaną wersją i architekturą SLES. Jeśli źródło zostało przeniesione, zaktualizuj je tylko do adresu URL opublikowanego przez tego dostawcę. Wyłącz repozytorium dopiero po potwierdzeniu, że jest opcjonalne i nie jest już potrzebne; nie pozostawiaj wyłączonego wymaganego źródła aktualizacji SLES, aby ukryć błąd.

Stan repozytorium można sprawdzić i zmienić za pomocą Zyppera lub YaST. Na przykład, udokumentowane zypper modifyrepopolecenie może wyłączyć repozytorium za pomocą aliasu, ale jest to opcja tymczasowa, a nie naprawa uszkodzonego wymaganego źródła. Unikaj edycji wygenerowanych adresów URL repozytorium na zasadzie domysłów, zwłaszcza po migracji Service Packa, ponieważ repozytoria produktów i aktualizacji korzystają ze ścieżek specyficznych dla wersji.

Kiedy należy odbudować pamięć podręczną lokalnych metadanych?

Dopiero po otrzymaniu prawidłowej odpowiedzi od serwera lub serwera proxy należy ponowić próbę połączenia ze wszystkimi włączonymi repozytoriami:

sudo zypper refresh -f
Polecenie zypper refresh -f wymusza odświeżenie metadanych repozytorium po rozwiązaniu problemu po stronie serwera.
Polecenie terminala umożliwiające ponowienie próby wymuszonego odświeżenia po przywróceniu sprawności punktu końcowego repozytorium.

Jeśli punkt końcowy teraz odpowiada, ale Zypper nadal zgłasza nieaktualne lub niespójne dane lokalnego repozytorium, sekcja rozwiązywania problemów SLES 15 SP7 w systemie SUSE zaleca całkowite odświeżenie metadanych i przebudowę bazy danych za pomocą:

sudo zypper refresh -fdb

Wymusza to pobranie surowych metadanych i odbudowę lokalnej bazy danych Zyppera z możliwością rozwiązania. Jest to przydatne w przypadku problemów z lokalnymi metadanymi, ale nie rozwiązuje problemu z ciągłym komunikatem o błędzie 500. Nie należy mylić odświeżania metadanych repozytorium z instalacją aktualizacji: uruchom standardowe polecenie łatki lub aktualizacji dopiero po pomyślnym zakończeniu odświeżania.

Jak weryfikujesz poprawkę?

Uruchom zypper refresh -f 'ALIAS'dla poprzednio uszkodzonego źródła, a następnie sudo zypper refresh -fdla wszystkich włączonych repozytoriów. Naprawa zostanie potwierdzona, gdy metadane uszkodzonego repozytorium zostaną pobrane bez protokołu HTTP 500, a Zypper zakończy działanie bez włączonego uszkodzonego źródła. Jeśli jedno źródło nadal będzie miało awarię, zachowaj dokładny adres URL, kod statusu, nagłówki odpowiedzi i czas i przekaż je właścicielowi tego punktu końcowego.

Oficjalne źródła

Zostaw komentarz

Włącz tryb FIPS w systemie SLES 15 i sprawdź stan rozruchu

Włącz tryb FIPS w systemie SLES 15 i sprawdź stan rozruchu

Postępuj zgodnie z procedurą SUSE SP7, aby włączyć tryb FIPS, bezpiecznie przeprowadzić ponowne uruchomienie, zweryfikować aktywną politykę i sprawdzić, czy wymagania dotyczące zgodności obejmują sprawdzone moduły.

Konfigurowanie woluminu danych zaszyfrowanego za pomocą LUKS na SLES

Konfigurowanie woluminu danych zaszyfrowanego za pomocą LUKS na SLES

Porównaj YaST i cryptsetup dla nowego zaszyfrowanego woluminu danych SLES, wybierz LUKS1 lub LUKS2 i sprawdź, czy odblokowywanie i montowanie przebiega bezpiecznie.

Zbuduj lokalny serwer aktualizacji SUSE z RMT na SLES 15

Zbuduj lokalny serwer aktualizacji SUSE z RMT na SLES 15

Skonfiguruj RMT na SLES 15, utwórz kopię lustrzaną uprawnionych repozytoriów i zweryfikuj rejestrację HTTPS oraz dostęp do pakietów z poziomu klienta testowego.

Dołączanie SLES 15 do Active Directory za pomocą SSSD w YaST

Dołączanie SLES 15 do Active Directory za pomocą SSSD w YaST

Połącz SLES 15 z usługą Active Directory za pomocą opartego na SSSD mechanizmu logowania YaST, a następnie zweryfikuj wyszukiwanie w katalogu, logowanie do domeny i bilety Kerberos.

Włącz funkcję SLES Live Patching i zweryfikuj poprawkę jądra

Włącz funkcję SLES Live Patching i zweryfikuj poprawkę jądra

Skonfiguruj właściwą ścieżkę Live Patching dla systemu SLES 16.0 lub 15 SP7, zastosuj odpowiednie poprawki jądra i potwierdź, co jest aktywne, nie myląc tego z aktualizacją jądra wymaganą przy ponownym uruchomieniu komputera.

Zachowaj dostępność usług podczas aktualizacji SLES 15 SP5 do SP6

Zachowaj dostępność usług podczas aktualizacji SLES 15 SP5 do SP6

SLES 15 SP5 można migrować online do SP6, ale każdy węzeł wymaga ponownego uruchomienia. Użyj sprawdzonej aktualizacji ciągłej lub przejścia na system Blue-Green, aby utrzymać dostępność obciążeń.

Zbuduj niestandardowy profil AppArmor w systemie SUSE Linux

Zbuduj niestandardowy profil AppArmor w systemie SUSE Linux

Utwórz, udoskonal i zweryfikuj profil AppArmor o najniższych uprawnieniach w systemie SLES 15 SP7, z czytelną notatką na temat domyślnego ustawienia SELinux w systemie SLES 16.

Bezpieczne stosowanie SLES 15 STIG z OpenSCAP

Bezpieczne stosowanie SLES 15 STIG z OpenSCAP

Użyj obsługiwanego profilu STIG firmy SUSE do skanowania systemu SLES 15, testowania działań naprawczych, przeglądania pozostałych ustaleń i zachowywania dowodów oceny.

Przywróć dostęp do kokpitu w systemie SUSE Linux Enterprise Server

Przywróć dostęp do kokpitu w systemie SUSE Linux Enterprise Server

Prześledź nieudane połączenie z Cockpitem przez DNS, port 9090, gniazdo systemd, zaporę firewalld, TLS i ustawienia logowania, korzystając z bieżących wskazówek SUSE.

Konfigurowanie niezawodnego przełączania awaryjnego sieci Ethernet z łączeniem SLES 15

Konfigurowanie niezawodnego przełączania awaryjnego sieci Ethernet z łączeniem SLES 15

Utwórz redundantne połączenie Ethernet w systemie SLES 15 za pomocą YaST i Wicked, skonfiguruj łączenie aktywnych kopii zapasowych i zweryfikuj oba porty oraz funkcję przełączania awaryjnego.