Visão geral
De certa forma, você tem duas perguntas aqui ..
- Como crio e mantenho servidores padrão?
- Como mantenho a configuração padrão e faço alterações posteriormente?
Dividi minha resposta abaixo, abordando essas duas coisas separadamente, mas elas estão intimamente relacionadas. Estou abordando as soluções de tecnologia aqui e não nenhuma das melhores práticas relacionadas, como controle de alterações.
Se isso não cobrir o escopo da sua pergunta, esclareça e terei prazer em elaborar. Essa é a base necessária, essencial para uma infraestrutura de tecnologia bem administrada.
Criando servidores
Não gosto de imagens no mundo UNIX; isso é mais uma abordagem de estilo do Windows. Até mesmo algumas pessoas do Windows parecem estar se concentrando nos scripts para compilações padrão agora.
O satélite parece estar ficando um pouco popular no mundo do RHEL. Spacewalk é a contraparte de código aberto. Você definitivamente precisa comprar a abordagem RHEL inteiramente para usá-la. Isso serve como criação de servidor e gerenciamento de configuração.
Idealmente, você desejaria estabelecer espelhos e repositórios locais em um servidor de arquivos para todo o software necessário.
Primeiro, aproveite sua automação de construção de distribuição, como o Kickstart no RHEL / CentOS. O Kickstart seria uma linha de base com variações, dependendo de suas necessidades. As compilações do Kickstart podem ser iniciadas a partir de um servidor PXE.
Para a parte mais avançada da compilação e qualquer coisa que não seja adequada para um arquivo Kickstart, você pode escrever seus próprios scripts personalizados. No entanto, você pode achar que o puppet ou o cfengine funcionam bem para você, em vez de scripts personalizados. Eu achei os scripts personalizados os mais flexíveis e não estão limitados a uma única abordagem.
Se você optar por escrever seus próprios scripts, recomendo um script principal para configuração universal. Isso seria configuração de segurança, proteção e qualquer coisa que se aplique a todas as compilações. Em seguida, um script final para finalizar a função de servidor. Por exemplo, um servidor web ou um servidor de banco de dados.
Manutenção de padrões
O que você descreve também se enquadra na manutenção de configurações. Os padrões de compilação, atualizações de software e outras coisas estão relacionadas às compilações, mas de várias maneiras separadas.
Se você optar por confiar nos pacotes do sistema, em vez de criar suas próprias construções baseadas na fonte para as funções de servidor mais importantes, muito disso poderá ser mantido com os utilitários nativos do sistema. Esse pode ser um script tão simples para executar um for
loop na sua lista de servidores e executar um yum -y update package
.
Para gerenciamento de configuração, este é o lugar onde fantoches, cfengine, e outra de gerenciamento de configuração utilitários entram em jogo. Estes são utilitários muito úteis e fornecem a base necessária sem escrever seus próprios scripts do zero.
Quando você atualiza seus padrões de configuração para seus servidores, é importante preencher isso em suas compilações de servidor padrão.