SlideShare a Scribd company logo
1 of 20
Gerenciamento de Configuração
       “DevOps em Ação”

                  Samuel Sampaio - SMk Tecnologia
                   samuel@smktecnologia.com.br
                      github.com/SamukaSMk
O Que é Gerenciamento de
         Configuração ?
●   O que é:
    “Gerenciamento de Configuração é o processo de controle de itens configuraveis e seus
    requisitos, gerenciados e declarados de forma controlada para mudanças, organizando e
    padronizando a infraestrutura de TI de uma forma ágil e automatizada.

●   Como funciona:
                                           Levantar
                                         Dependências

                         Aplicar
                     dependencias no                            Declarar
                        ambiente                              Configurações




                                      Testar Alterações



                                     By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Sistemas de Gerenciamento
  de Configurações Atuais
 ●   Puppet              ●    Chef                             ●    Ansible




(Desenv. em Ruby)     (Desenv. em Ruby)                     (Desenv. Em Python)

Muito Conhecido       Conhecido no mundo                        Não tão famoso
no ambiente e TI e    de TI, porem mais                        quando os outros,
                      complexo de                              porem de simples
Facil de Configurar   configurar/utilizar                          utilização


                         By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Como Compara-los ?
   “Depende das necessidades de Aplicação”




Puppet                                                                                         Chef
                                                              http://www.transpi.com.br/noticias/saipem7000_01.jpg




                                       Ansible
                                                                                                       By: Samuel Sampaio – SMk Technologia
    http://www.motorstown.com/imgs/22100-ducati-1098-superbike-4.html                                     <samuel@smktecnologia.com.br>
                                                                                                            Aka: github.com/SamukaSMk
Arquitetura: Puppet




