Como automatizar a configuração do servidor Linux?

25

Existe alguma maneira de automatizar a configuração do servidor Linux? Estou trabalhando na configuração de alguns novos servidores de compilação, além de um servidor FTP, e gostaria de automatizar o máximo possível do processo.

A razão para isso é que a instalação e configuração desses servidores precisam ser feitas de uma maneira facilmente repetível. Concluímos que, ao automatizar o máximo possível desse processo, seria mais fácil repetir conforme necessário no futuro.

Basicamente, tudo o que os servidores precisam é instalar o sistema operacional, além de alguns pacotes. Não há nada excessivamente complicado nas configurações.

Então, existe uma maneira de automatizar esse processo (ou pelo menos uma parte dele)?

EDIT: Além disso, digamos que eu use o Kickstart, existe uma maneira de remover os repositórios padrão do Ubuntu e apenas instalar os pacotes de uma coleção de arquivos .deb que temos localmente (preferencialmente através do apt, em vez do dpkg)?

user1617942
fonte
Que distro você escolheu instalar? Isso seria útil para determinar o próximo passo
eyoung100
tenha cuidado, no entanto, que a tarefa de automação pode levar muito tempo. Se você planeja instalar menos de 10 hosts, pode não valer a pena a tarefa.
Archemar
Recentemente, aprendi sobre os recursos oferecidos pelo saltstack (repositório mais contribuído no Github). Eu recomendo analisá-lo, pois oferece ferramentas para criar novos servidores em serviços como aws e implantar configurações, configurações, arquivos de gravação, acesso remoto ao shell, acesso ao shell em massa. mesmo restrição de acesso. Parece que tudo o que você precisa para fazer isso parece. Embora eu tenha bons amigos que juram pela Ansible novas configurações de servidor.
ThorSummoner
+1 para você e mattdm ... Eu não sabia que este fórum existia até o ver nas Perguntas da Hot Network e então nem pensei que essa pergunta tivesse resposta. Tão feliz que você pediu e foi respondida muito bem !
22414 Sylvia Seabrook

Respostas:

36

Sim! Isso é muito importante e incrivelmente comum. E há duas abordagens básicas. Uma maneira é simplesmente com instalações com script, como por exemplo usadas no kickstart do Fedora, RHEL ou CentOS. Verifique isso no guia de instalação do Fedora: Instalações do Kickstart . Para o seu caso simples, isso pode ser suficiente. (Tome isso como exemplo; existem sistemas semelhantes para outras distros, mas desde que eu trabalho no Fedora, é com isso que estou familiarizado.)

A outra abordagem é usar o gerenciamento de configuração . Este é um tópico importante, mas consulte Puppet, Chef, Ansible, cfengine, Salt e outros. Nesse caso, você pode usar um kickstart genérico muito básico para provisionar uma máquina mínima e a ferramenta de gerenciamento de configuração para colocá-la em sua função adequada.

À medida que suas necessidades e infraestrutura crescem, isso se torna incrivelmente importante. Usar o gerenciamento de configuração para todas as suas alterações significa que você pode recriar não apenas a instalação inicial, mas também o estado evoluído do sistema ao introduzir os inevitáveis ​​ajustes e correções causados ​​pela interação com o mundo real.

Concluímos que, ao automatizar o máximo possível desse processo, seria mais fácil repetir conforme necessário no futuro.

Você está absolutamente no caminho certo - este é o princípio fundamental da administração de sistemas profissionais. Temos até uma imagem de meme para isso:

AUTOMATIZAR TODAS AS COISAS

Geralmente, é moderadamente mais difícil de configurar inicialmente, e pode haver uma grande curva de aprendizado para alguns dos sistemas mais avançados, mas se paga para sempre. Mesmo se você tiver apenas alguns sistemas, pense em quanto você deseja trabalhar para recriá-los em caso de catástrofe no meio da noite ou quando estiver de férias.

mattdm
fonte
11
Ótimo, obrigado! Vou começar a analisar tudo isso.
user1617942
Você não mencionou Sapateiro.
Brian
@staticx Sim, isso não é abrangente. Também existe um mundo inteiro de sistemas de provisionamento: Cobbler, Foreman, Satellite / Spacewalk, FAI, Razor, e isso nem é necessário.
mattdm
@ChrisK Ha, eu diria o mesmo;)
William Edwards
0

Slingshot é um script para automatizar a instalação e configuração dos pacotes de software Linux. O Slingshot possui e usa um modelo / sistema de mensagens.

http://www.dyncomp.net/what-is-slingshot/

Daniel Huckson
fonte
0

Eu recomendo fortemente o Puppet . É amplamente utilizado, bem documentado e suportado.

Willian Paixao
fonte