Dokumen ini menjelaskan cara menyelesaikan masalah yang mungkin Anda alami saat menghubungkan instance mesin virtual (VM) Compute Engine yang menjalankan bayar sesuai penggunaan (PAYG) SUSE Linux Enterprise Server (SLES) ke repositori USE Subscription Management Tool (SMT).
Sebelum memulai
- Pastikan VM memiliki akun layanan terkait.
- Pastikan Service Metadata API dapat diakses dari VM.
- Pastikan konektivitas jaringan dari VM ke Server Region dan Server SMT masing-masing
- Gunakan alat sc-repocheck untuk memecahkan masalah secara otomatis.
- Lihat langkah-langkah yang dijelaskan dalam panduan pemecahan masalah SUSE PAYG.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan region dan zona default.
Masalah jaringan
Nama domain yang tidak dapat diselesaikan
Anda mungkin mengalami masalah berikut jika VM tidak dapat terhubung ke server SMT smt-gce.susecloud.net:
SUSEConnect error: SocketError: getaddrinfo: Name or service not known
ping: unknown host smt-gce.susecloud.net
Penyebab masalah ini umumnya karena resolusi yang salah untuk nama domain server SMT smt-gce.susecloud.net. Domain ini tidak dapat diselesaikan secara global, jadi Anda harus menyetel alamat IP-nya sesuai dengan region VM dengan melakukan hal berikut:
Periksa file /etc/hosts untuk memastikan file tersebut berisi entri dengan domain smt-gce.susecloud.net.
cat /etc/hosts | grep -i smtOutputnya mungkin terlihat mirip dengan berikut ini, tetapi alamat IP-nya mungkin berbeda:
# Added by SMT registration do not remove, retain comment as well
108.59.80.221 smt-gce.susecloud.net smt-gce
Jika file /etc/hosts tidak berisi baris yang sama dengan contoh sebelumnya, lakukan langkah berikut:
Temukan alamat IP yang sesuai dengan region VM dari daftar alamat IP SMT SUSE.
Edit file untuk menambahkan alamat IP SMT SUSE dan informasi lain yang tidak ada.
Ketidaktersediaan jaringan
Anda mungkin mengalami error berikut karena tidak tersedianya jaringan, meskipun VM dapat me-resolve nama domain Compute Engine Update Server:
Unexpected exception.
Not ready to read within timeout.
Repository 'SLE-Module-Adv-Systems-Management12-Pool' is invalid.
Repository 'SLE-Module-Adv-Systems-Management12-Updates' is invalid.
Berikut adalah beberapa contoh error yang mungkin Anda temukan dalam file log /var/log/cloudregister selama penyelidikan:
WARNING:Unable to remove client registration from server
WARNING:HTTPSConnectionPool(host='smt-gce.susecloud.net', port=443): Max retries exceeded with url: /connect/systems (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 110] Connection timed out',))
INFO:Region server arguments: ?regionHint=europe-central2
ERROR:No response from: [('34.118.112.80', None), ('34.116.251.218', None), ('34.116.224.144', None)]
Untuk mempelajari lebih lanjut penyebab masalah, lakukan uji konektivitas jaringan.
Contoh berikut menunjukkan cara menguji koneksi HTTPS menggunakan cURL:
curl -sSI -m 5 -o /dev/null \
-w 'Response code (>0 is OK): %{http_code}\n' \
'https://smt-gce.susecloud.net'Output perintah berisi kode respons HTTP atau pesan error. Berikut adalah respons dan error umum:
Respons yang berhasil:
Response code (>0 is OK): 200Error waktu tunggu permintaan:
Response code (>0 is OK): 000 curl: (28) Connection timed out after 5001 millisecondsError domain yang tidak dapat diselesaikan:
Response code (>0 is OK): 000 curl: (6) Could not resolve host: smt-gce.susecloud.net
Dalam skenario tertentu, seperti aturan firewall host yang ketat, alamat IP default yang terkait dengan domain smt-gce.susecloud.net mungkin tidak tersedia. Untuk memastikan bahwa masalah ini tidak hanya terkait dengan alamat IP saat ini, uji konektivitas jaringan untuk server regional alternatif. Ambil daftar server regional:
Buka SUSE WebUI untuk mendapatkan daftar server update regional.
Gunakan alat pint untuk mendapatkan daftar server update regional melalui CLI.
Instal paket yang diperlukan
sudo zypper install python3-susepubliccloudinfoGunakan perintah berikut dengan region tertentu
pint google servers --region us-central1Output yang berhasil berisi daftar entri dalam format XML
<?xml version='1.0' encoding='UTF-8'?> <servers> <server ip="146.148.73.14" name="" region="us-central1" type="regionserver-sles"/> <server ip="162.222.182.90" name="" region="us-central1" type="regionserver-sap"/> <server ip="108.59.80.221" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> <server ip="108.59.85.41" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> <server ip="108.59.80.58" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> </servers>
Untuk menemukan daftar lengkap IP server SUSE untuk Google Cloud, lihat dokumen berikut:
Kesalahan konfigurasi VM dapat menyebabkan ketidaktersediaan jaringan. Jika Anda mengalami masalah, lakukan diagnostik jaringan untuk mengidentifikasi penyebab utama.
Pendaftaran gagal
Anda mungkin mengalami error berikut jika memiliki VM dengan alamat IP pribadi di Cloud NAT:
ERROR: Registration failed: Registering system to registration proxy https://smt-gce.susecloud.net
command '/usr/bin/zypper --non-interactive refs Python_3_Module_x86_64' failed
Error: zypper returned 4 with 'Problem retrieving the repository index file for service 'Python_3_Module_x86_64':
Timeout exceeded when accessing 'https://smt-gce.susecloud.net/services/2045/repo/repoindex.xml?credentials=Python_3_Module_x86_64'.
Untuk mengatasi masalah ini, tinjau konfigurasi Cloud NAT Anda dan pastikan Anda telah menyetel parameter port minimum per instance VM ke minimal 256.
Untuk informasi selengkapnya, lihat buletin dukungan SUSE Pendaftaran dan zypper gagal untuk instance Compute Engine di balik Cloud NAT.
Tidak ada respons
Jika VM Anda mengalami masalah saat berkomunikasi dengan server update dan region, Anda mungkin melihat error berikut:
Error
SUSEConnect:SUSEConnect error: Errno::ETIMEDOUT: Connection timed out - connect(2) for "smt-gce.susecloud.net" port 443Error
zypper:Error retrieving metadata for 'SLE-Module-Adv-Systems-Management12-Pool': Not ready to read within timeout. ...
Error ini dapat terjadi saat server update dan region tidak merespons. Untuk memastikan apakah hal ini terjadi, periksa log /var/log/cloudregister untuk menemukan konten serupa:
INFO:Region server arguments: ?regionHint=europe-central2
INFO:Using API: regionInfo
INFO:Region server arguments: ?regionHint=europe-central2
INFO:Getting update server information, attempt 1
INFO: Using region server: 130.211.242.136
ERROR: No response from: 130.211.242.136
INFO: Using region server: 35.187.193.56
ERROR: No response from: 35.187.193.56
INFO: Using region server: 162.222.182.90
ERROR: No response from: 162.222.182.90
INFO: Using region server: 130.211.88.88
ERROR: No response from: 130.211.88.88
ERROR: None of the servers responded
ERROR: Attempted: [IPv4Address('130.211.242.136'), IPv4Address('35.187.193.56'), IPv4Address('162.222.182.90'), IPv4Address('130.211.88.88')]
...
...
...
ERROR:Request not answered by any server after 3 attempts
ERROR:Exiting without registration
Untuk mengatasi masalah ini, coba satu atau beberapa langkah berikut:
Pastikan VM memiliki alamat IP eksternal atau bahwa subnet Virtual Private Cloud menggunakan NAT (Cloud NAT atau solusi kustom).
Jika Anda mengubah aturan perutean jaringan default, seperti membatasi akses Internet publik atau merutekan traffic melalui jaringan lokal, tambahkan rute secara manual untuk IP SMT melalui gateway Compute Engine default, dengan melakukan hal berikut ini:
Buka halaman Routes di konsol Google Cloud .
Pada tab Route Management, cari rute yang menyertakan alamat IP SMT SUSE dan pastikan gateway default Compute Engine ditetapkan sebagai hop berikutnya.
Jika rute tidak ada, tambahkan dengan mengklik Create Route dan memasukkan informasi yang diperlukan.
Jika Anda menggunakan Network Load Balancer passthrough internal, misalnya dengan software jaringan perantara tambahan (seperti firewall atau NAT kustom), pastikan load balancer adalah next hop untuk traffic VM, dengan melakukan hal berikut:
Buka halaman VM instances di konsol Google Cloud .
Klik nama VM yang ingin diperiksa. Halaman VM details akan terbuka.
Di bagian Network interfaces, klik View details.
Di bagian Firewall and routes details, temukan rute yang menentukan jalur ke rentang alamat IP yang dipilih.
Klik nama rute dan pastikan bahwa Network Load Balancer passthrough internal atau alamat IP-nya adalah hop berikutnya.
Jika tidak ada rute yang menentukan jalur ke rentang alamat IP yang dipilih, atau jika next hop rute berbeda dengan Network Load Balancer passthrough internal, maka siapkan Network Load Balancer passthrough internal sebagai next hop.
Jika Anda menggunakan Network Load Balancer passthrough internal, pastikan load balancer tersebut berada di region yang sama dengan VM.
Buka halaman VM instances di konsol Google Cloud .
Temukan VM yang ingin Anda periksa dan catat regionnya.
Buka halaman Load balancing di konsol Google Cloud .
Temukan Network Load Balancer passthrough internal yang digunakan, lalu periksa apakah load balancer tersebut berada di region yang sama dengan VM.
Jika VM dan Network Load Balancer passthrough internal tidak berada di region yang sama, aktifkan akses global.
Pendaftaran di balik proxy
Anda mungkin mengalami masalah jika VM Anda menggunakan proxy non-transparan atau software lain yang melakukan pemeriksaan man-in-the-middle (MITM) (misalnya, Barracuda CloudGen Firewall, Palo Alto). Contoh berikut menunjukkan upaya untuk mendaftarkan SLES menggunakan proxy HTTP.
ERROR: Baseproduct registration failed ERROR: Registering system to registration proxy https://smt-gce.susecloud.net Announcing system to https://smt-gce.susecloud.net ... SUSEConnect error: Net::HTTPFatalError: 503 "Service Unavailable"
SUSE tidak secara resmi mendukung pendaftaran SLES di belakang proxy person-in-the-middle (PITM) dan proxy tidak transparan di Compute Engine. Konfigurasi proxy PITM gagal selama pendaftaran karena penyematan sertifikat.
Sebaiknya gunakan konfigurasi Cloud NAT atau siapkan server SMT kustom.
Pelanggaran Kontrol Layanan VPC
Jika organisasi Anda menggunakan Kontrol Layanan VPC (VPC-SC), pendaftaran mungkin gagal dan
Anda mungkin melihat pesan error Request is prohibited by organization's policy.
Kegagalan ini dapat disebabkan oleh pelanggaran ingress atau egress jika Anda belum
mengonfigurasi pengecualian untuk Infrastruktur Update SUSE dalam kebijakan VPC-SC Anda.
Untuk mengatasi masalah ini, tambahkan komponen berikut ke daftar yang diizinkan dalam kebijakan VPC-SC Anda agar VM dapat berkomunikasi dengan Infrastruktur Update SUSE:
- Update Project Infrastruktur:
Suse-gce-smt(Nomor Project: 778092048372) - Akun Layanan:
778092048372@project.gserviceaccount.com - Metode yang Diperlukan:
compute.alpha.InstancesService.GetLicenses
Masalah konfigurasi OS
Status pendaftaran tidak diketahui
Jika tidak tahu apakah bayar sesuai penggunaan (PAYG) SUSE Linux Enterprise Server (SLES) Anda terdaftar atau tidak, jalankan perintah berikut:
sudo SUSEConnect --status-textOutput-nya berisi versi dan status pendaftaran produk SUSE, termasuk SUSE Linux Enterprise Server.
Installed Products:
------------------------------------------
SUSE Linux Enterprise Server 12 SP5
(SLES/12.5/x86_64)
Registered
------------------------------------------
...
Jika statusnya adalah Not Registered, daftarkan ulang VM untuk memperbaiki masalah:
sudo registercloudguest --force-newSymlink produk dasar salah
Anda mungkin mengalami error berikut jika link produk dasar mengarah ke file produk yang salah:
2020-06-17 12:03:56,124 ERROR:Unable to obtain product information from server "108.59.85.41,None"
Unprocessable Entity
{"type":"error","error":"Unmet product dependencies, activate one of these products first: SUSE Linux Enterprise Server 12 x86_64, SUSE Linux Enterprise Server for SAP Applications 12 x86_64, SUSE Linux Enterprise Server 12 SP1 x86_64, ...","localized_error":"..."}
Unable to register modules, exiting.
Error ini terjadi saat link simbolis /etc/products.d/baseproduct mengarah ke
file produk yang salah (misalnya, sle-module-toolchain.prod).
Untuk mengatasi masalah ini, perbarui symlink di /etc/products.d/baseproduct agar mengarah ke file produk dasar yang sesuai:
Buka direktori
/etc/products.d.cd /etc/products.dJalankan perintah berikut dengan mengganti
SLES.proddenganSLES_SAP.prodjika Anda telah menginstal SLES untuk SAP:sudo ln -sf SLES.prod baseproduct
Informasi identitas instance tidak tersedia
Anda mungkin mengalami error berikut jika informasi identitas instance tidak tersedia untuk VM. Masalah ini dapat terjadi jika akun layanan tidak ditambahkan ke instance, atau jika akun layanan yang ditambahkan dinonaktifkan.
ERROR:Data collected from stderr for instance data collection "b'Unable to access instance identity information\n'"
Untuk mengakses metadata instance untuk token identitas, semua VM harus memiliki akun layanan terkait.
Untuk informasi selengkapnya, baca Update Infrastruktur Cloud Publik.
Untuk memeriksa status akun layanan VM Anda, jalankan perintah berikut di VM:
curl -s -H 'Metadata-Flavor: Google' \
'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=test'Contoh respons yang berhasil dengan token identitas:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjkzOTd0MDQxSHQ2NDNxNzkzUjY1MDIwNzEyMjZPNnppaTdqNTl3eTciLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ0ZXN0IiwiYXpwIjoiMjY1MDIwMDUyMzgzMjYyNTk0ODU2IiwiZXhwIjoxNjgzNzEyNTQzLCJpYXQiOjE2ODM3MTI4NjQsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsInN1YiI6IjQ1NjA2MzQ5MDg5Mzc0Njg3ODI5NyJ9.EpzQ3NZ8mKStdpH10fL34qsKG0rjQEflzvLJLm2tVNX4xBJAkMhi8lcs5InUEY-QMK3njgbzdzNtD1fXoIfKoeWsqkA8vG3NkBz5zqRrtaB2STcO14H5tjIdTBsrCtET447tRXlGG5cvgMcWnRDZG92-jUZEpWki_Ri4T69X5-bBWkfE2Thm3oSUW4fScdeVOEmOgWnzD2jeVqQ_2YniywvpkT-rLzKfN-5AgN66zgBfXqJVTC90KFMebfiaOoL7z6ZSM9AjZGf45QEMZjxjd-Xzyee6ZWK8s0RE3hJlytb3zYcLt3tJwQ1WhnrC2ToJ-ZmKxxK3xKDLCvCQ6Ny5to
Jika VM tidak terpengaruh, Anda akan menerima token. Jika VM terpengaruh, metadata yang ditampilkan adalah pesan error yang mirip dengan berikut ini:
{
"error": "invalid_request",
"error_description": "Service account not enabled on this instance"
}
Untuk memperbaiki masalah ini, lakukan langkah-langkah berikut:
Menghentikan VM:
gcloud compute instances stop VM_NAMETambahkan akun layanan ke VM:
gcloud compute instances set-service-account VM_NAME \ --service account SERVICE_ACCOUNT \ --no-scopesMemulai VM:
gcloud compute instances start VM_NAMESetelah menambahkan akun layanan yang tidak ada, jalankan perintah berikut dari VM untuk mendaftarkan ulang SLES:
sudo registercloudguest --force-new
Paket yang diperlukan tidak ada
Pendaftaran dapat gagal jika VM Anda tidak memiliki paket penting seperti
cloud-regionsrv-client, regionServiceClientConfigGCE, cloud-netconfig-gce,
atau suseconnect-ng.
Untuk mengatasi masalah ini, instal paket yang diperlukan, hapus file pendaftaran, dan daftarkan ulang VM.
Instal paket yang belum ada.
sudo zypper install PACKAGE_NAMEGanti
PACKAGE_NAMEdengan nama paket yang tidak ada.Membersihkan file pendaftaran lama:
sudo registercloudguest --clean sudo SUSEConnect --cleanup sudo rm -f /etc/zypp/credentials.d/* sudo rm -f /etc/zypp/repos.d/* sudo rm -f /etc/zypp/services.d/*Daftarkan ulang VM:
sudo registercloudguest --force-new
Link simbolis python3 yang salah
Jika Anda menjalankan registercloudguest dan melihat error ModuleNotFoundError: No module
named 'requests', link simbolis /usr/bin/python3 yang salah mungkin menjadi penyebabnya, misalnya, jika Anda menggantinya secara manual.
Traceback (most recent call last): File "/usr/sbin/registercloudguest", line 34, in <module> import requests ModuleNotFoundError: No module named 'requests'
Untuk mengatasi masalah ini, buat ulang link simbolis agar mengarah ke versi Python yang benar.
Konfirmasi versi Python yang diinstal pada instance:
sudo zypper info python3Periksa link simbolis
python3:ls -ll /usr/bin | grep -i python3Jika link salah, hapus link tersebut dan buat link baru yang mengarah ke versi Python yang benar (misalnya,
python3.6):sudo rm /usr/bin/python3 sudo ln -sf /usr/bin/python3.6 /usr/bin/python3
Verifikasi sertifikat SSL gagal
Jika file sertifikat tidak ada di direktori /etc/pki/trust/anchors,
Anda mungkin melihat error seperti Curl error 60 atau ssl.SSLError: [SSL:
CERTIFICATE_VERIFY_FAILED]. Berikut contoh error yang lebih mendetail yang mungkin Anda lihat di /var/log/cloudregister:
Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 677, in urlopen ... File "/usr/lib64/python3.6/ssl.py", line 689, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)
Anda dapat mengonfirmasi bahwa file sertifikat tidak ada dengan menjalankan perintah berikut dan melihat output kosong:
ls -lart /etc/pki/trust/anchorsOutput harus kosong jika sertifikat tidak ada:
total 0
Untuk mengatasi masalah ini, coba salah satu opsi berikut:
Opsi 1: Hapus dan daftar ulang
Bersihkan semua file yang terkait dengan pendaftaran, lalu paksa pendaftaran baru. Proses pendaftaran mendownload sertifikat yang diperlukan dari server wilayah.
sudo registercloudguest --clean && \ sudo SUSEConnect --cleanup && \ sudo rm -f /etc/zypp/credentials.d/* && \ sudo rm -f /etc/zypp/repos.d/* && \ sudo rm -f /etc/zypp/services.d/* && \ sudo rm -f /etc/pki/trust/anchors/* && \ sudo sed -i '/^# Added by SMT reg/,+1d' /etc/hosts && \ sudo registercloudguest --force-newOpsi 2: Menyalin sertifikat dari instance yang berfungsi
Jika menghapus dan mendaftarkan ulang tidak menyelesaikan masalah, Anda dapat menyalin file sertifikat dari instance yang berfungsi menggunakan
gcloud compute scpatau dengan melampirkan boot disk instance yang berfungsi ke instance yang gagal.Jika Anda menghubungkan dan memasang disk instance yang berfungsi di
MOUNT_PATH, jalankan perintah berikut:sudo cp MOUNT_PATH/etc/pki/trust/anchors/* /etc/pki/trust/anchors/ sudo update-ca-certificates sudo cp -pr MOUNT_PATH/usr/lib/regionService /usr/lib/regionService sudo registercloudguest --force-new
Inkompatibilitas paket libzypp
VM SUSE PAYG dengan SLES for SAP 15 mungkin gagal mendaftar dengan error yang mirip dengan berikut ini:
ERROR:Baseproduct registration failed Registering system to registration proxy https://smt-gce.susecloud.net ... command '/usr/bin/zypper --non-interactive refs SUSE_Linux_Enterprise_Server_for_SAP_Applications_x86_64' failed Error: zypper returned 1 with 'Error occurred while setting download (curl) options for 'https://smt-gce.susecloud.net/services/2294?credentials=SUSE_Linux_Enterprise_Server_for_SAP_Applications_x86_64': Unexpected exception. Unknown error reading from 'plugin:/susecloud?credentials=SUSE_Linux_Enterprise_Server_for_SAP_Applications_x86_64&path=/services/2294' ... - Error occurred while setting download (curl) options for 'https://smt-gce.susecloud.net/services/2294?credentials=SUSE_Linux_Enterprise_Server_for_SAP_Applications_x86_64':
Masalah ini dapat terjadi saat update ke paket libzypp meninggalkan versi paket libcurl4 yang tidak kompatibel. Saat mencoba melakukan update sendiri, libzypp tidak dapat lagi menggunakan libcurl4 untuk membuat permintaan ke lokasi paket.
Untuk mengatasi masalah ini, perbarui paket libzypp secara manual. Perintah
berikut adalah contoh, dan Anda mungkin perlu menyesuaikan nomor versi:
sudo rpm -i libzypp-17.31.31-150400.3.52.2.x86_64.rpmVersi OS yang tidak didukung atau paket yang sudah usang
Jika Anda menjalankan versi OS yang berada di luar periode dukungan umumnya—misalnya, SLES 12 SP4, yang Dukungan Umumnya berakhir pada 30 Juni 2020—pendaftaran mungkin gagal. Kegagalan ini dapat terjadi karena paket yang sudah tidak berlaku di VM tidak dapat berkomunikasi dengan infrastruktur update SUSE. Anda mungkin melihat
error tentang IP yang tidak dapat dijangkau dalam file log /var/log/cloudregister, meskipun
konektivitas jaringan tampaknya berhasil sebagian (misalnya, jika menggunakan telnet ke server
SMTP menampilkan error 403 Forbidden).
Untuk memeriksa apakah paket sudah tidak berlaku, Anda dapat melihat tanggal penginstalannya. Paket yang belum diperbarui selama lebih dari setahun mungkin sudah tidak berlaku. Untuk memeriksa waktu update terakhir paket, gunakan perintah berikut:
rpm -qa --qf '%{NAME}-%{VERSION} : %{INSTALLTIME:date}\n' | grep PACKAGE_NAMEUntuk mengatasi masalah ini, lakukan upgrade ke versi SLES yang didukung. Anda mungkin juga perlu mengupdate paket tertentu seperti yang dijelaskan dalam Dokumen Informasi Teknis (TID) SUSE.