Quando é apropriado usar um gerenciador de configuração (por exemplo, Puppet / Chef / Ansible)?

17

No meu local de trabalho atual, cuido de duas máquinas host VMware, uma máquina física OpenBSD, três VMs Debian e seis VMs do Windows Server (2008/2012).

Estou pensando em implementar uma ferramenta de gerenciamento de configuração, como Puppet ou Chef. Isso é razoável ou a sobrecarga de aprender a ferramenta supera os benefícios? Onde está o ponto de inflexão entre gerenciamento e custo de implementação?

Rhyven
fonte
1
É "apropriado" assim que você precisar gerenciar uma configuração - precisa se recuperar de um desastre? Precisa mudar para um novo data center? Precisa expandir horizontalmente? Se você está fazendo à mão, está fazendo errado . " Fazendo isso duas vezes? Anote. "
warren
1
Depende do que você precisa fazer para / com esses sistemas.
precisa saber é o seguinte

Respostas:

25

IMHO vale a pena aprender, mesmo se você estiver gerenciando apenas um único servidor,

Sim, haverá uma curva de aprendizado. Sim, você ficará frustrado. Porém, por esses custos, você será recompensado em múltiplos através de implantações confiáveis ​​e consistentes com um clique, configuração de servidor controlado por versão, facilidade de configuração de ambientes de teste / desenvolvimento, etc.

Além dos benefícios do seu trabalho atual, poder adicionar um sistema de CM ao seu currículo é uma grande vitória. Agora, espera-se que os administradores de sistemas modernos tenham pelo menos uma exposição a um sistema de gerenciamento de configurações, se não proficiência.

(Sidenote: considere o Ansible também. É o meu CM preferido e é muito fácil de usar - muito mais fácil do que o Puppet ou o Chef. Além disso, o suporte ao Windows no Ansible está se saindo bem.)

EEAA
fonte
5
Bem dito. Acabo usando o Ansible em coisas triviais, como configurar um pi de framboesa em casa, porque é uma maneira conveniente para eu documentar o processo.
precisa saber é o seguinte
2
Absolutamente! Entrar no Chef foi uma grande vitória na minha carreira. Aqui está a coisa real: em alguns anos, o CM será praticamente necessário / esperado para todos os empregos, exceto o Junior SysAd.
precisa saber é
2
Totalmente de acordo. Muito foco está na automação da instalação, que é apenas uma parte dos sistemas CM. As pessoas esquecem o que M significa - gestão. Como você acompanha as várias alterações na configuração que você faz em 1 servidor. O número de servidores não importa. Quando esse 1 servidor morre, você fica feliz em poder reconstruí-lo exatamente sem dúvida.
ETL
5

Estou pensando em implementar uma ferramenta de gerenciamento de configuração, como Puppet ou Chef. Isso é razoável ou a sobrecarga de aprender a ferramenta supera os benefícios?

É razoável, dependendo de quanto tempo e dinheiro você tem para queimar, e se é ou não o seu dinheiro que você está queimando.

Uma ferramenta de gerenciamento de configuração (qualquer uma delas) está se tornando uma habilidade valiosa no mercado atual.

Passar o tempo aprendendo e implementando uma ferramenta de gerenciamento de conteúdo pode não ser a coisa mais eficiente a ser feita da perspectiva de seu negócio ou ambiente, mas do seu conjunto de habilidades pode valer a pena.

Onde está o ponto de inflexão entre gerenciamento e custo de implementação?

A maioria das ferramentas de gerenciamento de configuração está disponível gratuitamente com a ressalva de que são mais difíceis de instalar e seguir em frente.

Essa pergunta é um pouco difícil de responder, pois realmente depende do que você está fazendo diariamente para gerenciar esses servidores. Se você não precisa fazer muito, uma ferramenta de gerenciamento de configuração pode ser um exagero total.

Se você realmente só precisa impor sua infraestrutura a um estado previsível e básico, pode não fazer muito mal entender os princípios básicos de algo como SaltStack ou Ansible.

Na minha experiência pessoal, o Salt é muito fácil de iniciar e inicializar em servidores e pode ser usado para execução e relatórios remotos muito básicos, que podem ser úteis se você ainda não o tiver implementado em seu ambiente.

Tenha em mente, eu sou tendencioso. Você deve avaliar cada ferramenta de CM sozinho.

Vasili Syrakis
fonte
4

Assim como o @EEAA disse - o número de servidores é irrelevante. Você pode colher os benefícios de usar o gerenciamento de configuração com uma única máquina:

  • configuração documentada (documentada via scripts CM)
  • implantação confiável (você pode [re] implantar sua configuração repetidamente
  • resiliência da instalação (o servidor atual resmunga - crie um novo)
  • reutilização (quando você chega ao ponto de ter um segundo servidor - você já possui scripts CM, pode reciclar desde o primeiro)
  • atualizações (é como uma nova configuração, apenas no topo de uma plataforma diferente)

Posso dizer que tive que implementar o CM para todos os meus servidores pessoais, pois trabalho lá com pouca frequência e esqueço todos os pequenos detalhes. Tendo scripts CM enquanto pode parecer demorado (é), o retorno vale a pena. A longo prazo, você economizará muito mais tempo gastando configurando as coisas.

Droopy4096
fonte
3

Tenho experiência com Puppet e Ansible. Ansible é IMO mais simples, pois é processual, enquanto Puppet é declarativo. Existem prós e contras de ambos, mas puxei cabelos suficientes devido aos erros enigmáticos de Puppet.

Ambos exigem muito trabalho se você deseja criar uma configuração limpa e reutilizável. Os custos começam a valer a pena se você tiver pelo menos dois servidores muito semelhantes, por exemplo, nuvens ou clusters.

No entanto, ele é útil mesmo em servidores independentes - você pode configurar usuários administrativos, configurações padrão (com variações locais) sshd, postfix ou snmpd e também usá-los para uma coleta simples de informações, como adesão à política ou teste de vulnerabilidade ao shellshock.

Além disso, conforme mencionado pelo EEAA, ele tem um valor para documentar a configuração, se você verificar se realmente traz um servidor do estado base para o estado em execução. É bom combiná-lo com o sistema de controle de versão (git), para que as alterações feitas sejam versionadas e documentadas. Isso é muito valioso se você tiver uma equipe de administradores.

Edheldil
fonte
1

O Puppet ou qualquer outro sistema de gerenciamento traz grandes benefícios que foram destacados por outras respostas aqui, mas não há uma bala de prata no que diz respeito ao gerenciamento.

Por exemplo, a criação de aulas de marionetes para sistemas complexos custa muito tempo, esforço e, às vezes, lágrimas, pois há muitas armadilhas, e as mensagens de erro nem sempre são 100% claras e, quando o software é atualizado, você deve investir tempo para adaptar suas aulas de marionetes para corresponder a qualquer nova especificação ou procedimento e descubra qual abordagem é mais adequada para isso (fantoche, por exemplo, declarativo e uma atualização geralmente é processual)

Além disso, você precisa descobrir como planeja implementar as alterações feitas em suas aulas de maneira controlada e como manter as diferentes versões de seus manifestos.

Você também deve considerar como proceder para atualizar sua solução de gerenciamento quando chegar a hora disso.

Se você gasta um tempo significativo escrevendo, por exemplo, aulas de marionetes, precisará executar várias instalações com um clique para obter benefícios reais.

Eu recomendo explorar ainda e onde apropriado, ou seja, a distribuição de arquivos de configuração pode ser um bom lugar para começar e levá-la a partir daí.

Petter H
fonte