http://docs.puppetlabs.com/images/Puppet_Star.png




                                                                           http://gutocarvalho.net/wordpress/wp-content/uploads/2012/05/manifest_to_defined_state_split.png

                                                     By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Arquitetura: Chef




  http://wiki.opscode.com/download/attachments/7274878/chef-server-arch.png




                 By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Arquitetura: Ansible




     http://ansible.cc


         By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Principais Itens de Configuração (IC's)
    Para o Inventário de Recursos :

➔   Grupos de ativos/servidores de seu (parque de maquinas)
➔   Aplicações Instaladas x Versionamento de Necessidades
➔   Atributos Especificos de Configurações das Aplicações
➔   Configurações Padrões do ambiente necessárias para um certo proprósito
➔   Execução de Serviços/Processos (Agendado x 24x7)




                             By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Métodos de Definição
                    de Recursos:
     Uso:              Puppet                            Chef                          Ansible

Linguagem:        ●   Própria – DSL            ●   Própria – DSL                 ●   Markup: YAML
                                               ●   Ruby


Declaração das    ●   Manifestos               ●   CookBooks                     ●   PlayBooks
Configurações:


Itens de          ●   Resources                ●   Resources                     ●   Modules
configuração:


Blocos de         ●   Classes                  ● Blocos de                       ●   Tasks
configurações:                                 Cookbooks
                                               ● Blocos Ruby



Pacotes de        ●   Módulos                  ●CookBooks                        ●PlayBooks
Declarações                                    Genéricos                         Genéricos

                                By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Declaração de Inventário e
                           Conjuntos de Recursos :
                       Puppet                                                            Ansible
            ARQUIVO: manifests/site.pp                                              ARQUIVO: hosts
# Declaraçoes que afetam todos hosts                       [test_servers]
node default {                                             web-servers-1
    include classes_dos_manifestos,
}                                                          [apache_servers]
                                                           web-servers-2
# Declaraçoes afetam hosts do grupo test_servers           web-servers-3
node test_servers {                                        10.0.0.10
     include classes_dos_manifestos,
}

# Declaraçoes afetam host especifico web-server-1
node web-servers-1 inherits test_servers {
     include usuarios_smktech
}
      ARQUIVO: manifests/classes/exemplo.pp                    ARQUIVO: playbooks/exemplo-test_servers.yml
                                                           - hosts: test_servers
class usuarios_smktech {                                     tasks:
  # Declaraçoes de Recursos AQUI                              - name: Nome do Recurso
  tipo_de_recurso { 'nome_ou_acao_do_recurso' :                 action:
                     atrubuto_do_recurso => 'valor',                   modulo_do_recurso
                     atrubuto_do_recurso => 'valor',                   atrubuto_do_recurso=valor
                   }                                                   atrubuto_do_recurso='valor'
                                                              - modulo_do_recurso: atrubuto_do_recurso=valor
}                                                            handlers:
                                                              - name: Nome do Handler
                                                              - action: service name=httpd state=restarted

                                            By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Mãos a Massa: Definição de Recursos Básicos
➔   Grupos de ativos/servidores (parque de maquinas) :
           ➔   test_servers:
                       ➔   Web-server-1 (192.168.100.15)

➔   Configurações Padrões necessárias do ambiente (SMK Tecnologia)
            –  Grupo de Usuários:
                       ● Smktech
                                – Gid: 1000
            –  Usuários:
                       ● SamukaSmk
                                – Uid: 1001
                                – Grupo: Smktech
                       ● Lindenbergh
                                – Uid: 1002
                                – Grupo: Smktech


●   Aplicações Instaladas x Versionamento de necessidades e (segurança) :
            –   NTP:
                        ● Versão: 4.2.6p5
                        ● Repo: epel6
            –   OpenSSH:
                        ● Versão: v5.3p1
                        ● Repo: amzn-main

●   Atributos Especificos de Configurações das Aplicações:
            –   Privilégios (Sudoers):
                         ●  Grupo: (smktech) com sudo sem senha
            –   Acesso (SSH):
                         ●  Grupo: (smktech)
            –   HoraCerta (NTP):
                                                                            By: Samuel Sampaio – SMk Technologia
                         ●  Coleta de hora dos servidores brasileiros          <samuel@smktecnologia.com.br>
                                                                                 Aka: github.com/SamukaSMk
Declaração de Recursos Básicos:
                               1. Usuários / Grupo
                      Puppet                                                           Ansible
# CRIA Grupo (smktech)                                    ### Exemplo de uso do módulo, sem declarar action:
group { 'smktech' :
     ensure => 'present',                                 # CRIA Grupo (smktech) no linux
     gid       => '1000',                                 - group:
     name      => 'smktech',                                   name=smktech
}                                                              gid=1000
                                                               state=present
# CRIA Usuario (samukasmk), no grupo (smktech)
user { 'samukasmk' :                                      ### Exemplo de uso dos módulos, declararando na action
          ensure     => present,                          - name: CRIA Usuario (samukasmk), no grupo (smktech)
          uid         => '1001',                            action:
          gid         => 'smktech',                             user
          shell       => '/bin/bash',                           name=samukasmk
          home        => '/home/samukasmk',                     group=smktech
          managehome => true,                                   shell=/bin/bash
}                                                               uid=1001
                                                                state=present
# CRIA Usuario (lindenberg), no grupo (smktech)
user { 'lindenbergh' :                                    - name: CRIA Usuario (lindenbergh), no grupo (smktech)
  ensure        => present,                                 action:
  uid           => '1002',                                      user
  gid           => 'smktech',                                   name=lindenbergh
  shell         => '/bin/bash',                                 group=smktech
  home          => '/home/adminzero',                           shell=/bin/bash
  managehome => true,                                           uid=1002
}                                                               state=present
                                           By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Declaração de Recursos Básicos:
            2. Atribuiçoes de Chaves SSH
                Puppet                                                     Ansible

# ATRUIBUI Chave ao usuário (samukasmk) - name: ATRIBUI Chave ao usuário
ssh_authorized_key { 'samukasmk.pub' :   (samukasmk)
   ensure => 'present',                   action:
   user   => 'samukasmk',
   key    => 'ssh-rsa AAAAs8ds879d7...',
                                              authorized_key
}                                             user=samukasmk
                                                      state=present
# ATRUIBUI Chave ao usuário (lindenbergh)             key=”ssh-rsa AAAAs8ds879d7...”
ssh_authorized_key { 'lindenbergh.pub' :
   ensure => 'present',                   - name: ATRIBUI Chave ao usuário
   user   => 'lindenbergh',               (lindenbergh)
   key    => 'ssh-rsa AAAAdud7h8d7...',     action:
 }                                              authorized_key
                                                      user=lindenbergh
                                                      state=present
                                                      key=”ssh-rsa AAAAdud7h8d7...”



                               By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Declaração de Recursos Básicos:
                      3. Privilégios (Sudoers)
                                                  Puppet

# Se NÃO (Encontrar o grupo [smktech] liberado)
# LIBERA o grupo [smktech] com permissão de 'sudo su'.

exec { ”/bin/echo '%smktech ALL=(ALL) NOPASSWD : ALL' >> /etc/sudoers” :
  unless => ”grep '^%smktech.*NOPASSWD' /etc/sudoers > /dev/null 2>&1”,
  path     => ”/usr/bin:/usr/sbin:/bin”,
}


                                                 Ansible

- name: LIBERA o grupo (smktech) com permissão de 'sudo su', por substituição
  action:
     “ lineinfile
      dest=/etc/sudoers
      regexp=''
      line='%smktech ALL=(ALL) NOPASSWD : ALL'
      backup=yes
      insertafter=EOF
      state=present “



                                         By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Declaração de Recursos Básicos:
                              4. HoraCerta (NTP)
                      Puppet                                                            Ansible
# INSTALA pacote (ntp)                                    - name: INSTALA pacote (ntp)
package { 'ntp' :                                           action:
     ensure => 'installed',                                     yum
}                                                               name=ntp
                                                                state=present
# HABILITA o serviço (NTPd)
 service { 'ntpd' :                                       - name: CRIA o arquivo (/etc/ntp.conf) a partir do
          ensure       => 'running',                      template
          enable       => true,                             action:
          require      => Package["ntp"],                       template
 }                                                              src=base_linux/ntpd/templates/ntp.conf.j2
                                                                dest=/etc/ntp.conf
# CRIA o arquivo (/etc/ntp.conf) a partir do template           owner=root
file { '/etc/ntp.conf' :                                        group=root
  source => 'puppet:///files/base_linux/ntp/ntp.conf',          mode=0644
  ensure => present,
  owner => 'root',                                        - name: HABILITA o serviço (NTPd) e o REINICIA
  group => 'root',                                        para efetivar mudancas
  mode => 644,                                              action:
  notify => Service["ntpd"],                                    service
}                                                               name=ntpd
                                                                enabled=yes
                                                                state=restarted


                                            By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Aplicação de Declarações:
                                                       Puppet
# Uma Vez Configurado os manifestos e testados:
# 1. Certifique-se que o serviço puppet (client/node) esta rodando
 service puppet restart
# 2. Aguarde por 30 min para as declarações serem aplicadas.

# Forçando a aplicação das declarações pelo (server/master) {para teste dos manifestos}
 puppet apply --verbose --debug /etc/puppet/manifests/site.pp

# Declaração na linha de comando (no quente) [ad-hoc]:
 puppet resource user dave ensure=present shell="/bin/zsh" home="/home/dave" managehome=true


                                                      Ansible
# Exportando a variavel do arquivo de inventário
export ANSIBLE_HOSTS=./hosts

# Carregando ssh-agent e chave
ssh-agent $BASH
ssh-add /path/para/chave_ssh

# Uma Vez Configurado o playbook:
ansible-playbook -u usuario --sudo test_servers-playbook.yml

# Declaração na linha de comando (no quente) [ad-hoc]:
ansible -u usuario –sudo grupo_de_servidores -m user -a “name=dave state=present shell=/bin/zsh”



                                               By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Controle de Versões:
                                  Puppet
cd /etc/puppet

git add .
git commit -m “Alteração XPTO do manifesto BLAH”



                                  Ansible
cd /etc/ansible

git add .
git commit -m “Alteração XPTO do playbook BLAH.yml”




                          By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Próximos Passos Para
             Auto-Automação:
                                          Puppet
# Módulo não-nativo do puppet

puppet help mode_aws

                                          Ansible
# Módulos Nativos do Ansible

ansible -u user --sudo -m add_host -a “ hostname=${ip_from_ec2create}
groups=just_created foo=42”

ansible -u user --sudo -m ec2 -a “keypair=admin instance_type=m1.large image=emi-
40603AD1 wait=true group=webserver count=3 group=webservers”




                                 By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Perguntas?
                                        Muito Obrigado!

                       Por: Samuel Sampaio
                   <samukasmk@gmail.com>




  By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
Referências Eletrônicas:
●   Puppet:
               –   http://docs.puppetlabs.com
               –   http://gutocarvalho.net/
               –   http://www.puppetcookbook.com/
               –   http://www.slideshare.net/jefesrodrigues/puppet-torne-seu-datacenter-gil
               –   http://puppet-br.org/
               –   http://www.vivaolinux.com.br/artigo/Instalacao-e-Configuracao-do-Puppet
               –   https://padrao.sarava.org/puppet/
               –
●   Ansible:
               –   http://ansible.cc/docs/
               –   http://www.youtube.com/watch?v=up3ofvQNm8c
               –   http://groups.google.com/group/ansible-project
               –   https://github.com/ansible/ansible/
               –   http://webchat.freenode.net/?channels=ansible
               –   http://www.ansibleworks.com/
               –   http://lesterwade.wordpress.com/2013/02/05/ansible-playbook-to-deploy-a-workload-using-the-ec
               –   http://michaeldehaan.net/
               –   http://jpmens.net/2012/09/19/on-the-creation-of-an-ansible-booklet/
               –   http://www.slideshare.net/lorinh/vagrant-ansible-and-openstack-on-your-laptop
               –   http://www.cybera.ca/tech-radar/first-look-ansible
●   Chef:
               –   http://wiki.opscode.com/display/chef/



                                             By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk

More Related Content

What's hot

Infraestrutura ágil com Puppet - CISL
Infraestrutura ágil com Puppet - CISLInfraestrutura ágil com Puppet - CISL
Infraestrutura ágil com Puppet - CISLJose Augusto Carvalho
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Jose Augusto Carvalho
 
Infraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveInfraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveJose Augusto Carvalho
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilJose Augusto Carvalho
 
Automação de Ambientes com Puppet
Automação de Ambientes com Puppet Automação de Ambientes com Puppet
Automação de Ambientes com Puppet 4LinuxCursos
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...tdc-globalcode
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#Leandro Silva
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTelliando dias
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!Iuri Andreazza
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e HudsonRodrigo Branas
 
Opennebula Introdução
Opennebula IntroduçãoOpennebula Introdução
Opennebula IntroduçãoLuís Eduardo
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosEduardo Legatti
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 

What's hot (20)

Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
 
Infraestrutura ágil com Puppet - CISL
Infraestrutura ágil com Puppet - CISLInfraestrutura ágil com Puppet - CISL
Infraestrutura ágil com Puppet - CISL
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)
 
Infraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveInfraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e Mcollective
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágil
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Automação de Ambientes com Puppet
Automação de Ambientes com Puppet Automação de Ambientes com Puppet
Automação de Ambientes com Puppet
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e Hudson
 
Opennebula Introdução
Opennebula IntroduçãoOpennebula Introdução
Opennebula Introdução
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - Nagios
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 

Viewers also liked

10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 
Claire Vyvyan, Embracing the Hybrid Cloud
Claire Vyvyan, Embracing the Hybrid CloudClaire Vyvyan, Embracing the Hybrid Cloud
Claire Vyvyan, Embracing the Hybrid CloudJuergen Domnik
 
Ambiente de desenvolvimento unificado com vagrant
Ambiente de desenvolvimento unificado com vagrantAmbiente de desenvolvimento unificado com vagrant
Ambiente de desenvolvimento unificado com vagrantFrancisco André
 
Information Systems
Information SystemsInformation Systems
Information SystemsMichel Alves
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Rogerio Prado de Jesus
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre DockerMundo Docker
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...Bruno Luiz Pereira da Silva
 
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...Bruno Luiz Pereira da Silva
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develJose Augusto Carvalho
 
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...tdc-globalcode
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPSamuel Sampaio
 
Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Rildo (@rildosan) Santos
 

