Atualizando containers lxc automaticamente

Compartilhe

Containers linux lxc/lxd são uma mão na roda – o Docker leva a fama mas o poder de ter um container com estado e suporte de escrita dá uma enorme vantagem ao lxc/lxd quando o tema é virtualizar infraestrutura com o mínimo de overhead.

O problema é: como manter todos esses containers atualizados automaticamente? Você pode instalar um pacote como o unattended-upgrades em cada container, mas que tal partir para uma abordagem mais minimalista?

Com este simples script você atualizará todos seus containers baseados em Debian (o que inclui Mint, Ubuntu, etc) com um único comando, independente da quantidade de containers.

A lógica é bem simples: enumeramos os containers no sistema e daí para cada um rodamos apt update seguido de apt full-upgrade.

Crie o script com seu editor favorito (eu uso o nano).

nano ~/upd_containers.sh

Cole o conteúdo do script:

#!/bin/bash
#Script para atualizar todos os containers (assume containers baseados em debian)

RED='\033[0;31m'
NC='\033[0m' # No Color

for ct in $(lxc list -c n --format csv); do

    echo -e "${RED}Container: ${NC} $ct"
    lxc exec $ct -- apt update
    lxc exec $ct -- apt full-upgrade -y
    echo -e "\n"

done

Salve o script com Ctrl-X, daí dê permissão de execução:

chmod +x ~/upd_containers.sh

Daí, para executar basta digitar o nome do script:

~/upd_containers.sh

Para uma automação completa, basta agendar o script para rodar num horário agendado no crontab. Simples né?

Artigos Relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *