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.
- 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 adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan 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
Masalah ini kemungkinan disebabkan oleh 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 smt
Outputnya 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 dalam file log /var/log/cloudregister
, yang mungkin Anda temukan 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 mengetahui 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 perintahnya berisi kode respons HTTP atau pesan error. Berikut adalah respons dan error umum:
Respons yang berhasil:
Response code (>0 is OK): 200
Error waktu tunggu permintaan:
Response code (>0 is OK): 000 curl: (28) Connection timed out after 5001 milliseconds
Error 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, lakukan pengujian konektivitas jaringan untuk server regional alternatif. Ambil daftar server regional dengan melakukan hal berikut:
WebUI
Buka SUSE WebUI untuk mendapatkan daftar server update regional.
CLI
Gunakan alat pint
untuk mendapatkan daftar server update regional melalui CLI.
Instal paket yang diperlukan
sudo zypper install python3-susepubliccloudinfo
Gunakan perintah berikut dengan region tertentu
pint google servers --region us-central1
Output 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:
Ketidaktersediaan jaringan mungkin disebabkan oleh kesalahan konfigurasi VM. Jika terjadi masalah, Anda perlu melakukan diagnostik jaringan untuk mengidentifikasi penyebab utama.
Pendaftaran gagal
Anda mungkin mengalami error berikut jika memiliki VM yang memiliki 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 untuk memastikan bahwa parameter port minimum per instance VM disetel ke minimal 160.
Untuk informasi selengkapnya, lihat buletin dukungan SUSE Pendaftaran dan zypper gagal untuk instance Compute Engine di balik Cloud NAT.
Tidak ada respons
Jika VM 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 443
Error
zypper
:Error retrieving metadata for 'SLE-Module-Adv-Systems-Management12-Pool': Not ready to read within timeout. ...
Error ini dapat disebabkan oleh tidak adanya respons dari server update dan region. 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 default Compute Engine, dengan melakukan hal berikut ini:
Buka halaman Route 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, Anda dapat menambahkannya 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, NAT kustom, dll.), pastikan load balancer digunakan sebagai hop berikutnya 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 diinginkan.
Klik nama rute dan pastikan bahwa Network Load Balancer internal passthrough atau alamat IP-nya ditetapkan sebagai hop berikutnya.
Jika tidak ada rute yang menentukan jalur ke rentang alamat IP yang diinginkan, atau jika hop berikutnya dalam rute tersebut berbeda dengan Network Load Balancer passthrough internal, maka siapkan Network Load Balancer passthrough internal sebagai hop berikutnya.
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.
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-text
Output-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
, mulai dari proses pendaftaran ulang untuk memperbaiki masalah.
Symlink produk dasar salah
Anda mungkin mengalami error berikut jika link produk dasar mengarah ke file produk yang salah:
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... ... Unable to register modules, exiting.
Error ini disebabkan oleh file produk yang salah (yaitu sle-module-toolchain.prod
) yang diarahkan oleh link simbolis /etc/products.d/baseproduct
.
Untuk mengatasi masalah ini, perbarui symlink di /etc/products.d/baseproduct
agar mengarah ke file produk dasar yang sesuai, dengan melakukan tindakan berikut:
Buka direktori
/etc/products.d
.cd /etc/products.d
Jalankan perintah berikut dengan mengganti
SLES.prod
denganSLES_SAP.prod
jika SLES untuk SAP terinstal:sudo ln -sf SLES.prod baseproduct
Informasi identitas instance tidak tersedia
Anda mungkin mengalami error berikut jika informasi identitas instance tidak tersedia untuk VM:
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 dikaitkan dengan akun layanan.
Untuk informasi selengkapnya, baca Update Infrastruktur Cloud Publik.
Untuk memeriksa apakah VM relevan dengan situasi ini, 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 metadata yang ditampilkan bukan berupa token, tetapi berupa pesan error seperti berikut, VM terpengaruh:
{
"error": "invalid_request",
"error_description": "Service account not enabled on this instance"
}
Untuk memperbaiki masalah ini, lakukan langkah-langkah berikut:
Hentikan VM:
gcloud compute instances stop VM_NAME
Tambahkan akun layanan ke VM:
gcloud compute instances set-service-account VM_NAME \ --service account SERVICE_ACCOUNT \ --no-scopes
Mulai VM:
gcloud compute instances start VM_NAME
Setelah menambahkan akun layanan yang tidak ada, jalankan perintah berikut dari VM untuk mendaftarkan ulang SLES:
sudo registercloudguest --force-new
Periksa detailnya di bagian pendaftaran ulang.
Pendaftaran di balik proxy
Anda mungkin mengalami masalah jika VM Anda dikonfigurasi untuk menggunakan segala jenis software proxy. Contoh berikut menunjukkan upaya untuk mendaftarkan SLES melalui 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 di Compute Engine tidak memberikan dukungan resmi untuk pendaftaran sistem operasi jika dilakukan melalui perantara yang mengubah komunikasi asli, seperti proxy man-in-the-middle (MITM) atau tidak transparan jenis data.
Solusi resmi untuk mengatasi masalah ini adalah Menyiapkan Cloud NAT dan mengarahkan traffic VM melaluinya.
Solusi umum
Pendaftaran ulang
Dalam beberapa kasus, pendekatan pendaftaran ulang dapat digunakan untuk mengatasi masalah pendaftaran.
Untuk memaksa pendaftaran baru, gunakan perintah berikut:
sudo registercloudguest --force-new
Jika berhasil, baris berikut akan muncul.
Registration succeeded
Detail proses pendaftaran ulang dapat ditemukan di /var/log/cloudregister
.
Contoh yang berhasil
INFO:Forced new registration INFO:Clean current registration server: ('108.59.80.221', None) ... INFO:Starting new HTTP connection (1): 169.254.169.254 INFO:Region server arguments: ?regionHint=us-central1 INFO:Using region server: 130.211.242.136 INFO:Starting new HTTPS connection (1): 130.211.242.136 INFO:Starting new HTTPS connection (1): 108.59.80.58 INFO:Modified /etc/hosts, added: 108.59.80.58 smt-gce.susecloud.net smt-gce ... INFO:Starting new HTTPS connection (1): 108.59.80.58 DEBUG:"GET /api/health/status HTTP/1.1" 200 None INFO:Current update server will be used: "('108.59.80.58', None)" INFO:Starting new HTTPS connection (1): smt-gce.susecloud.net DEBUG:"POST /connect/systems/products/migrations HTTP/1.1" 422 None INFO:Registration: /usr/sbin/SUSEConnect --url https://smt-gce.susecloud.net --product sle-module-containers/12/x86_64 --instance-data /var/lib/cloudregister/9c982106-78de-48fe-a662-20383da4c760
Contoh gagal
INFO:Forced new registration
INFO:Using API: regionInfo
INFO:Starting new HTTP connection (1): 169.254.169.254
INFO:Region server arguments: ?regionHint=us-central1
INFO:Using region server: 130.211.242.136
INFO:Starting new HTTPS connection (1): 130.211.242.136
ERROR:No response from: 130.211.242.136
INFO:Using region server: 130.211.88.88
INFO:Starting new HTTPS connection (1): 130.211.88.88
ERROR:No response from: 130.211.88.88
INFO:Using region server: 146.148.73.14
INFO:Starting new HTTPS connection (1): 146.148.73.14
ERROR:No response from: 146.148.73.14
ERROR:None of the servers responded
ERROR: Attempted: ['130.211.242.136', '130.211.88.88', '146.148.73.14']
ERROR:Exiting without registration
Pembatalan pendaftaran
Dalam beberapa kasus, seperti upgrade rilis utama, Anda mungkin mengalami error berikut karena sistem sudah terdaftar ke SUMA:
Can't get available migrations from server: SUSE::Connect::ApiError: The requested products 'SUSE Manager Client Tools for SLE 12 x86_64' are not activated on the system.
This system is managed by SUSE manager.
Selesaikan masalah dengan melakukan hal berikut:
Hapus modul Client Tools SUSE Manager seperti yang dijelaskan dalam panduan Menghapus modul dan ekstensi.
Batalkan pendaftaran dari SUMA, dengan mengikuti panduan Cara membatalkan pendaftaran Klien SUSE Manager.
Jalankan perintah berikut dari VM untuk membersihkan pendaftaran lama:
sudo SUSEConnect --cleanup && \ sudo registercloudguest --clean && \ sudo rm -f /etc/SUSEConnect && \ sudo rm -f /etc/zypp/{repos,services,credentials}.d/* && \ sudo rm -f /var/lib/cloudregister/* && \ sudo rm -rf /var/cache/zypp/* && \ sudo rm -rf /var/cache/cloudregister/* && \ sudo sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
Jalankan perintah berikut untuk mendaftarkan sistem lagi:
sudo registercloudguest --force-new
Periksa detailnya di bagian pendaftaran ulang.
Setelah proses pendaftaran selesai, refresh layanan dan repositori, lalu periksa apakah semua repositori yang diharapkan untuk sistem yang disediakan oleh server SMT ada:
sudo zypper ref -s && \ sudo zypper ls && \ sudo zypper lr -U