O documento descreve como o uso de ferramentas como Python, Puppet, Cobbler, Func e Collectd permitem automatizar e gerenciar o deploy e a operação de um novo data center de forma remota e automatizada. O Control Station é apresentado como uma interface unificada para visualizar e gerenciar as informações coletadas por essas ferramentas.
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
1. Python no iG
(Automação de Data Centers)
Bruno Marcondes <brmarcondes@ig.com> || @bmarcondes
Eduardo S. Scarpellini <escarpellini@ig.com> || @escarpellini
2. 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.
3. 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.
5. 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 XMLRPC
o WEB (Cobbler Web)
11. Collectd
• Performátco e leve.
o C.
o Alta resolução/granularidade (segundos).
• Plugins.
o Apache, Nginx, Mysql, Bind, Varnish, RRD, Nagios, etc.
• Extensões
o Python
o 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.
13. 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.