Viewers also liked (16)

10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 
Claire Vyvyan, Embracing the Hybrid Cloud
Claire Vyvyan, Embracing the Hybrid CloudClaire Vyvyan, Embracing the Hybrid Cloud
Claire Vyvyan, Embracing the Hybrid Cloud
 
Ambiente de desenvolvimento unificado com vagrant
Ambiente de desenvolvimento unificado com vagrantAmbiente de desenvolvimento unificado com vagrant
Ambiente de desenvolvimento unificado com vagrant
 
Information Systems
Information SystemsInformation Systems
Information Systems
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case
 
Análise de Negócio na Perspectiva de BI
Análise de Negócio na Perspectiva de BIAnálise de Negócio na Perspectiva de BI
Análise de Negócio na Perspectiva de BI
 
Resumo do Guia BABOK® 3
Resumo do Guia BABOK®  3 Resumo do Guia BABOK®  3
Resumo do Guia BABOK® 3
 

Similar to Gerenciamento de Configuração

Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Thiago Rondon
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no KubernetesKelvin Silva
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoGuilhermeJorgeAragod
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
Utilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEBUtilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEBFreedom DayMS
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSFabrício Campos
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Eduardo de Lucena Falcão
 
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...tdc-globalcode
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 
Docker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalarDocker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalargustavomtborges
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosElias Nogueira
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 
Conhecendo os Padrões De Projetos
Conhecendo os Padrões De ProjetosConhecendo os Padrões De Projetos
Conhecendo os Padrões De Projetoscejug
 

