Como podemos automatizar a rede em um ambiente de marionetes?

6

Nossa infra-estrutura: gerenciamos um mestre de marionetes para cerca de 250 nós (cerca de 100 servidores de hardware). O sistema operacional nos nós em si é totalmente manipulado.

Agora, estamos tentando estender essa configuração de fantoches para os seguintes domínios:

  1. Gerenciamento IP / DHCP
  2. Configuração da APC
  3. mudar configuração (via SNMP, temos switches Arista)
  4. gerenciamento de inventário (onde está o servidor x em rack? quanto tempo a garantia ainda funciona?)

Existe um software (opensource ou não não importa) que nos permite alcançar isso? Eu imagino que ele tenha um esquema de dados relacional como server ou switch , que pode ser preenchido pelo web ui. Então, para cada um desses 4 pontos, existem scripts para extrair os dados das tabelas e empurrá-los para os dispositivos.

certo, por que não apenas pegamos fantoche para isso?

Gostaríamos muito, já que queremos ter toda a configuração em um só lugar, mas ...

1 + 2 poderia ser feito em fantoches, mas em 250 nós que parece um grande manifesto de marionetes. Além disso, queremos adicionar o provisionamento de VMs por meio do capataz de fantoches em breve, de modo que o "sistema de reserva de IP" precisa ser "reativo" e, portanto, a OMI precisa estar fora do fantoche. 3 provavelmente não é possível, já que as chaves ainda não estão prontas para o fantoche.
4 é provavelmente possível com o fantoche quando adicionaremos uma camada de "hardware" acima da camada do nó no fantoche.

Alguma opinião?

    
por hansaplast 12.02.2014 / 09:52

2 respostas

6

AFAIK O Foreman já leva na direção certa, então talvez você deva começar a brincar com isso.

Além disso, dê uma olhada nos Fatos personalizados . Eles são uma maneira poderosa de acessar todos os tipos de dados e torná-los utilizáveis nos manifestos do Puppet. Por exemplo. crie um fato personalizado como $::inventory_ipaddress ou até mesmo sobrescreva o $::ipaddress fact com o canônico a ser usado para configuração.

Para 1: Para um grande número de hosts, geralmente é aconselhável não ter centenas de node de definições, mas sim ter um conjunto de funções e perfis .

O desafio geral do design aqui é ter um fluxo claro de informações de fonte (s) única (s) de verdade para o provisionamento.

Para 2 + 3: você pode usar o fantoche para chamar todos os tipos de scripts e ferramentas auxiliares, mas duvido que seja a melhor ferramenta para o trabalho, porque provavelmente não será a "fonte da verdade".

Para 4: Isso está em algum lugar entre os dois. Eu mesmo uso marionetes em instâncias do EC2 para periodicamente acionar uma atualização de inventário do Zabbix e usar o facetador para preencher, p. Ex. função, versão do sistema operacional, grupos de segurança. Advertência aqui: minha fonte normativa de verdade é uma ferramenta de provisionamento e minha marionete se manifesta onde eu posso mudar configurações; Por outro lado, este inventário é apenas o resultado final para verificar os resultados.

    
por 12.02.2014 / 10:59
1

É possível configurar os switches Arista usando o Puppet em execução no sistema operacional EOS no próprio switch. Arista até fornece um tutorial sobre como instalar o Puppet: Instalando o Puppet no EOS Para que não tem que ser um problema.

Para as tarefas de inventário (IP's, locais, waranty) eu recomendaria o Zabbix.

    
por 22.02.2014 / 20:06