Monday, August 6, 12



Documentos relacionados
Prestação de serviços em: Baseados em: Para construir sua infraestrutura de TI e criar novas soluções de negócio. - Consultoria - Suporte - Projetos

Puppet. Automatizando e Gerênciando Con!gurações. <Guto Carvalho>

CISL Brasília/DF. Infraestrutura ágil com Puppet por Guto Carvalho

Webinar Introdução ao Puppet Enterprise

Assuma o controle de suas configurações Palestrantes:

Gerenciamento Avançado de Ambientes com Puppet

DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime

OCEL001 Comércio Eletrônico Módulo 9_3: OpenShift

Funcionalidades da ferramenta zabbix

Desenvolvendo Websites com PHP

INSTALANDO SISTEMA PFSENSE COMO FIREWALL/PROXY

Trabalho na 4Linux a 2 anos, e mexo com Linux a 5 anos.

SERVIDORES REDES E SR1

Passo a passo para instalação de um Servidor SSH

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Online Help StruxureWare Data Center Expert

Classificação::Modelo de implantação

INTRODUÇÃO: 1 - Conectando na sua conta

Gerenciamento de Redes de Computadores. Pfsense Introdução e Instalação

Mcollective. Orquestrando o seu parque de servidores

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

COORDENAÇÃO DE TECNOLOGIA (COTEC) AGOSTO/2010

Administração do Servidor da Aplicação e-sus Hospitalar

Universidade Católica de Brasília Pró-reitoria de Graduação Curso de Ciência da Computação

FACULDADE SENAC-RS PELOTAS RODRIGO ALMEIDA PEREIRA. Sistemas de Informação

Manual de Instalação do Agente Citsmart

Servidor proxy - Squid PROFESSOR : RENATO WILLIAM

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

Administrando o sistema linux TCP/IP

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Instalação do VOL Backup para Sistemas Unix-Like

Configure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo <eduardo at unisulma.edu.br> Data: 05/10/2004

Projeto e Instalação de Servidores Introdução a Servidores

Configurando o IIS no Server 2003

Sistema Operacional Unidade 13 Servidor Samba. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Uma poderosa ferramenta de monitoramento. Madson Santos - madson@pop-pi.rnp.br Técnico de Operação e Manutenção do PoP-PI/RNP

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

35% GARTNER. Despesas com tecnologia ocorrem fora da T.I. Fazem uso de tecnologias não aprovadas pela T.I.

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

AULA 6: SERVIDOR DNS EM WINDOWS SERVER

4º Semestre. Aula 15 Serviços Internet (FTP)

CURSO PRÁTICO. Módulo 2 Pré-requisitos. Application Virtualization 5.0. Nível: Básico / Intermediário

Test Driven Infrastructure na Globo.com. globo. .com. Fernando Carolo e Rogério Schneider QCon São Paulo 2014

Guia do Aplicativo Bomgar B200 Índice

AS CONSULTORIA & TREINAMENTOS. Pacote VIP. Linux Básico Linux Intermediário Samba 4 Firewall pfsense

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Monitoramento com Software Livre Zabbix

GUIA DE CONFIGURAÇÃO SERVIDOR DHCP

Os clientes devem fornecer todos os materiais de operação necessários quando solicitados pelo engenheiro.

A LIBERDADE DO LINUX COM A QUALIDADE ITAUTEC

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

UM PBX GENUINAMENTE BRASILEIRO

O melhor do PHP. Por que PHP? CAPÍTULO 1. Uma Pequena História do PHP

Orquestrando Docker Containers

Realizando inventário e gestão de hardware e software utilizando o OCS Inventory NG. Dario Kuceki Knopfholz

FACULDADE DE TECNOLOGIA SENAC GESTÃO DA TECNOLOGIA DA INFORMAÇÃO LABORATORIO DE REDE

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

Desenvolvendo Websites com PHP

Projeto Integrador Programação para Internet

Apresentação. Treinamento OTRS Help Desk

Secure Client. Manual do Usuário. IPNv2. Secure Client IPNv2

Tutorial para Instalação do Ubuntu Server 10.04

UM PBX GENUINAMENTE BRASILEIRO MANUAL DE INSTALAÇÃO COM IMAGEM ISO

MSN-Proxy v0.7 no Debian 5 (Atualizado)


Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

Problemas detectados

Instalando o WordPress em localhost

PROPOSTA COMERCIAL CLOUD SERVER

SISTEMA OPERACIONAL & SOFTWARE LIVRE

