SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Introdução ao Chef Ops
@wevtimoteo
Lightning Talks - Tech Talk
O que é provisionamento?
• Em linhas curtas: disponibilizar ou "prover" algo.
Exemplo de provisionamento de um web server: !
Instalar e configurar nginx, assim como todas as
dependências que ele possa ter, tornando-o
pronto para uso.
O que é Chef?
• Uma ferramenta de provisionamento, desenvolvida
para "programar"/automatizar a infra.
• Sendo assim é possível preparar uma máquina em
questão de segundos.
• DevOps
Idempotência
• É considerado idempotente se o resultado de uma
ação realizada com sucesso é independente do
número de vezes que é executada.
• No caso do `chef` seria: não importa quantas vezes
o chef-client rode, o resultado será o mesmo.
Node
• São máquinas que estão sendo gerenciadas pelo
Chef, seja no chef-solo (receita local) ou no chef-
server.
Run-List
• É a lista de cookbooks que o node está
configurado para rodar
Role
• Permite criar um grupo de cookbooks facilitando a
configuração da Run-List
Chef-server
• Através de uma interface web, permite
gerenciamento dos nodes, configuração da run-
list de cada node ou role.
• Também atua como repositório de receitas para o
chef-client.!
• Possui um sistema de gerenciamento de usuários
para gerir toda a infra automatizada.
Chef Development Kit
• Comando chef na linha de comando
• Berkshelf (como se fosse um Gemfile, porém de receitas)
• Framework de testes: Test Kitchen
• ChefSpec, ferramenta de testes unitários para cookbooks
• Foodcritic, uma ferramenta de linting e análise de código
para cookbooks.
• Chef Client, Knife e Chef Zero.
Criando um cookbook
$ knife cookbook create COOKBOOK_NAME (options)
• cookbook/attributes
• cookbook/CHANGELOG.md
• cookbook/definitions
• cookbook/files/default
• cookbook/libraries
• cookbook/metadata.rb
• cookbook/providers
• cookbook/README.md (or .rdoc)
• cookbook/recipes/default.rb
• cookbook/resources
• cookbook/templates/default
Testando uma receita
• Através do Vagrant:
Vagrant.configure("2") do |config|!
config.vm.box = "precise64"!
config.vm.provision :chef_solo do |chef|!
chef.cookbooks_path = "~/src/toolkit-chef/cookbooks"!
chef.add_recipe("toolkit")!
end!
config.vm.network :forwarded_port, guest: 80, host: 11180!
end
Enviando um cookbook para
o Chef-Server
$ knife upload environments/production.json
$ knife upload cookbooks_dir
.chef/knife.rb!
!
validation_key "#{current_dir}/mycompany.pem"!
chef_server_url "https://mychef-server.com"
Adicionando uma máquina
ao Chef-server
$ knife bootstrap yourserveraddress -x username -P password --sudo
Referências
• Learn Chef - http://learn.chef.io/
• Chef Style DevOps Kungfu - ChefConf 2015 -
https://www.youtube.com/watch?v=_DEToXsgrPc
• DevOps Kungfu - https://github.com/chef/devops-
kungfu

Contenu connexe

Tendances

Palestra Torquebox - JUDCON SP 2013
Palestra Torquebox - JUDCON SP 2013Palestra Torquebox - JUDCON SP 2013
Palestra Torquebox - JUDCON SP 2013
Rubem Azenha
 
Metodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserverMetodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserver
GeneXus
 

Tendances (14)

DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
Cucumber
CucumberCucumber
Cucumber
 
Introdução, instalação e configuração do SonarQube
Introdução, instalação e configuração do SonarQubeIntrodução, instalação e configuração do SonarQube
Introdução, instalação e configuração do SonarQube
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
 
Rails nas Nuvens
Rails nas NuvensRails nas Nuvens
Rails nas Nuvens
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
 
Palestra Torquebox - JUDCON SP 2013
Palestra Torquebox - JUDCON SP 2013Palestra Torquebox - JUDCON SP 2013
Palestra Torquebox - JUDCON SP 2013
 
A busca pelo deploy continuo
A busca pelo deploy continuoA busca pelo deploy continuo
A busca pelo deploy continuo
 
Apresentação Bazaar
Apresentação BazaarApresentação Bazaar
Apresentação Bazaar
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
 
Integracao Continua com CruiseControl
Integracao Continua com CruiseControlIntegracao Continua com CruiseControl
Integracao Continua com CruiseControl
 
Metodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserverMetodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserver
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 

En vedette

An Introduction to DevOps with Chef
An Introduction to DevOps with ChefAn Introduction to DevOps with Chef
An Introduction to DevOps with Chef
Julian Dunn
 

En vedette (8)

Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
 
DevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerDevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e Docker
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
 
An Introduction to DevOps with Chef
An Introduction to DevOps with ChefAn Introduction to DevOps with Chef
An Introduction to DevOps with Chef
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and Kubernetes
 
DevOps
DevOpsDevOps
DevOps
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
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
 

Similaire à Introdução ao Chef Ops

CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
Emerson Soares
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
Sérgio Vilar
 

Similaire à Introdução ao Chef Ops (20)

Infrastructure Testing
Infrastructure TestingInfrastructure Testing
Infrastructure Testing
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Cake PHP
Cake PHPCake PHP
Cake PHP
 
Apresentando o CakePHP
Apresentando o CakePHPApresentando o CakePHP
Apresentando o CakePHP
 
From Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiFrom Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika Heidi
 
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...
 
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% ...
 
