Reforçando a continuidade da versão do apt-get no Ubuntu

5

Como eu me certifico de que quando eu executo o apt-get update, o apt-get upgrade em 2 servidores diferentes em momentos diferentes, eu irei pegar os mesmos pacotes? Como faço para autotimizar / impor isso?

O caso de uso (simplificado) no qual estou olhando atualmente é se eu fizer upgrade de tudo para a versão mais recente em uma instância de desenvolvimento e testar todo o meu software personalizado contra ele, isso levará um dia ou 2. Quando executar atualizações / upgrades em uma máquina de produção, gostaria de atualizar apenas as versões que testei anteriormente. Isso me permitiria criar um processo para iterar correções mais recentes com mais rapidez e segurança do que atualmente.

O ideal é que eu tenha um registro de data e hora para a primeira atualização e aplique atualizações até o registro de data e hora nas atualizações subseqüentes. (Mas qualquer outra sugestão seria ótima)

Eu considerei investigar algumas opções, mas não tenho certeza se elas são promissoras ainda e exigem um pouco de tempo de engenharia, e estou curioso para saber se existe uma maneira mais simples de fazer isso.

1) Criando algum tipo de repositório de apt local que armazene em cache as versões. Esse repositório poderia extrair todas as versões recentes para o primeiro pull e, em seguida, apenas retorná-las quando subseqüentemente consultado.

2) Vendo se uma ferramenta de gerenciamento de configuração como ansible / chef poderia capturar todas as versões que foram atualizadas no primeiro pull, então force o segundo pull a puxar essas versões exatas.

Obrigado.

    
por andyvw 23.04.2014 / 00:50

2 respostas

6

Você precisa executar o seu próprio repositório apt usando uma ferramenta como apt-mirror ou aptly . Com uma ferramenta simples como o apt-mirror, você pode sincronizar seu repositório antes de atualizar seu ambiente de desenvolvimento e não sincronizá-lo novamente até que tenha atualizado seu ambiente de produção. Com uma ferramenta mais sofisticada como o aptly, você pode implementar esse ou mais fluxos de pacotes complexos.

    
por 23.04.2014 / 01:43
1
  1. Limpe /var/cache/apt/archives/ . Não é estritamente necessário, mas economiza espaço e tempo copiando em etapas futuras.
  2. Em um sistema de destino, faça uma atualização usando -d (somente download) para baixar os pacotes sem aplicá-los.
  3. Copie esses arquivos para /var/cache/apt/archives/ antes da noite da atualização do ambiente.
  4. Execute a atualização em todos os sistemas usando --no-download , forçando o sistema a usar seus candidatos à atualização.

Aviso de isenção de responsabilidade: Eu não testei isso sozinho, mas isso é análogo a como eu uso o yum em meus próprios ambientes de produção para evitar problemas com atualizações de canais não planejadas.

O método espelho local que o sciurus menciona seria superior, a menos que você não tenha controle total sobre o espelho local e deseje garantir que não ocorra uma sincronização entre os patches do cluster.

    
por 23.04.2014 / 02:18

Tags