Bruno Marcondes <[email protected]> || @bmarcondesEduardo S. Scarpellini <[email protected]> || @escarpellini
Python no iG(Automação de Data Centers)
O início de um novo Data Center
• Deploy da primeira máquina (servidor de instalação)
• Instalação manual do SO.
• Script em Python utlizando fabric para deploy do puppet + manifests.– Puppet é o responsável pelo seu auto-deploy
(puppetmasterd) + servidor BOOTP, TFTP, etc.
Inventário de hardware
Distribuição diskless (PXE+NFS).
Coleta de informações via lshw (XML). POST de dados para fla (RabbitMQ). Consumidor da fla para persistência em base central
(MySQL). Checagem de integridade da informação, se esta já
existr previamente.
Hardware disponível para consulta ou instalação. [re]boot do servidor via IPMI e instalação com
sistema operacional defnitvo.
Fluxo de Instalação de hardware
Manual / Local
Remoto / Automatizado
Cobbler• Permite a rápida confguração de um ambiente de instalação via rede
(provisionamento de servidores). • Garante a harmonia de:
o DHCP/BOOTP (templates). o TFTP + syslinux (templates).o Kickstart (templates).o Repositórios de pacotes.
• Suporte a:
o IPMI (power management: DRAC, iLO, etc).o Triggers (integração com webservices)o Diversas distribuições, versões e arquiteturas de GNU/Linux.
• Interfaces:
o CLI (command line)o XMLRPCo WEB (Cobbler Web)
Gerenciamento de Confguração
Puppet
• Ruby.• Modular. • XMLRPC/REST (+SSL).
• Meta-linguagem para defnição de manifests/classes.
o Acesso a funcões/código externos (ruby).o Herança / especialização de classes.
• Classes compostas por recursos abstratos (domínio do cliente). • Interdependência + Eventos (Triggers).
• iG:• nodeclassifer.py• Mercurial + Python Hooks
Administração Centralizada
Func
• Execução de módulos/funções de maneira massiva (ad hoc).o overlord => minions.
• XMLRPC (+SSL) • Arquitetura modular (fácil desenvolvimento).
o Ex.: command, jboss, rpm, iptables, process, ping, etc. • Interfaces
o Python API import func.overloard.client
o CLI func 'home-ws-*.tld' call command run 'htpd -V' func 'blig-ws-[123].tld' call hardware info
Monitoração
Collectd • Performátco e leve.
o C.o Alta resolução/granularidade (segundos).
• Plugins.o Apache, Nginx, Mysql, Bind, Varnish, RRD, Nagios, etc.
• Extensõeso Pythono Java.o Perl. o Bash (exec).
• Network o Push de dados para o servidor (passivo). o Multcast (auto-discovery).
o Visualização.– RRD plugin + collectd-web.
Integração
Control Staton Dashboard unifcado para as ferramentas citadas.
– Python/Django + MySQL + RabbitMQ.• Facilidade/Plugins/Reaproveitamento/Performance.
Ponto único para as informações relevantes.
– Dados de inventário.– WorkFlows / Requisições.– CRUDs. – Mashup (gráfcos).– Visões consolidadas/alto-nível para sites, serviços e pools.
Webservices (REST) para integração entre serviços de backend.
Control Staton
Control Staton
Top Related