Documentație
Actualizări de agent
Agentul se actualizează după un orar pe care îl stabiliți, sau în momentul în care apăsați butonul. Această pagină explică ce face o versiune demnă de încredere, când împarte platforma una din proprie inițiativă și cum se instalează una manual.
Ce face o versiune demnă de încredere
Două fapte independente trebuie să se potrivească înainte ca un binar nou să ruleze pe gazda dumneavoastră: trebuie să aibă hashul publicat de platformă și trebuie să poarte o semnătură validă peste octeții lui bruți, făcută cu cheia de lansare a platformei.
- Suma de control dovedește că descărcarea este intactă. Nu spune nimic despre cine a produs-o.
- Semnătura dovedește cine a produs-o. Este verificată de agent înainte de a se pregăti ceva și încă o dată de un script pe care doar root îl poate modifica, înainte ca binarul să fie instalat.
- Cheia publică folosită de a doua verificare este deținută de root. Contul de serviciu sub care rulează agentul nu o poate înlocui, așa că nici compromiterea agentului nu duce la execuția unui binar ca root.
- O versiune fără semnătură este refuzată. La fel și una a cărei semnătură nu se potrivește, chiar dacă suma de control se potrivește.
Actualizarea din panou
Când un agent a rămas în urmă, panoul o spune în partea de sus a paginii lui și în lista de agenți. Apăsați butonul, iar platforma îi dă agentului un link de descărcare de scurtă durată, pe conexiunea care este deja deschisă.
- Un singur agent: bannerul din pagina lui sau cardul de actualizare din fila de setări.
- Mai mulți deodată: selectați-i în lista de agenți și actualizați selecția. Numărul de pe buton îi include doar pe agenții care pot fi actualizați chiar acum.
- Tabloul de bord are un buton direct pentru fiecare agent rămas în urmă, ca să nu fie nevoie să îl căutați.
- Progresul supraviețuiește unei reîncărcări de pagină: se citește din comanda care rulează, nu din ceva memorat de browser.
Orarul de noapte
Fiecare agent are un orar, iar din fabrică este pornit la 03:00, ora Europei Centrale. Dacă la una dintre orele stabilite există o versiune mai nouă, platforma i-o înmânează agentului așa cum face butonul. În rest nimic nu se schimbă: același fișier semnat, aceleași verificări pe gazdă, aceeași întoarcere la varianta veche.
- Mai multe ore pentru fiecare agent, cel mult șase, pe o grilă de cinci minute. Șase ajung pentru din patru în patru ore și sunt destul de puține ca să se citească dintr-o privire.
- Orele sunt citite pe același ceas de perete ca restul panoului. O oră care nu există în noaptea în care ceasul se dă înainte rulează cu o oră mai târziu în loc să fie sărită, iar o oră care există de două ori rulează o singură dată.
- Există o fereastră de recuperare de cincisprezece minute și nimic mai mult. O actualizare gândită pentru 03:00 nu se dorește la 09:00: noaptea a fost aleasă intenționat.
- Un agent care era deconectat la ora lui sare noaptea fără să își consume rândul și îl ia pe următorul. Un agent care era accesibil, dar deja la zi, chiar își consumă rândul, ca istoria lui să arate că cineva s-a uitat.
- Cel mult cinci agenți ai unui cont pleacă pe minut. O flotă de patruzeci descarcă în jur de 22 MB fiecare, dintr-o singură rețea, iar întinderea asta pe opt minute încape în fereastra de recuperare.
- Primiți o notificare atunci când o actualizare programată reușește și atunci când una eșuează, grupată pe cont. Un agent care eșuează se anunță cel mult o dată pe zi, ca o gazdă blocată să nu vă umple notificările cu aceeași frază.
Ce se întâmplă pe gazdă
Agentul descarcă noul binar lângă el, verifică suma de control și semnătura și abia apoi iese. Systemd repornește serviciul, un pas deținut de root verifică încă o dată binarul pregătit, îl instalează atomic și testează că într-adevăr rulează înainte de a-l păstra. Dacă ceva din toate acestea eșuează, binarul vechi rămâne la locul lui, iar serviciul revine pe el.
Cum o faceți manual
Nu sunteți obligat să folosiți panoul. Tot ce face butonul înseamnă și câteva comenzi, iar panoul le afișează pentru dumneavoastră cu suma de control și semnătura curente completate. Cei doi pași care merită păstrați când vă faceți singur scriptul sunt pașii de verificare:
Verificați suma de control a ceea ce ați descărcat.
echo "<sha256-from-the-panel> provibr-agent-linux-x86_64" | sha256sum -c -Verificați semnătura față de cheia publică de pe gazdă. Acesta este pasul pe care o descărcare simplă nu vi-l dă și este cel care contează.
openssl pkeyutl -verify -pubin -inkey /usr/local/lib/provibr-agent/license-signing.pub -rawin \
-in ./provibr-agent-linux-x86_64 -sigfile ./provibr-agent-linux-x86_64.sig