Como registrar ajustes feitos em uma máquina Linux para duplicar as mesmas etapas em outras máquinas, para documentação e para desfazer

1

Estou procurando métodos, métodos e ferramentas de automação para registrar os ajustes que faço em uma máquina Linux.

Tais ajustes seriam:

  • Instalação de novos softwares / componentes de software via apt-get, incluindo forçar versões particulares a serem instaladas
  • Instalação de módulos Perl
  • Use o make install, faça o processo para atender às metas dos itens acima
  • Alterações em caminhos e variáveis de ambiente
  • Apenas sobre qualquer tipo de mudança que você possa fazer em uma máquina Linux
  • Registro dos erros que podem resultar em qualquer uma das etapas acima

Eu usaria essa técnica de registro para:

  • permite que as etapas sejam duplicadas, sejam repetíveis em outra máquina Linux, por exemplo, se eu estiver configurando os mesmos aplicativos para várias máquinas
  • fornece uma base para documentar as etapas
  • ajuda com o fornecimento de um processo de desfazer, para desfazer as alterações que restauram a máquina de volta ao estado antes que as alterações sejam feitas

Por que eu acho que esse método ou métodos e ferramentas são necessários?

  • Porque muitas vezes podemos estar sob pressão, digitando vários comandos, um após o outro, para criar algo, depois instalar, etc.
  • Porque parece haver muitos softwares baseados em Linux que não funcionam como os planejadores ou as instruções são incompletos, ambíguos. (Está ficando melhor, com sites como este e howtoforge.com)
  • Como os administradores do Linux, os desenvolvedores não são tão bons em documentar o que fizeram ou relutam ou consideram uma tarefa chata, considerando-a sem importância

As funcionalidades que eu procuraria incluiriam:

  • Log de comandos digitados e a saída
  • Registrar as alterações resultantes no sistema
  • Talvez uma ferramenta de comparação de estilo BeyondCompare para comparar de forma inteligente a partição do sistema de arquivos feita antes e depois das alterações
por therobyouknow 21.12.2009 / 11:38

3 respostas

3

Acabou de descrever o Configuration Management e ferramentas como Puppet ou Chef .

O princípio é que você escreve suas configurações modularmente em uma linguagem específica do domínio. Esses módulos podem ser colocados em camadas para levar um host a um estado completo ou parcial necessário e mantê-lo lá. Eles também formam sua documentação, já que o DSL deve ser fácil de ler e reutilizar. Quando combinado com o Controle de Revisão, você tem um controle mais granular das alterações. A maioria das implementações inclui métodos de registro que podem ser expandidos.

A única coisa que geralmente falta em seus requisitos é a capacidade de realmente capturar estados e facilitar ações de desfazer. O CM pode simplificar isso em algum aspecto, documentando as alterações e armazenando os arquivos substituídos, mas não estou ciente de nenhum sistema que forneça uma reversão semelhante à do instantâneo. Você pode conseguir isso com virtualização e backups.

    
por 21.12.2009 / 12:10
2

Para a parte " Logging dos comandos digitados e da saída ", você pode usar o comando script .

SCRIPT(1)                 BSD General Commands Manual                SCRIPT(1)

NAME
     script — make typescript of terminal session

SYNOPSIS
     script [-a] [-c COMMAND] [-f] [-q] [-t] [file]

DESCRIPTION
     Script makes a typescript of everything printed on your terminal.  It is
     useful for students who need a hardcopy record of an interactive session
     as proof of an assignment, as the typescript file can be printed out
     later with lpr(1).

     If the argument file is given, script saves all dialogue in file.  If no
     file name is given, the typescript is saved in the file typescript.

Realmente útil para documentar o que você fez.

    
por 21.12.2009 / 15:25
1

Em vez de abordar dessa maneira, por que não simplesmente fazer todas as alterações em seus servidores por meio de um sistema de gerenciamento de configuração como o Puppet? É assim que eu gerencio minhas máquinas e, dessa forma, posso ter certeza de que todas as minhas máquinas em um cluster com balanceamento de carga são idênticas.

    
por 21.12.2009 / 11:45