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

17

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

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

    
por Rhyven 07.04.2015 / 06:36

5 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 esses custos, no entanto, você será pago de volta em múltiplos através de implementações confiáveis, consistentes e com apenas um clique, configuração de servidor controlada por versão, facilidade de configuração de ambientes de teste / desenvolvimento, etc.

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

(Sidenote: considere 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 do Windows no Ansible está chegando bem.)

    
por 07.04.2015 / 07:04
5

I'm considering implementing a configuration management tool such as Puppet or Chef. Is this reasonable, or will the overhead of learning the tool outweigh the benefits?

É 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.

Gastar tempo para aprender e implementar uma ferramenta de CM pode não ser a coisa mais eficiente a ser feita do ponto de vista de sua empresa ou ambiente, mas a partir de seu conjunto de habilidades pode valer a pena.

Where is the tipping point between manageability & implementation cost?

A maioria das ferramentas de gerenciamento de configurações está disponível gratuitamente com a ressalva de que elas são mais difíceis de instalar e continuar.

Essa pergunta é um pouco difícil de responder, já que realmente depende do que você está fazendo no dia a dia para gerenciar esses servidores. Se você não é obrigado a fazer muita coisa, então uma ferramenta de gerenciamento de configuração pode ser um exagero total.

Se você realmente precisa impor sua infraestrutura em um estado básico e previsível, pode não ser muito prejudicial obter os fundamentos básicos de algo como SaltStack ou Ansible.

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

Tenha em mente que sou parcial. Você deve avaliar cada ferramenta CM por você mesmo.

    
por 07.04.2015 / 16:34
4

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

  • configuração documentada (documentada por meio de scripts CM)
  • implantação confiável (você pode [re] implantar sua configuração repetidamente
  • resiliência da configuração (coaxas atuais do servidor - crie uma nova)
  • reutilização (quando você chega ao ponto de ter um segundo servidor - você já tem scripts CM que pode reciclar do primeiro)
  • Upgrades
  • (é como uma nova configuração, apenas no topo de uma plataforma diferente)

Posso dizer que precisei implementar o CM para todos os meus servidores pessoais, pois não trabalho com frequência e esqueço todos os pequenos detalhes. Tendo scripts CM, embora possa parecer demorado (é), o retorno vale bem a pena. A longo prazo, você economizará muito mais tempo gasto para configurar as coisas.

    
por 09.04.2015 / 16:12
3

Eu tenho experiência com Puppet e Ansible. Ansible é IMO mais simples, como é processual, enquanto o Puppet é declarativo. Há prós e contras para ambos, mas eu puxei cabelo suficiente devido aos erros crípticos do 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 tem algum uso, mesmo para servidores autônomos - 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 shellshock. vulnerabilidade.

Além disso, como mencionado pelo EEAA, ele tem um valor para documentar a configuração se você verificar que realmente traz um servidor do estado base para o estado de 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.

    
por 07.04.2015 / 17:14
1

O fantoche ou qualquer outro sistema de gerenciamento traz grandes benefícios que foram destacados por outras respostas aqui, mas não há bala de prata quando se trata de gerenciamento.

Por exemplo, criar aulas de fantoches para sistemas complexos custa muito tempo e esforço e às vezes rasga, pois há muitas armadilhas, e as mensagens de erro nem sempre são 100% claras, e quando as atualizações de software você precisa investir tempo para adaptar suas puppetclasses qualquer nova especificação ou procedimento e descobrir qual abordagem é mais adequada para isso (fantoche, por exemplo, declarativo e um upgrade é tipicamente processual)

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

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

Se você gasta uma quantidade significativa de tempo escrevendo, por exemplo, aulas de fantoches, é necessário 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á-lo a partir daí.

    
por 09.04.2015 / 17:40