Güncelleme ve lisanslama sorunları
Yüklenemeyen paketler, güncelleyicinin reddettiği sürümler, ana makineye hiç ulaşmayan onarımlar ve cihazın doğrulayamadığı lisanslar.
- Sürüm: 0.4
- Rol: admin_user
- Tür: sorun giderme
Güncelleme ile lisanslamanın ortak bir kökü vardır: ikisi de cihazın bir imzayı doğrulayabilmesine bağlıdır. Güven çıpası olmayan bir cihaz ne lisans ne de sürüm kabul edebilir ve bu iki arıza genellikle iki farklı kişi tarafından ayrı ayrı bildirilir.
Hiç lisanslanmamış bir makine için bunun yerine Kurulum ve etkinleştirme sorunları sayfasından başlayın.
Belirtinizi bulun
| Gördüğünüz | Çalışma kitabı |
|---|---|
| Sistem Güncellemeleri sayfası 0.0.0 gösteriyor ya da düğmeleri 500 döndürüyor | Güncelleme sayfası yanlış ya da hata veriyor |
| Cihaz hangi sürümü çalıştırdığını söyleyemiyor | Güncelleme sayfası yanlış ya da hata veriyor |
| Güncelleme denetimi hiçbir şey bulmuyor ya da zaman aşımına uğruyor | Kanala erişilemiyor |
| Paket yüklemesi takılıyor, yanlış yerden devam ediyor ya da reddediliyor | Paket yüklenmiyor |
| Çevrimiçi kurulum, sabitlenmemiş bir ana makine için reddediliyor | Paket yüklenmiyor |
| Güncelleyici, hiçbir şeyi değiştirmeden sürümü reddediyor | Güncelleyici sürümü reddediyor |
| Güncelleme kuruldu ve ardından kendini geri aldı | Güncelleyici sürümü reddediyor |
| Panoda kaydedilen bir değişiklik ana makineye hiç ulaşmadı | Ana makine onarımı başarısız oluyor |
| Lisans yüklemesi imza hatalı diye reddediliyor | Lisans doğrulanmıyor |
| Cihaz yalnızca deneme sürümünü çalıştırabiliyor | Lisans doğrulanmıyor |
| Her ürün yolu 402 yanıtı veriyor | Ürün 402 ile kilitli |
| Her şey çalışırken tek bir özellik 403 ile reddediliyor | 402, 403 ya da 423 |
Güncelleme sayfası
Güncelleme sayfası yanlış ya da hata veriyor
Eksik bir sürüm damgası, ayarlanmamış bir kanal, erişilemeyen bir kanal ve takılmış bir güncelleyici aynı sayfada ortaya çıkar ve birbirine benzer. Sürüm damgası düzeltilene kadar kanal bildirimiyle yapılan her karşılaştırma — ve her destek yanıtı — anlamsızdır.
Sistem Güncellemeleri sayfası 0.0.0 gösteriyor ya da güncelleme düğmeleri 500 döndürüyor
Şunları görebilirsiniz: **Sistem Güncellemeleri** sayfası sürümü 0.0.0 olarak gösteriyor · current version 0.0.0 (kurulu sürüm 0.0.0 görünüyor) · güncelleme denetimi 500 döndürüyor · install update → 500 (güncellemeyi kurma eylemi 500 döndürüyor)
Başlamadan önce
Denetimler
- 1
Cihazın bildirdiği ürün sürümünü okuyun
tanılama · appliance.version = "0.0.0"
- 2
Bir güncelleme kanalının yapılandırıldığını doğrulayın
tanılama · appliance.channel
- 3
Sürüm kanalının son denemede yanıt verdiğini doğrulayın
tanılama · appliance.update.channelReachable = true
- 4
Bir güncelleme ya da ana makine onarımı isteğinin ana makine güncelleyicisini beklerken takılı kalıp kalmadığını denetleyin
tanılama · appliance.update.pendingIntent
- 5
Sayfanın sürümün yanında gösterdiği ana makine onarım durumunu okuyun
GET /admin/system-update/host-repair
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | version-file-missing (uyarı) | Cihaz, kurulu sürümünü imaj derlemesinin yazdığı bir dosyadan okur. Bu dosya yoksa ya da okunamıyorsa sürüm 0.0.0'a geri düşer ve kanal manifestiyle yapılan her karşılaştırma bir sürüm düşürme gibi görünür — sayfanın aynı anda hem 0.0.0 göstermesi hem de güncelleme sunmayı reddetmesi bu yüzdendir. Düzeltme: Ayarlar → Sistem Güncellemeleri üzerinden ana makine onarımını çalıştırın; bu, cihazın sürüm dosyasını yeniden yazar. Ardından sayfayı yenileyin. Ana makine onarımı kullanılamıyorsa sürüm, kurulum programının sonlandırma adımı yeniden çalıştırılarak da geri getirilebilir; bkz. Güncellemeler. Doğrulama: tanılama · appliance.version = "0.0.0" Bu geçerli değilse: Destek paketini ekleyin. Ana makine onarımından sonra da süren bir 0.0.0, imajın sürüm damgası olmadan derlendiği anlamına gelir. |
| denetim 2 başarısız olduğunda | manifest-url-unset (uyarı) | Yapılandırılmış bir sürüm kanalı yoktur, dolayısıyla güncelleme denetiminin getireceği bir manifest de yoktur. API çağrıyı, eksik manifest URL'sinin adını veren bir 400 ile reddeder; sayfa bunu bir yapılandırma uyarısı olarak değil, başarısız bir düğme olarak gösterir. Düzeltme: Güncelleme kanalını Ayarlar → Sistem Güncellemeleri altında ayarlayın. Ağdan yalıtılmış bir cihazda bir URL göstermek yerine çevrimdışı kanalı seçin ve güncelleme paketini yükleyin. Doğrulama: tanılama · appliance.channel |
| denetim 3 başarısız olduğunda | channel-unreachable (uyarı) | Kanal yapılandırılmıştır ama manifest getirilemedi — ad çözümleme yok, dışarı çıkış yok ya da zorunlu olduğu hâlde yapılandırılmamış bir dış vekil var. Getirme hatası, güncelleme uç noktasından 500 olarak görünür. Düzeltme: Kanal ana makinesine dışarıya erişimi düzeltin, ya da cihazı çevrimdışı güncellemeye geçirin. Tanılama anlık görüntüsündeki DNS ve dışarı çıkış yoklamalarını ayrı ayrı okuyun: çözümlemenin başarılı olması HTTPS getirmesinin de başarılı olduğu anlamına gelmez ve yalnızca vekil üzerinden çıkan bir ağ, vekilin açıkça yapılandırılmasını ister. Doğrulama: tanılama · appliance.update.channelReachable = true |
| denetim 4 başarısız olduğunda | updater-daemon-not-running (kritik) | Kuyruğa bir istek alınmış ama onu çalıştıran hiçbir şey yok. Ağ geçidi yalnızca isteği kaydeder; işi ana makinedeki ayrıcalıklı güncelleyici arka plan süreci yapar. Bu süreç çalışmadığında istekler birikir ve sonraki her eylem takılmış ya da başarısız olmuş gibi görünür. Düzeltme: Cihazın ana makinesinde güncelleyici arka plan sürecini başlatın ve kuyruktaki isteğin kuyruk durumundan çıktığını doğrulayın. Çıkana kadar yeni istek eklemeyin; biriken kuyruk arızayı okumayı zorlaştırır. Doğrulama: tanılama · appliance.update.pendingIntent Bu geçerli değilse: Destek paketine ek olarak ana makinedeki güncelleyici arka plan sürecinin kendi günlüğünü ekleyin. |
| denetim 5 başarısız olduğunda | host-agent-absent (uyarı) | Ana makine onarımı uç noktası yanıt veremiyor, çünkü ana makine ajanı envanterini hiç yazmamış. Sayfanın o zaman sürümün yanında gösterecek ana makine tarafı verisi olmaz ve bu birleşim bozuk bir sayfa gibi okunur. Düzeltme: Cihazda ana makine ajanının envanter işini çalıştırın ve sayfayı yenileyin. Cihaz olmayan bir dağıtımda bu beklenen durumdur: orada hiç ana makine ajanı yoktur ve güncelleme sayfası desteklenen yükseltme yolu değildir. Doğrulama: GET /admin/system-update/host-repair |
Cihaz hangi sürümü çalıştırdığını söyleyemiyor
Şunları görebilirsiniz: This box cannot say which release it is running (bu makine hangi sürümü çalıştırdığını söyleyemiyor) · Sistem Güncellemeleri sayfası 0.0.0 sürümünü gösteriyor · 0.1.0 olmayan bir makinede geçerli sürüm 0.1.0 görünüyor · güncelleme sayfası hiçbir şey sunmuyor ve sürüm göstermiyor
Başlamadan önce
Denetimler
- 1
Cihazın bildirdiği ürün sürümünü okuyun
tanılama · appliance.version = "0.1.0"
- 2
Sürüm damgasını yeniden yazan şey olan ana makine onarımı durumunu okuyun
GET /admin/system-update/host-repair
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | no-version-stamp (uyarı) | Cihaz kurulu sürümünü, imaj derlemesinin ve güncelleyicinin yazdığı dosyalardan okur. Bunların hiçbiri okunamadığında sürüm bir yer tutucuya geri düşer ve kanal manifestiyle yapılan her karşılaştırma anlamsızlaşır — sayfanın hem açıkça yanlış bir sürüm gösterip hem de güncelleme sunmayı reddedebilmesinin nedeni budur. Bu düzeltilene kadar destek yanıtları tahminden ibarettir. Düzeltme: Ayarlar → Sistem Güncellemeleri sayfasından, cihaz sürüm dosyasını yeniden yazan ana makine onarımını çalıştırın, ardından sayfayı yeniden yükleyin. Ana makine onarımından sonra da duran bir yer tutucu, imajın sürüm damgası olmadan derlendiği anlamına gelir. Doğrulama: tanılama · appliance.version = "0.1.0" Bu geçerli değilse: Destek paketini ve kurulum programının açılış menüsü girdisinde adı geçen sürümü ekleyin. |
| denetim 2 başarısız olduğunda | host-agent-absent (uyarı) | Ana makine ajanı envanterini hiç yazmadığı için ana makine onarımı uç noktası yanıt veremez; dolayısıyla güncelleme sayfasının çizecek ana makine tarafı verisi yoktur ve sürüm dosyasını yeniden yazabilecek hiçbir şey kalmaz. Cihaz olmayan bir dağıtımda zaten ana makine ajanı yoktur ve bu sayfa desteklenen yükseltme yolu değildir. Düzeltme: Ana makine ajanının işini cihazda çalıştırın ve sayfayı yeniden yükleyin. Bu bir cihaz değil compose dağıtımıysa, bunun yerine sürüm imajlarını çekerek güncelleyin. Doğrulama: GET /admin/system-update/host-repair |
Kanala erişilemiyor
Bilinçli olarak hava boşluklu bir cihazda beklenen durumdur; böyle bir cihaz imzalı çevrimdışı paketten güncellenir. Bağlı bir cihazda ise güncelleme kılığına girmiş bir dış erişim sorunudur.
Güncelleme kanalına cihazdan erişilemiyor
Şunları görebilirsiniz: The update channel host is not reachable from inside the gateway (güncelleme kanalı sunucusuna ağ geçidinin içinden erişilemiyor) · **Check for updates** (güncellemeleri denetle) hiçbir şey yapmıyor · güncelleme denetimi 500 döndürüyor · cihaz hiçbir zaman yeni bir sürüm bulmuyor
Başlamadan önce
Denetimler
- 1
Herhangi bir güncelleme kanalının yapılandırılmış olduğunu doğrulayın
tanılama · appliance.channel
- 2
Kanalın son denemede yanıt verip vermediğini okuyun
tanılama · appliance.update.channelReachable = true
- 3
Cihazın erişmesi gereken sunucular için ad çözümleme sonuçlarını okuyun
tanılama · appliance.dns
- 4
Vekil zorunlu olan bir ağda, giden bir vekilin yapılandırılmış olup olmadığını okuyun
tanılama · appliance.proxy.configured = true
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | channel-unset (uyarı) | Yapılandırılmış bir sürüm kanalı yoktur; dolayısıyla güncelleme denetiminin alacağı bir manifest de yoktur. API çağrıyı reddeder ve sayfa, bir şey yapılandırmanızı isteyen bir uyarı yerine başarısız olan bir düğme gösterir. Düzeltme: Güncelleme kanalını Ayarlar → Sistem Güncellemeleri altında ayarlayın. Ağdan yalıtılmış bir cihazda bir URL göstermek yerine çevrimdışı kanalı seçin ve imzalı bir paket yükleyin. Doğrulama: tanılama · appliance.channel |
| denetim 2 başarısız olduğunda | channel-blocked (uyarı) | Kanal yapılandırılmıştır ve alma işlemi başarısız olmuştur. Bilinçli olarak ağdan yalıtılmış bir cihazda bu beklenen durumdur ve hiçbir işlem gerektirmez; bağlantılı bir cihazda ise kanal sunucusuna giden HTTPS yolunun engellendiği, denetlendiği ya da cihazda olmayan bir vekili gerektirdiği anlamına gelir. Düzeltme: Tanılama anlık görüntüsündeki dışarı çıkış sonuçlarını okuyun ve başarısız olduğunu varsaydığınız testi değil, gerçekten başarısız olan testi düzeltin. Bkz. Cihaz dışarı çıkamıyor. Cihazın çevrimdışı kalması amaçlanıyorsa, bu hata bir arıza olarak bildirilmeyi bıraksın diye onu çevrimdışı kanala geçirin. Doğrulama: tanılama · appliance.update.channelReachable = true |
| denetim 3 başarısız olduğunda | dns-cannot-resolve-channel (uyarı) | Cihaz kanal sunucusunun adını çözemez; dolayısıyla alma işlemi ağa hiç ulaşmaz. Ad çözümlemenin başka yerde çalışması hiçbir şeyi kanıtlamaz: cihaz tarayıcının değil, bu ağın çözümleyicisini kullanır. Düzeltme: Kanal sunucusu için yanıt veren bir çözümleyici ayarlayın ve denetimi yeniden çalıştırın. Bkz. Ağ ön koşulları. Doğrulama: tanılama · appliance.dns |
| denetim 4 başarısız olduğunda | proxy-missing (uyarı) | Bu sahada her şey bir vekilden geçer ve cihazda yapılandırılmış vekil yoktur; bu nedenle alma işlemi doğrudan denenir ve zaman aşımına uğrar. Zaman aşımı da eksik bir ayar gibi değil, ölü bir kanal gibi görünür. Düzeltme: Cihazda giden vekili yapılandırın ve ayarı yeniden okuması için ağ geçidi kapsayıcısını yeniden başlatın. Doğrulama: tanılama · appliance.proxy.configured = true |
Kurulum
Paket yüklenmiyor
Yüklemeler sürdürülebilir olduğundan arızalar sürümle değil, konum bilgileri ve süre dolumuyla
ilgilidir. SYSTEM_UPDATE_ALLOWED_HOSTS ana makineyi sabitlemedikçe çevrimiçi kurulum doğrudan
reddedilir — boş değer gönderilen varsayılandır ve eskiden "herhangi bir https ana makinesi"
anlamına geliyordu; dolayısıyla kimsenin yapılandırmadığı her yerde bu koruma kapalıydı.
Güncelleme paketi panodan yüklenmiyor ya da kurulmuyor
Şunları görebilirsiniz: unknown or expired upload (yükleme bilinmiyor ya da süresi dolmuş) · offset mismatch (konum bilgisi uyuşmuyor) · incomplete upload (yükleme eksik — M baytın yalnızca N baytı var) · bundle filename must end with .cidupd (paket dosya adı `.cidupd` ile bitmeli)
Başlamadan önce
Denetimler
- 1
Paketin dosya adını okuyun
beklenen · Dosya `.cidupd` ile bitiyor.
- 2
Sürdürülen bir yükleme için sunucunun kısmi dosyayı hâlâ tuttuğunu denetleyin
beklenen · Durum çağrısı bir konum bilgisi döndürüyor.
- 3
Konum uyuşmazlığında istemcinin gönderdiğini sandığıyla sunucunun elindekini karşılaştırın
beklenen · İstemci, sunucunun bildirdiği konumdan sürdürüyor.
- 4
"incomplete upload" için birleştirilen boyutu bildirilen boyutla karşılaştırın
beklenen · İki boyut aynı.
- 5
Çevrimiçi kurulum için güncelleme ana makinesi izin listesini okuyun
beklenen · İzin listesi, manifest URL'sindeki ana makineyi https üzerinden adlandırıyor.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | wrong-extension (bilgi) | Dosya adı güvenli bir karakter kümesine normalleştirilir ve .cidupd ile bitmek zorundadır. Bu ilk kapıdır ve daha hiçbir şey okunmadan devreye girer; bozuk bir paketle yeniden adlandırılmış bir paketin aynı görünmesinin nedeni budur.Düzeltme: Özgün dosya adını geri verin ve yeniden yükleyin. Doğrulama: beklenen · Yükleme başlıyor. |
| denetim 2 başarısız olduğunda | upload-expired (bilgi) | Sürdürülebilir bir yükleme, gelen dizinindeki kısmi bir dosya ile küçük bir üstveri dosyasından oluşur. Bunlardan biri temizlendiğinde sürdürülecek bir şey kalmaz; sunucu da sessizce ikinci bir kopya başlatmak yerine durumu bilinmiyor olarak bildirir. Düzeltme: Yüklemeyi baştan başlatın. Doğrulama: beklenen · Büyüyen bir konum bilgisi bildiriyor. |
| denetim 3 başarısız olduğunda | offset-drifted (bilgi) | Sunucu, konum bilgisi elindeki baytlarla uyuşmayan bir eklemeyi reddeder; böylece bir parçayı yeniden gönderen istemci parçayı ne çoğaltabilir ne de atlayabilir. Ret, gerçek konum bilgisini taşır. Düzeltme: Yükleme durumunu yeniden sorgulayın ve sunucunun bildirdiği konumdan sürdürün. Doğrulama: beklenen · Konum bilgisi tam boyuta kadar ilerliyor. |
| denetim 4 başarısız olduğunda | transfer-truncated (uyarı) | Eksik bir paket, imza doğrulamasında daha sonra, ana makinede ve bakım penceresinin ortasında başarısız olurdu. Tamamlama anında reddetmek, bu hatayı tarayıcıda tutar. Düzeltme: Kararlı bir yol üzerinden yeniden yükleyin. Olağan neden, büyük gövdeleri arabelleğe alan ya da kesen bir vekildir; bunu elemek için cihazla aynı ağdaki bir makineden yükleyin. Doğrulama: beklenen · Tam boyutu bildiriyor ve geriye bir paket yolu veriyor. |
| denetim 5 başarısız olduğunda | online-host-not-allowed (uyarı) | Çevrimiçi kurulum manifesti ağ üzerinden çeker; dolayısıyla sabitlenmemiş bir ana makine, yönetici yetkileriyle çalışan bir SSRF aracına dönüşürdü. Boş izin listesi eskiden "herhangi bir https ana makinesi" anlamına geliyordu ve boş değer gönderilen varsayılandır; bu yüzden koruma, kimsenin yapılandırmadığı her yerde kapalıydı — artık bunun yerine reddediyor. Düzeltme: SYSTEM_UPDATE_ALLOWED_HOSTS değerini güncelleme ana makinesine ayarlayıp ağ geçidini yeniden başlatın ya da bunun yerine yüklenmiş bir paketten kurun. Bkz. Cihazı güncelleme.Doğrulama: beklenen · Kuyruğa alınıyor. Bu geçerli değilse: Destek paketini ve başarısız olan girişimin istek kimliğini ekleyin. Paketin kendisini eklemeyin. |
Güncelleyici sürümü reddediyor
Duman testinden önceki her ret hiçbir şey değişmeden gerçekleşir: imza ve bildirim doğrulaması, en düşük sürüm denetimi, dosya sağlama toplamları, veritabanı ön uçuş yoklamaları ve geri almanın mümkün kalması için geçerli sürümün imajlarının hâlâ var olup olmadığı denetimi.
Note
Cihazın ana makinesinde docker image prune çalıştırmak, geri almanın ihtiyaç duyduğu imajları
siler. Güncelleyici bunun üzerine tek yönlü bir yolculuğa çıkmak yerine ilerlemeyi reddeder —
yeniden denemeden önce bir hipervizör anlık görüntüsü alın.
Güncelleyici sürümü reddediyor ya da kurulumun ortasında duruyor
Şunları görebilirsiniz: signature missing (imza yok) · bundle not found (paket bulunamadı) · compose file missing from release (sürümde compose dosyası yok) · cannot jump from X to Y: this release requires at least (bu sürüme doğrudan geçilemiyor; en düşük sürüm koşulu sağlanmıyor)
Başlamadan önce
Denetimler
- 1
Arızanın sürümün imzasıyla mı yoksa cihazın güven çıpasıyla mı ilgili olduğunu okuyun
tanılama · appliance.license.trustAnchorPresent = true
- 2
Cihazın çalıştırdığı sürümü, güncellemenin gerektirdiği en düşük sürümle karşılaştırın
tanılama · appliance.version
- 3
Paketin, manifestinin başvurduğu her şeyi taşıdığını denetleyin
beklenen · Hiçbir dosya eksik ya da eşleşmiyor olarak bildirilmiyor.
- 4
Şu anda kurulu sürümün imajlarının hâlâ var olduğunu denetleyin
beklenen · Geçerli sürümün her imajı incelenebiliyor.
- 5
Veritabanı ön uçuş yoklamalarını okuyun
beklenen · Her yoklama temiz bildiriyor.
- 6
Kurulup sonra geri alınan bir güncelleme için duman testi sonucunu okuyun
beklenen · Duman testi geçti.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | no-trust-anchor (kritik) | Her sürüm, cihaza gömülü açık anahtarlarla doğrulanır. Çıpa yoksa hiçbir şey doğrulanmaz; aynı cihaz aynı nedenle bir lisansı da reddeder. Düzeltme: Cihazda lisans güven çıpası yok yolunu izleyin. Doğrulama: tanılama · appliance.license.trustAnchorPresent = true |
| denetim 2 başarısız olduğunda | version-unknown (kritik) | Güncelleyici, çalışan sürümü güncellemenin bildirdiği en düşük sürümle karşılaştırır. Ne çalıştırdığını söyleyemeyen bir cihaza geçişin geçerli olup olmadığı söylenemez; dolayısıyla manifestle yapılan her karşılaştırma anlamsızdır. Düzeltme: Cihaz hangi sürümü çalıştırdığını söyleyemiyor yolunu izleyin. Doğrulama: tanılama · appliance.version |
| denetim 3 başarısız olduğunda | release-incomplete (uyarı) | Bir sürüm, bir manifest ile onun adını verdiği dosyalardır. Arşiv çıkarma, yolu çalışma dizininin dışına taşan üyeleri reddeder; doğrulama ise dosyaları eksik olan ya da sağlama toplamları tutmayan bir manifesti reddeder — cihazda hiçbir şeye dokunulmadan önce. Düzeltme: Paketi yeniden edinip yeniden yükleyin. Aynı biçimde iki kez başarısız olan bir paket aktarım değil derleme sorunudur; sürüm numarasıyla birlikte bildirin. Doğrulama: beklenen · Doğrulama geçiyor. |
| denetim 4 başarısız olduğunda | current-images-pruned (kritik) | Geri alma, bulunduğunuz sürümün imajlarını yeniden sabitleyerek çalışır. Bu imajlar bir kez silindiğinde geri dönüş yoktur; bu nedenle güncelleyici tek yönlü bir yolculuğa çıkmaktansa ilerlemeyi reddeder. Sabitlenen imajlar tam da bu nedenle bir saklama etiketi taşır. Düzeltme: Geçerli sürümün imajlarını geri yükleyin ya da yeniden çekin, sonra yeniden deneyin. Yeniden denemeden önce cihazın anlık görüntüsünü alın; böylece imaj düzeyinde olmasa bile hipervizör düzeyinde bir geri dönüş bulunur. Doğrulama: beklenen · Kurulum öncesi denetim geçiyor. |
| denetim 5 başarısız olduğunda | preflight-refusal (uyarı) | Yoklamalar, bir geçişin işleyemeyeceği veriler üzerinde yarı yolda başarısız olmasını engellemek için vardır. Ret tetiklendiği anda hiçbir şey değişmemiştir; dolayısıyla cihaz tümüyle hizmet verebilir durumdadır. Düzeltme: Yoklamanın adını verdiği düzeltmeyi uygulayın — düzeltme ret iletisinin içine yazılmıştır — ardından kurulumu yeniden kuyruğa alın. Bir yoklamayı zorla geçmeyin. Doğrulama: beklenen · Yoklamalar temiz bildiriyor. |
| denetim 6 başarısız olduğunda | smoke-failed (kritik) | Güncelleme sonrası duman testi son kapıdır. Başarısız olması, yeni sürümün açıldığı ama çalışmadığı anlamına gelir; geri alma tam olarak bu durum için vardır. Başarısız komutun son satırları iletide taşınır. Düzeltme: Güncelleyicinin geri almasına izin verin, ardından duman testi çıktısını ve testin çalıştırdığı servisin kapsayıcı günlüklerini okuyun. Geçişten önce bir pgdata anlık görüntüsü alınır ve bu anlık görüntü yoksa geri yükleme reddedilir; bu nedenle durum dizinine yazılabildiğini denetleyin. Doğrulama: beklenen · Cihaz önceki sürüme dönmüş ve sağlıklı. Bu geçerli değilse: Destek paketini, istek kimliğine ait güncelleyici günlüğünü ve kurmaya çalıştığınız sürüm numarasını ekleyin. |
Ana makine onarımı başarısız oluyor
Panoda yapılan bazı değişiklikler — bir sertifika, bir TLS kipi — ana makine tarafındaki bir ajan tarafından uygulanır ve en pahalıya mal olan arıza sessiz olanıdır: yazma başarısız olur, işleyici günlüğe yazıp devam eder ve pano başarı bildirir.
Ana makine tarafındaki bir onarım ya da yeniden yapılandırma adımı başarısız oluyor
Şunları görebilirsiniz: host command failed (ana makinede çalıştırılan komut başarısız oldu) · host write failed (ana makineye yazma başarısız oldu) · cannot determine own image (ajan kendi imajını belirleyemiyor) · panoda bir sertifika uygulandı ama ana makinede hiçbir şey değişmedi
Başlamadan önce
Denetimler
- 1
Ajanın kendi imajını tanıyıp tanıyamadığını denetleyin
beklenen · Ajan kendi imajını çözüyor ya da `CID_HOST_EXEC_IMAGE` bir imajı sabitliyor.
- 2
"host write failed" için hangi yola yazmaya çalıştığını okuyun
beklenen · Yol yazılabilir ve dosya sisteminde yer var.
- 3
Ana makinedeki boş diski okuyun
tanılama · host
- 4
Birkaç özelliğin birlikte başarısız olduğu ortak durum dizinini denetleyin
beklenen · Dizin var ve ağ geçidi bu dizine yazabiliyor.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | cannot-resolve-own-image (kritik) | Ana makine işlemleri, ajanın kendi imajından üretilen ayrıcalıklı bir yardımcı kapsayıcıda çalışır; böylece ana makinede yürütülen şey tam olarak imzalı sürümün gönderdiği koddur. Ajan kendi kapsayıcısını inceleyemediğinde, sabitlenmemiş bir şeye geri düşmektense reddeder. Düzeltme: Ajanın kapsayıcısının Docker soketine erişebildiğini doğrulayın ya da yardımcı imajı CID_HOST_EXEC_IMAGE ile açıkça sabitleyin. Ardından ajanı yeniden başlatın.Doğrulama: beklenen · İşlem tamamlanıyor. |
| denetim 2 başarısız olduğunda | host-path-not-writable (uyarı) | Ajan, ana makine dosyalarını ana makine köküne yapılan bir chroot üzerinden yazar. Salt okunur, değiştirilemez ya da yer kalmamış bir dosya sistemindeki bir yol, aynı "host write failed" iletisini farklı bir son satırla üretir — son satırı okuyun. Düzeltme: Yolu yazılabilir yapın ya da yer açın, ardından işlemi yeniden tetikleyin. Doğrulama: beklenen · Durum başarı bildiriyor. |
| denetim 3 başarısız olduğunda | disk-full (kritik) | Dolmuş bir kök dosya sistemi ana makineye yazmayı, durum dizinini ve her imajın ikinci bir kopyası için yer isteyen her güncellemeyi bozar — genellikle hepsini aynı anda; bu nedenle ilk fark ettiğiniz belirti rastgeledir. Düzeltme: Bir dosya sistemi neredeyse dolu yolunu izleyin. Doğrulama: beklenen · Dosya sisteminde pay var. |
| denetim 4 başarısız olduğunda | state-dir-not-writable (kritik) | Birkaç özellik isteklerini tek bir ortak dizine yazar ve yazma başarısız olduğunda günlüğe yazıp devam eder. Bu nedenle görünen belirti, panoda başarılı olmuş gibi duran ve ana makineye hiç ulaşmayan bir değişikliktir. Düzeltme: Cihazın kaydettiği ayarlar yeniden başlatmadan sonra kalmıyor yolunu izleyin. Doğrulama: beklenen · Durum, değişikliğin uygulandığını bildiriyor. Bu geçerli değilse: Destek paketini ekleyin. Paket, ana makine ajanının kendi durum belgelerini taşır; başarısız komut ile çıktısının kaydedildiği yer orasıdır. |
Lisanslama
Lisans doğrulanmıyor
Lisans dosyası genellikle sorunsuzdur. İmzalama açık anahtarı olmayan bir cihaz onu denetleyemez, dolayısıyla her lisans sahte görünür — ve uygulama kapalıyken aynı cihaz sessizce deneme sürümünü çalıştırır, bu yüzden açık ancak deneme bittiğinde ortaya çıkar.
Lisans yüklemesi 400 "rejected: signature" ile başarısız oluyor
Şunları görebilirsiniz: 400 rejected: signature (imza reddedildi) · 400 rejected: ENOENT (dosya bulunamadı) · License upload → 400 (lisans yüklemesi 400 döndürüyor) · lisans dosyası yüklenmiyor
Başlamadan önce
Denetimler
- 1
Lisans güven çıpasının ana makinede var olduğunu doğrulayın
tanılama · appliance.license.trustAnchorPresent = true
- 2
Cihazın bir kurulum kimliği bildirdiğini doğrulayın
tanılama · appliance.license.installationId
- 3
Ana makine saatinin NTP ile disipline edildiğini doğrulayın
tanılama · host.timeSynced = true
- 4
Ağ geçidinin bildirdiği lisans durumunu okuyun
GET /admin/license/status → {"state":"active|trial"}
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | missing-anchor (kritik) | Lisans imzalama açık anahtarı (/etc/cid/license-pubkey.pem) bu imaja hiç gömülmemiş ya da sonradan kaldırılmıştır. Doğrulamanın imzayı karşılaştıracağı bir şey yoktur; dolayısıyla kusursuz geçerli olanlar da dahil her lisans sahte sayılıp reddedilir. API bunu eksik anahtar hatası olarak değil, imza ya da ENOENT iletisi taşıyan bir 400 olarak gösterir; suçun lisans dosyasına atılmasının nedeni budur. Düzeltme: Güven çıpasını ana makinede geri yükleyip ağ geçidi kapsayıcısını yeniden başlatın, ardından lisansı yeniden yükleyin. Cihazda çıpa imajın parçasıdır: onu taşımayan bir imaj yanlış derlenmiştir ve çözüm, kaynağı belirsiz bir anahtarı elle yerleştirmek değil ana makine onarımını yeniden çalıştırmaktır. Lisanslama ve etkinleştirme yolunu izleyin; cihaz çıpasız gönderilmiş bir imajdan derlendiyse kendiniz anahtar bulmaya çalışmak yerine destek paketini toplayıp konuyu yükseltin. Doğrulama: tanılama · appliance.license.trustAnchorPresent = true Bu geçerli değilse: Destek paketini ekleyin. Kusur cihazda değil, imaj derlemesindedir. |
| denetim 2 başarısız olduğunda | null-installation-id (kritik) | Cihaz hiçbir kurulum kimliği bildirmiyor; dolayısıyla onun için verilmiş bir lisans olamaz ve hiçbir lisans ona bağlanamaz. Bu normalde kimliğin ilk açılış sırasında hiç üretilmediği ya da kimliği tutan dosyanın ağ geçidi kapsayıcısınca okunamadığı anlamına gelir. Düzeltme: İlk açılış kimlik adımını yeniden çalıştırın ve kimliğin Ayarlar → Lisans sayfasında göründüğünü doğrulayın. Lisansı ancak kararlı bir kimlik göründükten sonra isteyin; boş bir kimliğe karşı verilmiş lisans kullanılamaz. Bkz. Lisanslama ve etkinleştirme. Doğrulama: tanılama · appliance.license.installationId |
| denetim 3 başarısız olduğunda | clock-skew (uyarı) | Lisans geçerliliği tarihlerle sınırlanır. Lisansın ek süresinden daha fazla sapmış bir ana makine saati, geçerli bir lisansı henüz geçerli değil ya da süresi dolmuş gösterir ve hata, bir imza hatasıyla aynı yerde ortaya çıkar. Düzeltme: Ana makine saatini düzeltip NTP ya da chrony'yi etkinleştirin, ardından ağ geçidi kapsayıcısını yeniden başlatıp lisansı yeniden yükleyin. Cihazın ihtiyaç duyduğu NTP dışarı çıkışı için bkz. Ağ ön koşulları. Doğrulama: tanılama · host.timeSynced = true |
| denetim 4 başarısız olduğunda | wrong-licence-for-this-box (kritik) | Güven çıpası, kurulum kimliği ve saat doğru; yani imza denetimi anlamlıdır ve başarısız oluyor. Lisans başka bir kurulum kimliği için verilmiş, aktarım sırasında değiştirilmiş (olağan suçlu, satırları yeniden saran bir posta istemcisidir) ya da kırpılmıştır. Düzeltme: Lisans dosyasını veren portaldan yeniden indirin, ikili bir ek olarak ya da sağlama toplamı doğrulanmış bir kopyayla aktarın ve bir düzenleyicide açmadan yeniden yükleyin. Lisanstaki kurulum kimliği bu cihazınkiyle eşleşmiyorsa lisansın yeniden düzenlenmesini isteyin. Doğrulama: GET /admin/license/status → {"state":"active|trial"} Bu geçerli değilse: Destek paketini ve Ayarlar → Lisans sayfasında gösterilen kurulum kimliğini ekleyin. |
Cihazda lisans güven çıpası yok ve yalnızca denemeyi çalıştırabiliyor
Şunları görebilirsiniz: No license trust anchor (/etc/cid/license-pubkey.pem) (lisans güven çıpası yok) · bu makinede hiçbir lisans doğrulanamıyor · cihaz yalnızca yerleşik denemeyi çalıştırıyor · hangi lisans dosyasını yüklersek yükleyelim hepsi reddediliyor
Başlamadan önce
Denetimler
- 1
Lisans imzalama açık anahtarının ana makinede var olup olmadığını okuyun
tanılama · appliance.license.trustAnchorPresent = true
- 2
Lisans zorunluluğunun açık olup olmadığını okuyun; eksik güven çıpasının ne kadar kötü olduğuna bu karar verir
tanılama · appliance.license.requireLicense = false
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | anchor-absent (uyarı) | Lisans imzalama açık anahtarı cihaz imajının bir parçasıdır ve /etc/cid/license-pubkey.pem konumunda durur. O olmadan doğrulamanın bir imzayı karşılaştıracağı hiçbir şey yoktur; bu nedenle geçerli olanı dahil her lisans sahte sayılarak reddedilir. Zorunluluk kapalıyken cihaz yerleşik denemesini çalıştırmayı sürdürür — eksik güven çıpasının çoğu zaman ancak deneme süresi bittiğinde fark edilmesinin nedeni budur. Düzeltme: Ayarlar → Sistem Güncellemeleri sayfasından ana makine onarımını çalıştırın; bu, imajın taşıması gereken dosyaları yeniden oluşturur. Ardından anlık görüntüyü yeniden denetleyin. Onarımdan sonra da güven çıpası bulunmayan bir imaj yanlış oluşturulmuştur: kaynağı bilinmeyen bir anahtarı elle yerleştirmek yerine destek paketini toplayın ve konuyu yükseltin. Doğrulama: tanılama · appliance.license.trustAnchorPresent = true Bu geçerli değilse: Destek paketini ekleyin. Kusur cihazda değil, imaj derlemesindedir. |
| denetim 2 başarısız olduğunda | enforcement-on-without-anchor (kritik) | Zorunluluk geçerli bir lisans ister ve cihaz hiçbirini doğrulayamaz; bu nedenle ne yüklenirse yüklensin her lisanslı rota 402 yanıtı verir. Cihaz, yapısal olarak geçemeyeceği bir denetimi zorunlu kılmaktadır. Düzeltme: Güven çıpasını yukarıdaki gibi geri yükleyin ve bu kurulum kimliği için verilmiş lisansı yükleyin. Bkz. Lisans yüklemesi 400 imza hatasıyla başarısız oluyor. Zorunluluğu kapatmak yalnızca bir laboratuvar önlemidir — katmanın dayandığı hak denetimlerini devre dışı bırakır. Doğrulama: GET /admin/license/status → {"state":"active|trial"} |
Ürün 402 ile kilitli
Uygulama açıktır ve hiçbir lisans geçerli olarak çözümlenmez. Bunun bir kurtarma yordamı olmadan düzeltilebilmesi için yönetim erişilebilir kalır. Yenileme istemeden önce ana makine saatini denetleyin — kayan bir saat geçerli bir lisansı süresi dolmuş gösterir.
Sihirbaz tamamlandıktan sonra her istek 402 LICENSE_EXPIRED döndürüyor
Şunları görebilirsiniz: 402 LICENSE_EXPIRED (lisans geçerli olarak çözümlenmiyor) · kurulum bittikten sonra sohbet 402 döndürüyor · pano yükleniyor ama her eylem "ödeme gerekli" hatasıyla başarısız oluyor · kurulumdan hemen sonra ürün engelleniyor
Başlamadan önce
Denetimler
- 1
Bu dağıtımda lisans zorunluluğunun açık olup olmadığını okuyun
tanılama · appliance.license.requireLicense = true
- 2
Ağ geçidinin açılışta çözümlediği lisans durumunu okuyun
tanılama · appliance.license.state = "active|trial"
- 3
Lisans güven çıpasının var olduğunu doğrulayın; o olmadan hiçbir lisans hiçbir zaman etkin olarak çözümlenemez
tanılama · appliance.license.trustAnchorPresent = true
- 4
Kurulu lisansın ne kadar süresi kaldığını denetleyin
tanılama · appliance.license.expiresAt
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 3 başarısız olduğunda | enforcement-on-without-anchor (kritik) | CID_REQUIRE_LICENSE true ve lisans imzalama açık anahtarı yok. Koruma geçerli bir lisans ister, doğrulama ise güven çıpası olmadan başarılı olamaz; bu nedenle ne yüklenirse yüklensin her lisanslı rota 402 yanıtı verir. Cihaz, geçemeyeceği bir denetimi zorunlu kılmaktadır. Düzeltme: Güven çıpasını geri yükleyin ve lisansı Lisans yüklemesi 400 imza hatasıyla başarısız oluyor yolunu izleyerek yükleyin. Zorunluluğu kapatmak yalnızca laboratuvar için bilinçli ve geçici bir önlemdir — müşteri cihazında asla çözüm değildir, çünkü katmanın dayandığı hak denetimlerini devre dışı bırakır. Doğrulama: tanılama · appliance.license.trustAnchorPresent = true |
| denetim 2 başarısız olduğunda | no-valid-license (kritik) | Zorunluluk açık ve lisans, etkin ya da deneme dışında bir duruma çözümlendi: eksik, geçersiz ya da süresi dolmuş. Kurulum sihirbazı bir lisans kurmaz; bu nedenle zorunluluğu açık, yeni tamamlanmış bir cihaz, bir lisans yüklenene kadar tam olarak bu duruma gelir. Düzeltme: Bu cihaz için verilmiş lisansı Ayarlar → Lisans altında yükleyin. Henüz bir lisans verilmediyse, o sayfada gösterilen kurulum kimliğine karşı bir lisans isteyin. Bkz. Lisanslama ve etkinleştirme. Doğrulama: GET /admin/license/status → {"state":"active|trial"} |
| denetim 4 başarısız olduğunda | license-genuinely-expired (kritik) | Bir lisans kurulu ve doğrulanıyor, ancak geçerlilik süresi sona ermiş. Zorunluluk bunun üzerine ürün rotalarını engellerken yönetimi erişilebilir bırakır; böylece cihaz bir kurtarma yordamı olmadan yeniden lisanslanabilir. Düzeltme: Yenilenmiş bir lisans yükleyin. Süre dolumu yanlış görünüyorsa önce ana makine saatini denetleyin — kayan bir saat geçerli bir lisansı erkenden eskitir ve tam olarak bu durumu üretir. Doğrulama: tanılama · appliance.license.state = "active|trial" |
| denetim 1 başarısız olduğunda | unexpected-402-without-enforcement (uyarı) | Zorunluluk kapalı, dolayısıyla lisans korumasının hiçbir şeyi engellememesi gerekir. Bu durumdaki bir 402, ağ geçidinin açılışta okuduğu değerin şu anda yapılandırılmış değerden farklı olduğu anlamına gelir — genellikle kapsayıcı, ayar değişmeden önce başlatılmış ve yeniden başlatılmamıştır. Düzeltme: Ağ geçidi kapsayıcısını yeniden başlatın, böylece yapılandırmasını yeniden okur; ardından yeniden deneyin. Zorunluluk kapalıyken 402 sürüyorsa destek paketini toplayın: etkin yapılandırma ile yapılandırılmış olan uyuşmuyordur. Doğrulama: tanılama · appliance.license.requireLicense = false Bu geçerli değilse: Etkin duruş bölümü dahil olmak üzere destek paketini ekleyin. |
Lisansın süresi dolmuş ve lisanslı uç noktalar 402 döndürüyor
Şunları görebilirsiniz: License expired / product locked (lisansın süresi dolmuş, ürün kilitli) · 402 LICENSE_EXPIRED (lisansın süresi dolduğu için istek reddedildi) · License state is "expired" (lisans durumu "expired") · deneme süresi doldu
Başlamadan önce
Denetimler
- 1
Ağ geçidinin çözümlediği lisans durumunu okuyun
tanılama · appliance.license.state = "active|trial"
- 2
Ana makine saatinin disiplinli olduğunu doğrulayın; kayan bir saat geçerli bir lisansı erkenden eskitir
tanılama · host.timeSynced = true
- 3
Güven çıpasının var olduğunu doğrulayın; o olmadan hiçbir yenileme de doğrulanamaz
tanılama · appliance.license.trustAnchorPresent = true
- 4
API'nin bildirdiği lisans durumunu okuyun
GET /admin/license/status → {"state":"active|trial"}
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 veya 4 başarısız olduğunda | expired-or-invalid (kritik) | Kurulu bir lisans var ve geçerlilik süresi bitmiş ya da lisans artık doğrulanmıyor. Bunun üzerine koruma, lisanslı yolları — sohbet, tespit, denetim, görüntü ve belge analizi — 402 ile engellerken yönetimi erişilebilir bırakır; böylece cihaz bir kurtarma yordamına gerek kalmadan yeniden lisanslanabilir. Düzeltme: Ayarlar → Lisans altından yenilenmiş bir lisans yükleyin. Yenilemeyi o sayfada gösterilen kurulum kimliğine göre isteyin: başka bir kimlik için verilmiş bir lisans burada doğrulanmaz. Bkz. Lisanslama ve etkinleştirme. Doğrulama: tanılama · appliance.license.state = "active|trial" |
| denetim 2 başarısız olduğunda | clock-skew-fake-expiry (uyarı) | Lisans geçerliliği, ana makine saatinden okunan tarihlerle sınırlanır. Ek süre penceresinden fazla sapmış bir saat, geçerli bir lisansı süresi dolmuş gösterir ve ürün tam olarak gerçek bir süre dolumundaki gibi engeller. Düzeltme: Ana makine saatini düzeltip zaman eşitlemesini etkinleştirin, ardından ağ geçidi kapsayıcısını yeniden başlatın ve yenileme istemeden önce lisans durumunu yeniden okuyun. Bkz. Ana makine saati senkron değil. Doğrulama: tanılama · host.timeSynced = true |
| denetim 3 başarısız olduğunda | renewal-cannot-verify (kritik) | Güven çıpası yok; dolayısıyla yüklemek üzere olduğunuz yenileme de, mevcut lisansın artık doğrulanmamasıyla aynı nedenle reddedilecek. Önce yüklemek bakım penceresini boşa harcar. Düzeltme: Herhangi bir şey yüklemeden önce güven çıpasını geri getirin. Bkz. Cihazda lisans güven çıpası yok. Doğrulama: tanılama · appliance.license.trustAnchorPresent = true |
İlgili
- Güncellemeler — güncelleme kanalı, çevrimdışı paketler ve bir güncellemenin nelere dokunduğu.
- Sistem Güncellemeleri — pano sayfası.
- Lisanslama — lisans verme, kurma ve yenileme.
- Hata kodları — 402, 403 ve 423'ün tam olarak ne anlama geldiği.
Son güncelleme