Configuração do Servidor DHCP no Windows Server 2003

Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server

Gerenciando seu projeto com dotproject

TUTORIAL DE INSTALAÇÃO DO PFSENSE E UMA REDE INTERNA NO VIRTUALBOX

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Origin manual. 1.1 Cadastrando usuário : Get manager License ID. Quem deve se cadastrar: Como se cadastrar. origin manual. 1 de 14

Software Livre e proprietário: Coexistência de diferentes formas de Licenciamento, interoperabilidade e eficiência na inclusão digital e social.

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

A.S.P. Servidores Windows

ServiceHD. Javier Abad Álvarez Iván Darío Otero López 1

- Wireless e NTP - 272

Linux - Servidor de Redes

#apt-get install make flex gcc gpp apache2 php5 php5-pgsql postgresql-8.4 libapache2-mod-php5 php5-gd php-net-socket postgres

IV Workshop VoIP Felipe Tocchetto

Ferramentas Scan Station Pro 550 Administration & Scan Station Service

Oficina Joomla. Prof. M.Sc. Marcos Roberto de Moraes

Introdução. O Windows Server 2003 está dividido em quatro versões:

OpenSSH

Manual de Utilização do ZABBIX

LINGUAGEM DE PROGRAMAÇÃO WEB

Tutorial de Instalação do CentOS Versão 3.3

Sistemas Distribuídos

Prof. Samuel Henrique Bucke Brito

Tutorial - Monitorando a Temperatura de Servidores Windows

Documentação Symom. Agente de Monitoração na Plataforma Windows

Transcrição:

Gerência de Configurações em Cloud Puppet em ambientes IaaS José Augusto (Guto) Carvalho jose.carvalho@4linux.com.br

whoami Consultor/SysAdmin (LPIC-3) na 4Linux.com.br 12 anos de experiência com tecnologias FOSS Blogueiro FOSS há 6 anos no site gutocarvalho.net Atuação em vários projetos de Governo no MDA, MINC, EBC/RADIOBRÁS, MPS/DATAPREV, ITI/PR, CEF, MD/SIPAM, DETRAN/DF Há 2 anos trabalhando com Gerência de Configurações em Ambientes Virtualizados e Clouds Privadas em Brasília

Puppet em IaaS

Plano de Trabalho 35 minutos de apresentação 5 minutos de hand s on 5 minutos para perguntas

Agenda Gerência de Configurações/Infra como Código Puppet como solução de Gerência de Configurações Puppet Arquitetura, Funcionamento e Recursos Mão-na-Massa Perguntas

Cloud Computing

Cloud e seus Benefícios Hiper-escalável Rápida e Elástica Abstração de Hardware Infraestrutura Dinâmica Sempre Disponível Economicamente Atrativa

Provisionamento Podemos criar 500 VM s em poucos minutos

Como Administrar 500 VM s?

Configuração Manual?

Acesso Secure Shell (ssh)?

Host a Host?

Quantos SysAdmins são necessários para administrar 500 servidores?

Qual a velocidade nas mudanças em seu ambiente?

Qual a probabilidade de falhas decorrentes de mudanças manuais?

Você consegue manter todo o seu ambiente padronizado?

Seu custo com manutenção e equipes técnicas está aumentando?

Está difícil colocar suas configurações nos trilhos?

Como resolver isto? Como obtenho controle e padronização em meu ambiente?

Gerência de Configurações

Padronização

Automatização

Controle

Integridade e desempenho

Agilidade nas mudanças

Puppet Ferramenta de nova geração que implementa gerência de configurações para seu ambiente.

Visão Rápida Infraestrutura como código

Visão Rápida Infraestrutura como código Pare de administrar e comece a desenvolver sua infra

Visão Rápida Infraestrutura como código Pare de administrar e comece a desenvolver sua infra Reuse código para gerenciar seu parque com facilidade

Visão Rápida Infraestrutura como código Pare de administrar e comece a desenvolver sua infra Reuse código para gerenciar seu parque com facilidade DSL: Linguagem declarativa para descrever configurações

Sobre a ferramenta Suporte a Linux, Unix, BSD s e Windows

Sobre a ferramenta Suporte a Linux, Unix, BSD s e Windows Criado por Luke Kaines (CEO e Founder PuppetLabs)

Sobre a ferramenta Suporte a Linux, Unix, BSD s e Windows Criado por Luke Kaines Empresa PuppetLabs mantém a Ferramenta