Open Conference System
Open Conference SystemOpen Conference System
Open Conference System
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Evoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayEvoluindo bancos de dados com flyway
Evoluindo bancos de dados com flyway
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
APIs do Jeito Certo
APIs do Jeito CertoAPIs do Jeito Certo
APIs do Jeito Certo
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 

Plus de Weverton Timoteo

Plus de Weverton Timoteo (18)

[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
 
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?
[Devs Cansados Evento 2020] Queria saber a qualidade do meu código: o que olho?
 
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
 
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoRuby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
 
[Gophercon 2019] Analysing code quality with linters and static analysis
[Gophercon 2019] Analysing code quality with linters and static analysis[Gophercon 2019] Analysing code quality with linters and static analysis
[Gophercon 2019] Analysing code quality with linters and static analysis
 
Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir
Elixir Brasil 2019 - Quality:  A Panacéia para seu código ElixirElixir Brasil 2019 - Quality:  A Panacéia para seu código Elixir
Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir
 
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)
Floripa Gophers - Analysing Code Quality (Linters and Static Analysis)
 
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
 
How to use Ruby code inside Elixir
How to use Ruby code inside ElixirHow to use Ruby code inside Elixir
How to use Ruby code inside Elixir
 
17º RubyFloripa - Coding Dojo
17º RubyFloripa - Coding Dojo17º RubyFloripa - Coding Dojo
17º RubyFloripa - Coding Dojo
 
How to draw a map - What is projections?
How to draw a map - What is projections?How to draw a map - What is projections?
How to draw a map - What is projections?
 
Gerenciando dependências front-end no Rails
Gerenciando dependências front-end no RailsGerenciando dependências front-end no Rails
Gerenciando dependências front-end no Rails
 
Definindo a quantidade de workers para sua app
Definindo a quantidade de workers para sua appDefinindo a quantidade de workers para sua app
Definindo a quantidade de workers para sua app
 
Brincando com FFI no Ruby
Brincando com FFI no RubyBrincando com FFI no Ruby
Brincando com FFI no Ruby
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
 
Swift language - A fast overview of some features
Swift language - A fast overview of some featuresSwift language - A fast overview of some features
Swift language - A fast overview of some features
 
Vim Registers
Vim RegistersVim Registers
Vim Registers
 
Developing an Universal iOS app
Developing an Universal iOS appDeveloping an Universal iOS app
Developing an Universal iOS app
 

Dernier

Dernier (6)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Introdução ao Chef Ops

  • 1. Introdução ao Chef Ops @wevtimoteo Lightning Talks - Tech Talk
  • 2. O que é provisionamento? • Em linhas curtas: disponibilizar ou "prover" algo. Exemplo de provisionamento de um web server: ! Instalar e configurar nginx, assim como todas as dependências que ele possa ter, tornando-o pronto para uso.
  • 3. O que é Chef? • Uma ferramenta de provisionamento, desenvolvida para "programar"/automatizar a infra. • Sendo assim é possível preparar uma máquina em questão de segundos. • DevOps
  • 4. Idempotência • É considerado idempotente se o resultado de uma ação realizada com sucesso é independente do número de vezes que é executada. • No caso do `chef` seria: não importa quantas vezes o chef-client rode, o resultado será o mesmo.
  • 5. Node • São máquinas que estão sendo gerenciadas pelo Chef, seja no chef-solo (receita local) ou no chef- server.
  • 6. Run-List • É a lista de cookbooks que o node está configurado para rodar
  • 7. Role • Permite criar um grupo de cookbooks facilitando a configuração da Run-List
  • 8. Chef-server • Através de uma interface web, permite gerenciamento dos nodes, configuração da run- list de cada node ou role. • Também atua como repositório de receitas para o chef-client.! • Possui um sistema de gerenciamento de usuários para gerir toda a infra automatizada.
  • 9. Chef Development Kit • Comando chef na linha de comando • Berkshelf (como se fosse um Gemfile, porém de receitas) • Framework de testes: Test Kitchen • ChefSpec, ferramenta de testes unitários para cookbooks • Foodcritic, uma ferramenta de linting e análise de código para cookbooks. • Chef Client, Knife e Chef Zero.
  • 10. Criando um cookbook $ knife cookbook create COOKBOOK_NAME (options) • cookbook/attributes • cookbook/CHANGELOG.md • cookbook/definitions • cookbook/files/default • cookbook/libraries • cookbook/metadata.rb • cookbook/providers • cookbook/README.md (or .rdoc) • cookbook/recipes/default.rb • cookbook/resources • cookbook/templates/default
  • 11. Testando uma receita • Através do Vagrant: Vagrant.configure("2") do |config|! config.vm.box = "precise64"! config.vm.provision :chef_solo do |chef|! chef.cookbooks_path = "~/src/toolkit-chef/cookbooks"! chef.add_recipe("toolkit")! end! config.vm.network :forwarded_port, guest: 80, host: 11180! end
  • 12. Enviando um cookbook para o Chef-Server $ knife upload environments/production.json $ knife upload cookbooks_dir .chef/knife.rb! ! validation_key "#{current_dir}/mycompany.pem"! chef_server_url "https://mychef-server.com"
  • 13. Adicionando uma máquina ao Chef-server $ knife bootstrap yourserveraddress -x username -P password --sudo
  • 14. Referências • Learn Chef - http://learn.chef.io/ • Chef Style DevOps Kungfu - ChefConf 2015 - https://www.youtube.com/watch?v=_DEToXsgrPc • DevOps Kungfu - https://github.com/chef/devops- kungfu