Memecahkan masalah pendaftaran bayar sesuai penggunaan SLES


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.
  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

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:

  1. Temukan alamat IP yang sesuai dengan region VM dari daftar alamat IP SMT SUSE.

  2. 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.

  1. Instal paket yang diperlukan

    sudo zypper install python3-susepubliccloudinfo
  2. Gunakan perintah berikut dengan region tertentu

    pint google servers --region us-central1
  3. 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 256.

Untuk informasi selengkapnya, lihat berita 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:

    1. Buka halaman Route di konsol Google Cloud.

      Buka halaman Route

    2. Pada tab Route Management, cari rute yang menyertakan alamat IP SMT SUSE dan pastikan gateway default Compute Engine ditetapkan sebagai hop berikutnya.

    3. 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:

    1. Buka halaman VM Instances di Konsol Google Cloud.

      Buka halaman Instance VM

    2. Klik nama VM yang ingin diperiksa. Halaman VM details akan terbuka.

    3. Di bagian Network interfaces, klik View details.

    4. Di bagian Firewall and routes details, temukan rute yang menentukan jalur ke rentang alamat IP yang diinginkan.

    5. 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.

    1. Buka halaman VM Instances di Konsol Google Cloud.

      Buka halaman Instance VM

    2. Temukan VM yang ingin Anda periksa dan catat regionnya.

    3. Buka halaman Load balancing di Konsol Google Cloud.

      Buka halaman Load balancing

    4. Temukan Network Load Balancer passthrough internal yang digunakan, lalu periksa apakah load balancer tersebut berada di region yang sama dengan VM.

    5. 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.

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:

  1. Buka direktori /etc/products.d.

      cd /etc/products.d
  2. Jalankan perintah berikut dengan mengganti SLES.prod dengan SLES_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:

  1. Hentikan VM:

    gcloud compute instances stop VM_NAME
  2. Tambahkan akun layanan ke VM:

    gcloud compute instances set-service-account VM_NAME \
      --service account SERVICE_ACCOUNT \
      --no-scopes
  3. Mulai VM:

    gcloud compute instances start VM_NAME
  4. Setelah menambahkan akun layanan yang tidak ada, jalankan perintah berikut dari VM untuk mendaftarkan ulang SLES:

    sudo registercloudguest --force-new

    Periksa detail 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:

  1. Hapus modul Client Tools SUSE Manager seperti yang dijelaskan dalam panduan Menghapus modul dan ekstensi.

  2. Batalkan pendaftaran dari SUMA, dengan mengikuti panduan Cara membatalkan pendaftaran Klien SUSE Manager.

  3. 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
  4. Jalankan perintah berikut untuk mendaftarkan sistem lagi:

      sudo registercloudguest --force-new

    Periksa detail di bagian pendaftaran ulang.

  5. 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