Usando snapshots com reprepro para permitir rollbacks

2

Estou usando reprepro para manter um arquivo de pacotes privados de pacotes internos. Não há uma maneira direta de manter várias versões de um pacote disponíveis usando reprepro (veja aqui ), mas ele tem um recurso de instantâneo que funciona.

Mas apenas um pouco. Eu não vejo uma boa maneira de voltar para uma versão de snapshot. Existe um comando restore documentado, mas parece que não funciona (reprepro versão 4.8.2 no Ubuntu 12.4.1 LTS).

Eu posso acessar o instantâneo via apt-get , conforme descrito na página man, editando sources.list para incluir algo como

deb method://as/without/snapshot codename/snapshots/name main

mas isso significa que preciso atualizar todos os servidores com um novo sources.list para alterar seus snapshots.

O que eu gostaria de fazer é manter uma distribuição "segura" que eu possa configurar a partir de qualquer snapshot em "stable" e sempre ter servidores puxados de "safe". Então, para fazer uma reversão, eu simplesmente reviro "seguro" e faço com que os servidores removam e reinstalem os pacotes. (Eu digo remover e reinstalar porque parece muito difícil fazê-los fazer downgrade apenas dos pacotes privados sem tocar nos pacotes públicos.) Ou algo parecido.

O objetivo principal é ter uma maneira automatizada de fazer com que um farm de servidores seja revertido para uma versão mais antiga dos pacotes. Estou aberto a sugestões.

Como as pessoas lidam com isso? Existe uma maneira de obter reprepro instantâneos para funcionar da maneira que eu gostaria?

    
por Old Pro 20.03.2013 / 04:42

1 resposta

1

Eu faria isso usando um volume lógico LVM que suporta o repositório. É provavelmente melhor colocar isso em um sistema de arquivos separado do que o root de qualquer maneira. Etapas para fazer isso seria:

  1. Se o LVM não estiver instalado, instale e configure-o.
  2. Crie um volume lógico para o seu repositório.
  3. Formate com o sistema de arquivos de sua preferência.
  4. Monte no local apropriado.
  5. Mova o repositório para ele.

Neste ponto, você pode capturar instantaneamente o repositório inteiro criando instantâneos de volume lógico. Se desejar, você pode configurar instantâneos contínuos todas as noites.

Se você está se sentindo particularmente ousado, pode usar snapshots em nível de sistema de arquivos com BTRFS ou ZFS, mas esses são menos maduros no Linux no momento.

por 13.06.2013 / 00:50