Uso do PPA para enviar atualizações simples

5

Eu gostaria de configurar um PPA para enviar alterações simples para várias centenas de máquinas do Ubuntu 12.04 no campo. Mudanças simples significam que as mudanças de script bash e atualizações de arquivos de configuração e, possivelmente, outras atualizações de software, incluindo novas instalações de software que podem ser instaladas através do apt-get install. Várias perguntas que me vêm à mente são,

  1. O PPA pode ser usado para enviar atualizações de script?
  2. Posso configurar máquinas cliente para obter atualizações somente deste PPA e instalá-las automaticamente, assim como atualizações autônomas? (Claro que sei que esta opção é possível, mas espera-se um bom conjunto de ferramentas para o conseguir).

Eu sei que esta é uma pergunta ampla, mas uma resposta com poucas sugestões é muito apreciada.

    
por Bunti 10.06.2014 / 09:46

1 resposta

7

Eu queria fazer a mesma coisa, mas escolhi usar um repositório privado usando reprepro sobre PPAs. Todos os meus clientes estão na mesma LAN, então é mais simples para mim. Eu acho que isso é bastante viável, independentemente de você usar PPAs ou um repositório privado.

  • A modificação dos arquivos de configuração existentes é melhor tratada usando dpkg diversions, IMO. config-package-dev é uma bênção para isso. O Debian Wiki é um bom ponto de partida para informações sobre isso.
  • Adicionar arquivos de script ou seu próprio software não é tão difícil empacotando-os. Existem muitos guias de embalagem. Novamente, o wiki do Debian é um excelente ponto de partida. É mais simples criar pacotes binários do que a introdução, que será o caso dos scripts e arquivos de configuração.
  • Adicionar novos softwares de outros repositórios pode ser feito tornando-os dependências de seus pacotes. Especifique uma versão exata ou use apt pinning .
  • Upgrades autônomos para repositórios personalizados já são tratados: Como ativar atualizações automáticas silenciosas para qualquer repositório? Não sei de nenhuma maneira que um servidor possa enviar atualizações para um cliente. Você pode querer considerar puppet (via kick ing) ou sua laia. Ou você pode escrever um script no servidor que usa o SSH para executar atualizações no cliente. Ou ter um script que verifique atualizações quando a rede aparecer.
  • Acima de tudo, certifique-se de que seus scripts de manutenção de pacote ( preinst, postinst, prerm, postrm ) sejam idempotentes e que a remoção do pacote desfaça todas as alterações. Esses scripts podem fazer muitas coisas, mas nada afeta apt ou dkpg . Minimize o trabalho realizado nesses scripts.

No meu caso, eu uso um pacote para configurar o LDAP e NTP, adicionar um% globalvimrc habilitando opções comuns, fazer várias alterações de configuração (como habilitar sudo para um grupo, banindo o desligamento), adicionando um local não privilegiado user / group, etc. Outro pacote adiciona nosso certificado de CA e chave de assinatura de repositório auto-gerados e os marca como confiáveis no script postinst e adiciona uma entrada em sources.list.d para o nosso repositório.

Ainda não converti todos os sistemas para esse processo, então ainda não posso comentar sobre sua eficácia.

    
por muru 18.06.2014 / 23:50