Sobre a ferramenta Suporte a Linux, Unix, BSD s e Windows Criado por Luke Kaines Empresa PuppetLabs mantém a Ferramenta Ferramenta OpenSource (Licença Apache)

Sobre a ferramenta Suporte a Linux, Unix, BSD s e Windows Criado por Luke Kaines Empresa PuppetLabs mantém a Ferramenta Ferramenta OpenSource (Licença Apache) Recebeu grandes investimentos recentemente

Sobre a ferramenta Suporte a Linux, BSDs, Solaris e Windows Criado por Luke Kaines Empresa PuppetLabs mantém a Ferramenta Ferramenta OpenSource (Licença Apache) Recebeu grandes investimentos recentemente Empresa oferece Suporte e Versão Enterprise

Feito por um SysAdmin para Sysadmins

Perfeito para DevOps

Especificações Escrito em Ruby

Especificações Escrito em Ruby Extensível usando código Ruby

Especificações Escrito em Ruby Extensível usando código Ruby Funciona em modo AD/HOC

Especificações Escrito em Ruby Extensível usando código Ruby Funciona em modo AD/HOC Funciona em arquitetura Cliente/Servidor

Especificações Escrito em Ruby Extensível usando código Ruby Funciona em modo AD/HOC Funciona em arquitetura Cliente/Servidor RESTful API

Especificações Escrito em Ruby Extensível usando código Ruby Funciona em modo AD/HOC Funciona em arquitetura Cliente/Servidor RESTful API Comunicação segura (SSL Certificate)

Clientes Puppet

Arquitetura Como funciona o Puppet?

Puppet Resource Abstraction Layer (RAL)

Puppet: RAL Resource Abstraction Layer = RAL

Puppet: RAL Resource Abstraction Layer = RAL Camada de Abstração de Recursos

Puppet: RAL Resource Abstraction Layer = RAL Camada de Abstração de Recursos Fale o que você quer que seja feito

Puppet: RAL Resource Abstraction Layer = RAL Camada de Abstração de Recursos Fale o que você quer que seja feito Não se preocupe em como será feito

Puppet: RAL Resource Abstraction Layer = RAL Camada de Abstração de Recursos Fale o que você quer que seja feito Não se preocupe em como será feito O Puppet sabe como fazer

Instale Pacote X

Remova usuário Z

(Re)inicie serviço Y

Tratamento de Informações O grande diferencial do Puppet é a forma como ele trata as informações de seus nodes

Tratamento de informações No Puppet tudo é modelado e tratado como dado

Tratamento de informações No Puppet tudo é modelado e tratado como dado O estado atual de um node (servidor) é um dado.

Tratamento de informações No Puppet tudo é modelado e tratado como dado O estado atual de um node (servidor) é um dado Um pacote instalado em um node é um dado

Tratamento de informações No Puppet tudo é modelado e tratado como dados O estado atual de um node (servidor) é um dado Um pacote instalado em um node é um dado Um usuário em um servidor é um dado

Os dados são inseridos em catálogos pelo master O catálogo é processado pelo node e as modificações são aplicadas de acordo com o que foi declarado.

Processamento do Catálogo 1) Agente Requisita Catálogo 1.1) Agente envia Fatos para Master 2) Master Processa Fatos e Compara 2.1) Master Produz e envia Catálogo 3) Node Recebe, Compara e Aplica 4) Node informa estado atual ao Master 5) Sistema reflete catálogo

Processamento do Catálogo 1) Agente Requisita Catálogo 1.1) Agente envia Fatos para Master 2) Master Processa Fatos e Compara 2.1) Master Produz e envia Catálogo 3) Node Recebe, Compara e Aplica 4) Node informa estado atual ao Master 5) Sistema reflete catálogo

Idempotência

Funcionamento Módulos Estáticos Puppet Master Configurações Voláteis e Dados

Funcionamento Módulos Estáticos Puppet Master Configurações Voláteis e Dados

Funcionamento Módulos Estáticos Puppet Master Configurações Voláteis e Dados Camada de Serviços Estruturantes LDAP DNS MONIT SYSLOG

Funcionamento Módulos Estáticos Puppet Master Configurações Voláteis e Dados Camada de Serviços Estruturantes LDAP DNS MONIT SYSLOG Camada de Aplicação JBOSS APACHE MYSQL PGSQL