Similar to Gerenciamento de Configuração (20)

Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Cloudformation
CloudformationCloudformation
Cloudformation
 
Grails
GrailsGrails
Grails
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Utilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEBUtilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEB
 
J Meter
J MeterJ Meter
J Meter
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
 
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Docker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalarDocker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalar
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
Apresentacao_Puppet
Apresentacao_PuppetApresentacao_Puppet
Apresentacao_Puppet
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Conhecendo os Padrões De Projetos
Conhecendo os Padrões De ProjetosConhecendo os Padrões De Projetos
Conhecendo os Padrões De Projetos
 

Gerenciamento de Configuração

  • 1. Gerenciamento de Configuração “DevOps em Ação” Samuel Sampaio - SMk Tecnologia samuel@smktecnologia.com.br github.com/SamukaSMk
  • 2. O Que é Gerenciamento de Configuração ? ● O que é: “Gerenciamento de Configuração é o processo de controle de itens configuraveis e seus requisitos, gerenciados e declarados de forma controlada para mudanças, organizando e padronizando a infraestrutura de TI de uma forma ágil e automatizada. ● Como funciona: Levantar Dependências Aplicar dependencias no Declarar ambiente Configurações Testar Alterações By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 3. Sistemas de Gerenciamento de Configurações Atuais ● Puppet ● Chef ● Ansible (Desenv. em Ruby) (Desenv. em Ruby) (Desenv. Em Python) Muito Conhecido Conhecido no mundo Não tão famoso no ambiente e TI e de TI, porem mais quando os outros, complexo de porem de simples Facil de Configurar configurar/utilizar utilização By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 4. Como Compara-los ? “Depende das necessidades de Aplicação” Puppet Chef http://www.transpi.com.br/noticias/saipem7000_01.jpg Ansible By: Samuel Sampaio – SMk Technologia http://www.motorstown.com/imgs/22100-ducati-1098-superbike-4.html <samuel@smktecnologia.com.br> Aka: github.com/SamukaSMk
  • 5. Arquitetura: Puppet http://docs.puppetlabs.com/images/Puppet_Star.png http://gutocarvalho.net/wordpress/wp-content/uploads/2012/05/manifest_to_defined_state_split.png By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 6. Arquitetura: Chef http://wiki.opscode.com/download/attachments/7274878/chef-server-arch.png By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 7. Arquitetura: Ansible http://ansible.cc By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 8. Principais Itens de Configuração (IC's) Para o Inventário de Recursos : ➔ Grupos de ativos/servidores de seu (parque de maquinas) ➔ Aplicações Instaladas x Versionamento de Necessidades ➔ Atributos Especificos de Configurações das Aplicações ➔ Configurações Padrões do ambiente necessárias para um certo proprósito ➔ Execução de Serviços/Processos (Agendado x 24x7) By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 9. Métodos de Definição de Recursos: Uso: Puppet Chef Ansible Linguagem: ● Própria – DSL ● Própria – DSL ● Markup: YAML ● Ruby Declaração das ● Manifestos ● CookBooks ● PlayBooks Configurações: Itens de ● Resources ● Resources ● Modules configuração: Blocos de ● Classes ● Blocos de ● Tasks configurações: Cookbooks ● Blocos Ruby Pacotes de ● Módulos ●CookBooks ●PlayBooks Declarações Genéricos Genéricos By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 10. Declaração de Inventário e Conjuntos de Recursos : Puppet Ansible ARQUIVO: manifests/site.pp ARQUIVO: hosts # Declaraçoes que afetam todos hosts [test_servers] node default { web-servers-1 include classes_dos_manifestos, } [apache_servers] web-servers-2 # Declaraçoes afetam hosts do grupo test_servers web-servers-3 node test_servers { 10.0.0.10 include classes_dos_manifestos, } # Declaraçoes afetam host especifico web-server-1 node web-servers-1 inherits test_servers { include usuarios_smktech } ARQUIVO: manifests/classes/exemplo.pp ARQUIVO: playbooks/exemplo-test_servers.yml - hosts: test_servers class usuarios_smktech { tasks: # Declaraçoes de Recursos AQUI - name: Nome do Recurso tipo_de_recurso { 'nome_ou_acao_do_recurso' : action: atrubuto_do_recurso => 'valor', modulo_do_recurso atrubuto_do_recurso => 'valor', atrubuto_do_recurso=valor } atrubuto_do_recurso='valor' - modulo_do_recurso: atrubuto_do_recurso=valor } handlers: - name: Nome do Handler - action: service name=httpd state=restarted By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 11. Mãos a Massa: Definição de Recursos Básicos ➔ Grupos de ativos/servidores (parque de maquinas) : ➔ test_servers: ➔ Web-server-1 (192.168.100.15) ➔ Configurações Padrões necessárias do ambiente (SMK Tecnologia) – Grupo de Usuários: ● Smktech – Gid: 1000 – Usuários: ● SamukaSmk – Uid: 1001 – Grupo: Smktech ● Lindenbergh – Uid: 1002 – Grupo: Smktech ● Aplicações Instaladas x Versionamento de necessidades e (segurança) : – NTP: ● Versão: 4.2.6p5 ● Repo: epel6 – OpenSSH: ● Versão: v5.3p1 ● Repo: amzn-main ● Atributos Especificos de Configurações das Aplicações: – Privilégios (Sudoers): ● Grupo: (smktech) com sudo sem senha – Acesso (SSH): ● Grupo: (smktech) – HoraCerta (NTP): By: Samuel Sampaio – SMk Technologia ● Coleta de hora dos servidores brasileiros <samuel@smktecnologia.com.br> Aka: github.com/SamukaSMk
  • 12. Declaração de Recursos Básicos: 1. Usuários / Grupo Puppet Ansible # CRIA Grupo (smktech) ### Exemplo de uso do módulo, sem declarar action: group { 'smktech' : ensure => 'present', # CRIA Grupo (smktech) no linux gid => '1000', - group: name => 'smktech', name=smktech } gid=1000 state=present # CRIA Usuario (samukasmk), no grupo (smktech) user { 'samukasmk' : ### Exemplo de uso dos módulos, declararando na action ensure => present, - name: CRIA Usuario (samukasmk), no grupo (smktech) uid => '1001', action: gid => 'smktech', user shell => '/bin/bash', name=samukasmk home => '/home/samukasmk', group=smktech managehome => true, shell=/bin/bash } uid=1001 state=present # CRIA Usuario (lindenberg), no grupo (smktech) user { 'lindenbergh' : - name: CRIA Usuario (lindenbergh), no grupo (smktech) ensure => present, action: uid => '1002', user gid => 'smktech', name=lindenbergh shell => '/bin/bash', group=smktech home => '/home/adminzero', shell=/bin/bash managehome => true, uid=1002 } state=present By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 13. Declaração de Recursos Básicos: 2. Atribuiçoes de Chaves SSH Puppet Ansible # ATRUIBUI Chave ao usuário (samukasmk) - name: ATRIBUI Chave ao usuário ssh_authorized_key { 'samukasmk.pub' : (samukasmk) ensure => 'present', action: user => 'samukasmk', key => 'ssh-rsa AAAAs8ds879d7...', authorized_key } user=samukasmk state=present # ATRUIBUI Chave ao usuário (lindenbergh) key=”ssh-rsa AAAAs8ds879d7...” ssh_authorized_key { 'lindenbergh.pub' : ensure => 'present', - name: ATRIBUI Chave ao usuário user => 'lindenbergh', (lindenbergh) key => 'ssh-rsa AAAAdud7h8d7...', action: } authorized_key user=lindenbergh state=present key=”ssh-rsa AAAAdud7h8d7...” By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 14. Declaração de Recursos Básicos: 3. Privilégios (Sudoers) Puppet # Se NÃO (Encontrar o grupo [smktech] liberado) # LIBERA o grupo [smktech] com permissão de 'sudo su'. exec { ”/bin/echo '%smktech ALL=(ALL) NOPASSWD : ALL' >> /etc/sudoers” : unless => ”grep '^%smktech.*NOPASSWD' /etc/sudoers > /dev/null 2>&1”, path => ”/usr/bin:/usr/sbin:/bin”, } Ansible - name: LIBERA o grupo (smktech) com permissão de 'sudo su', por substituição action: “ lineinfile dest=/etc/sudoers regexp='' line='%smktech ALL=(ALL) NOPASSWD : ALL' backup=yes insertafter=EOF state=present “ By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 15. Declaração de Recursos Básicos: 4. HoraCerta (NTP) Puppet Ansible # INSTALA pacote (ntp) - name: INSTALA pacote (ntp) package { 'ntp' : action: ensure => 'installed', yum } name=ntp state=present # HABILITA o serviço (NTPd) service { 'ntpd' : - name: CRIA o arquivo (/etc/ntp.conf) a partir do ensure => 'running', template enable => true, action: require => Package["ntp"], template } src=base_linux/ntpd/templates/ntp.conf.j2 dest=/etc/ntp.conf # CRIA o arquivo (/etc/ntp.conf) a partir do template owner=root file { '/etc/ntp.conf' : group=root source => 'puppet:///files/base_linux/ntp/ntp.conf', mode=0644 ensure => present, owner => 'root', - name: HABILITA o serviço (NTPd) e o REINICIA group => 'root', para efetivar mudancas mode => 644, action: notify => Service["ntpd"], service } name=ntpd enabled=yes state=restarted By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 16. Aplicação de Declarações: Puppet # Uma Vez Configurado os manifestos e testados: # 1. Certifique-se que o serviço puppet (client/node) esta rodando service puppet restart # 2. Aguarde por 30 min para as declarações serem aplicadas. # Forçando a aplicação das declarações pelo (server/master) {para teste dos manifestos} puppet apply --verbose --debug /etc/puppet/manifests/site.pp # Declaração na linha de comando (no quente) [ad-hoc]: puppet resource user dave ensure=present shell="/bin/zsh" home="/home/dave" managehome=true Ansible # Exportando a variavel do arquivo de inventário export ANSIBLE_HOSTS=./hosts # Carregando ssh-agent e chave ssh-agent $BASH ssh-add /path/para/chave_ssh # Uma Vez Configurado o playbook: ansible-playbook -u usuario --sudo test_servers-playbook.yml # Declaração na linha de comando (no quente) [ad-hoc]: ansible -u usuario –sudo grupo_de_servidores -m user -a “name=dave state=present shell=/bin/zsh” By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 17. Controle de Versões: Puppet cd /etc/puppet git add . git commit -m “Alteração XPTO do manifesto BLAH” Ansible cd /etc/ansible git add . git commit -m “Alteração XPTO do playbook BLAH.yml” By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 18. Próximos Passos Para Auto-Automação: Puppet # Módulo não-nativo do puppet puppet help mode_aws Ansible # Módulos Nativos do Ansible ansible -u user --sudo -m add_host -a “ hostname=${ip_from_ec2create} groups=just_created foo=42” ansible -u user --sudo -m ec2 -a “keypair=admin instance_type=m1.large image=emi- 40603AD1 wait=true group=webserver count=3 group=webservers” By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 19. Perguntas? Muito Obrigado! Por: Samuel Sampaio <samukasmk@gmail.com> By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk
  • 20. Referências Eletrônicas: ● Puppet: – http://docs.puppetlabs.com – http://gutocarvalho.net/ – http://www.puppetcookbook.com/ – http://www.slideshare.net/jefesrodrigues/puppet-torne-seu-datacenter-gil – http://puppet-br.org/ – http://www.vivaolinux.com.br/artigo/Instalacao-e-Configuracao-do-Puppet – https://padrao.sarava.org/puppet/ – ● Ansible: – http://ansible.cc/docs/ – http://www.youtube.com/watch?v=up3ofvQNm8c – http://groups.google.com/group/ansible-project – https://github.com/ansible/ansible/ – http://webchat.freenode.net/?channels=ansible – http://www.ansibleworks.com/ – http://lesterwade.wordpress.com/2013/02/05/ansible-playbook-to-deploy-a-workload-using-the-ec – http://michaeldehaan.net/ – http://jpmens.net/2012/09/19/on-the-creation-of-an-ansible-booklet/ – http://www.slideshare.net/lorinh/vagrant-ansible-and-openstack-on-your-laptop – http://www.cybera.ca/tech-radar/first-look-ansible ● Chef: – http://wiki.opscode.com/display/chef/ By: Samuel Sampaio – SMk Technologia <samuel@smktecnologia.com.br> aka: github.com/SamukaSMk