Saltar para o conteúdo

🔄 Atualizar o agente

Quando sai uma versão nova do agente local, o BolloPrint avisa-te, mas a atualização faz-se no teu equipamento, não a partir do BolloPrint: o agente corre na tua rede e só tu o podes mudar. É mudar um número no teu ficheiro e voltar a instalar. As tuas impressoras, o seu histórico e as chaves do agente não se tocam.


Como sabes que chegou a hora

  • Por cima dos separadores de Configurações → Impressoras aparece um aviso: «O teu agente usa a versão 0.4.7. Já está disponível a 0.4.9», com o botão Como atualizar, que te traz aqui.
  • No separador Agente local, o número de versão desse agente aparece em laranja. Se aparecer em vermelho, essa versão já não é suportada e convém atualizar quanto antes.

A versão nova vês sempre no separador Instalação do agente (menu ⋮ → Editar): é o número que há no final da linha image:.


O que muda

Só muda a linha image:, e dentro dela só o número da versão. Tudo o resto fica exatamente igual: o código, a identidade, o volume e o resto da configuração.

Assim ficaria um docker-compose.yml ao passar da 0.4.7 para a 0.4.9 (as chaves aparecem com pontos, mas no teu ficheiro são as tuas):

Antes

services:
  bolloprint-agent:
    image: ghcr.io/bolloprint/bolloprint-agent:0.4.7
    container_name: bolloprint_agent
    restart: unless-stopped
    network_mode: host
    environment:
      BP_AGENT_CODE: ••••••••••••••••
      BP_AGENT_INSTANCE_ID: ••••••••••••••••
    volumes:
      - identity:/var/lib/bolloprint

volumes:
  identity:
    name: bolloprint_agent_identity

Depois

services:
  bolloprint-agent:
    image: ghcr.io/bolloprint/bolloprint-agent:0.4.9
    container_name: bolloprint_agent
    restart: unless-stopped
    network_mode: host
    environment:
      BP_AGENT_CODE: ••••••••••••••••
      BP_AGENT_INSTANCE_ID: ••••••••••••••••
    volumes:
      - identity:/var/lib/bolloprint

volumes:
  identity:
    name: bolloprint_agent_identity

(O teu ficheiro tem mais algumas linhas, como os limites de memória e os registos; ficam tal como estão. Aqui foram retiradas para que se veja a diferença.)

⚠️ Não copies o manifesto do separador Instalação por cima do teu ficheiro

Num agente que já existe, o BolloPrint mostra as chaves tapadas com pontos, porque não as guarda. Se colares esse manifesto inteiro sobre o teu, apagas as tuas chaves e o agente deixa de se ligar. Muda só o número da linha image: no ficheiro que já tens.


Passo a passo

Docker Compose

  1. Abre o docker-compose.yml do agente e muda o número da linha image:.
  2. A partir da pasta desse ficheiro, descarrega a versão nova e volta a arrancá-lo:
docker compose pull
docker compose up -d

O Docker substitui o contentor por um novo com a mesma configuração e o mesmo volume.

Portainer

  1. Vai a Stacks e abre o stack do agente.
  2. Prime Editor, muda o número da linha image:.
  3. Ativa Re-pull image and redeploy (ou Pull latest image, dependendo da tua versão do Portainer) e prime Update the stack.

Kubernetes

Muda o número da linha image: no teu ficheiro e volta a aplicá-lo:

kubectl apply -f bolloprint-agent.yaml

Ou, sem tocar no ficheiro, muda diretamente a imagem do deployment:

kubectl set image deployment/bolloprint-agent agent=ghcr.io/bolloprint/bolloprint-agent:0.4.9

Se o fizeres assim, muda também o ficheiro, ou da próxima vez que o aplicares voltas à versão antiga.


Confirmar que correu bem

Em menos de um minuto o agente volta a aparecer Online no separador Agente local, com o número de versão novo e sem cor de aviso. O aviso por cima dos separadores desaparece sozinho.

Enquanto o contentor reinicia, as impressoras podem aparecer uns segundos sem ligação. É normal: voltam sozinhas, e as impressões em curso continuam na máquina.

Se não voltar a aparecer, vê o seu registo:

docker logs bolloprint_agent --tail 50

O que NÃO deves fazer

  • Não regeneres as chaves para atualizar. Regenerar serve quando alguém tem as tuas chaves ou perdeste o manifesto, e desliga o agente até o voltares a instalar.
  • Não apagues o volume (bolloprint_agent_identity). Não é preciso para atualizar, e em agentes instalados com um manifesto antigo é onde guarda a sua identidade: sem ele terias de o autorizar outra vez.
  • Não cries um agente novo. Atualizar é o mesmo agente com outra versão; um novo teria outro código e as suas impressoras não passariam sozinhas.

Perguntas frequentes

Perco impressoras ou histórico ao atualizar? Não. As impressoras e tudo o que imprimiram estão no BolloPrint, não no agente.

Posso saltar versões? Sim. Passa diretamente para a última que o BolloPrint te indicar.

E se a versão nova me der problemas? Volta a pôr o número anterior na linha image: e instala da mesma forma. Depois escreve-nos no Discord para vermos isso.

Atualiza-se sozinho? Não, de propósito: o agente corre no teu equipamento e decides tu quando muda.