Funcionamento Módulos Estáticos Puppet Master Configurações Voláteis e Dados Camada de Serviços Estruturantes LDAP DNS MONIT SYSLOG Camada de Aplicação JBOSS APACHE MYSQL PGSQL Puppet Agents

Puppet Master 8140 TCP Client puppetd -t SSL 8139 TCP Server puppetrun Puppet Client Puppet Visão em Rede

Administração IaaS Administrar uma Cloud IaaS é simples

Administração IaaS Administrar uma Cloud IaaS é simples Escalabiliade Automática é fantástica

Administração IaaS Administrar uma Cloud IaaS é simples Escalabiliade Automática é fantástica Criar novos servers conforme demanda é maravilhoso

Administração IaaS Administrar uma Cloud IaaS é simples Escalabilidade Automática é fantástica Criar novos servers conforme demanda é maravilhoso Elasticidade é fundamental

Administração IaaS Administrar uma cloud IaaS não é algo complicado Escalabilidade automática é um recurso fantástico Ter elasticidade é fundamental Criar novos servidores é muito fácil Administrar centenas de nodes? Aqui começa a complicar.

Quando seu ambiente IaaS começar a crescer demais você vai perceber administrá-lo não é tão simples.

Adicionando Novos Nodes NGINX ZABBIX JBOSS POSTGRESQL MEMCACHED

Adicionando Novos Nodes NGINX ZABBIX JBOSS POSTGRESQL MEMCACHED Adicionar um novo node representa N mudanças

Adicionando Novos Nodes NGINX ZABBIX JBOSS POSTGRESQL MEMCACHED sysadmin-utils zabbix-agent ntpconf locales hosts users localmta smtpd vimrc backup-agent apt-repos

Como o Puppet pode ajudar? Automatizando seu ambiente

Como o Puppet pode ajudar? Automatizando seu ambiente Gerando maior produtividade com menor esforço

Como o Puppet pode ajudar? Automatizando seu ambiente Gerando maior produtividade com menor esforço Padronizando seus nodes logo após a instalação

Como o Puppet pode ajudar? Automatizando seu ambiente Gerando maior produtividade com menor esforço Padronizando seus nodes logo após a instalação Modificando configurações de forma controlada

Insira o Puppet na imagem de instalação de seus nodes.

Não tenha medo de realizar atualizações, o puppet faz pra você!

Você pode fazer deploy de sua APP Você pode controlar a versão de sua APP

Arquitetura Cliente/Servidor O agente gera um certificado digital

Arquitetura Cliente/Servidor O agente gera um certificado digital O master precisa autorizar o certificado

Arquitetura Cliente/Servidor O agente gera um certificado digital O master precisa autorizar o certificado Sem autorização o agente não pode se comunicar

Arquitetura Cliente/Servidor O agente gera um certificado digital O master precisa autorizar o certificado Sem autorização o agente não pode se comunicar Toda a comunicação entre agente e master é segura

Fluxo Cliente/Servidor Instalação do node

Fluxo Cliente/Servidor Instalação do node Inicialização do puppet

Fluxo Cliente/Servidor Instalação do node Inicialização do puppet Geração de Certificado

Fluxo Cliente/Servidor Instalação do node Inicialização do puppet Geração de Certificado Envio de Certificado

Fluxo Cliente/Servidor Instalação do node Inicialização do puppet Geração de Certificado Master Assina Certificado Envio de Certificado

Fluxo Cliente/Servidor Instalação do node Inicialização do puppet Geração de Certificado Agente Sincroniza Master Assina Certificado Envio de Certificado

Fluxo Cliente/Servidor Instalação do node Inicialização do puppet Geração de Certificado Agente Sincroniza Master Assina Certificado Envio de Certificado Modalidades de Assinatura de Certificado Assinatura pode ser manual Assinatura pode ser automática por domínio Assinatura pode ser automática em qualquer requisição

Recursos do Puppet Resource Types Parâmetros e Meta-parâmetros Templates e Definições Classes e Módulos Funções e Condicionais

Puppet Resource Types Arquivos e Diretórios Usuários Alias Pacotes Serviços Yum Repos Augeas Hosts SSH Cron O puppet oferece 38 tipos de recursos nativos, e você pode estendê-lo.

Resource Type: Packages Suporte a 23 tipos de provedores de pacotes Faz a abstração do OS Declare se o pacote deve estar presente ou ausente Declare se o pacote deve sempre estar em sua última versão

Resource Type: Services Suporta 11 tipos de sistemas INIT para inicializar serviços Declare se um serviço deve estar sempre rodando Declare se um serviço deve ser carregado no boot Declare se um serviço depende de um pacote ou arquivo

Resource Type: File Especifique permissões e owners Declare arquivos, diretórios e links Controle de mudanças usando até 15 tipos de checksums

Instala, Configura e Inicia # aptitude install apache2 # update-rc.d -f apache2 defaults # cp ~/httpd.conf /etc/apache2/ # invoke-rc.d apache2 start debian-way

Instala, Configura e Inicia package { 'apache2': ensure => present, } service { 'apache2': ensure => running, enable => true, } file { 'httpd.conf': path => /etc/apache2/httpd.conf, source => /home/guto/httpd.conf, }

Instala, Configura e Inicia package { 'apache2': ensure => present, } service { 'apache2': ensure => running, enable => true, } resource type parameter title value file { 'httpd.conf': path => /etc/apache2/httpd.conf, source => /home/guto/httpd.conf, }

Base Class class linux-server { include sysadmin-utils include zabbix-agent include ntpconf include locales include hosts include users include localmta include vimrc include backup-agent include apt-repos }

Declarando um node node servidor.dominio { include linux-server include module } node balancer.dominio { include linux-server include cyrus::backend include postfix::hub include haproxy::mailproxy }

Variáveis e Fatos fatos/facter architecture => amd64 augeasversion => 0.7.2 domain => sprawl facterversion => 1.6.10 fqdn => puppetmaster.hacklab ardwaremodel => x86_64 hostname => puppetmaster interfaces => eth0,eth1,lo ipaddress => 10.0.2.15 ipaddress_eth0 => 10.0.2.15 ipaddress_eth1 => 192.168.56.150 ipaddress_lo => 127.0.0.1 variáveis vimpackage => vim-puppet apacheservice => apache2 ntpconfrhel => ntp.conf.rhel

Condicionais case $operatingsystem { CentOS,RedHat: { $package_name = 'ntp' $service_name = 'ntpd' $conf_file = 'ntp.conf.el' } Debian,Ubuntu: { $package_name = 'ntp' } }... $service_name = 'ntp' $conf_file = 'ntp.conf.debian'

Definições proxy::squid { 'ProxyFilial' : http_port squid_mode squid_hostname cache_mem maximum_object_size_in_memory maximum_object_size memory_replacement_policy cache_replacement_policy cache_dir cache_mgr cache_effective_user cache_effective_group dns_nameservers ips_squid } => '3128', => 'transparent', => 'proxy.ebc', => '2 GB', => '6 MB', => '128 MB', => 'heap GDSF', => 'heap LFUDA', => 'aufs /var/spool/squid 1024 16 256', => 'monitora@dominio.com.br', => 'proxy', => 'proxy', => '127.0.0.1 10.61.12.2 172.16.1.1', => '127.0.0.1 192.168.12.3',

Templates Trecho do template postfix/main.cf myorigin = <%= hostname %> mydestination = $myhostname,..., localhost, <%= fqdn %> Substituição de variáveis por fatos myorigin = servidor.dominio mydestination = $myhostname,..., localhost, servidor.dominio

Orquestrando nodes com Mcollective

Puppet Dashboard

Auto-documentado

Controle das Mudanças (filebucket)

Use VCS para cuidar de seu código

Processo + Padrão + Automação

Benefícios Maior produtividade em menor tempo Diminuição de falhas Maior controle de seu parque Diminuição do tempo gasto em mudanças

Tecnologia trabalhando para você

Puppet & Cloud IaaS Cloud FOSS Cloud Hosts Ganeti

Use API do fornecedor

Construa suas Confs

Seja criativo

Reaproveite Código

GitHub & PuppetForge

Pesquise!

Projeto & Comunidade Site/Blog http://www.puppetlabs.com http://www.puppetlabs.com/blog/ http://puppet-br.org/ Twitter @puppetlabs GitHub http://www.github.com/puppelabs Google Groups Puppet-camp, puppet-users, puppet-users-br, puppet-dev IRC irc.freenode.org #puppet #puppet-br

Perguntas?

Comparando Ferramentas Recursos Puppet Chef CfEngine Pull Yes Yes Yes Push No No No Idempotence Yes Yes Yes Config Language Declarative Ruby Declarative Web UI Yes Yes Yes OS Support *NIX,Windows *NIX,Windows *NIX,Windows License Apache Apache GPL Company Puppetlabs OpsCode CfEngine Cloud Yes Yes Yes