SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
Como provisionador
André “Ramoni” Guimarães
https://ramoni.com.br
O que é o Foreman ?
“A gordura sai, o sabor fica !”
- https://theforeman.org
“Foreman is a complete lifecycle
management tool for physical and virtual
servers. We give system administrators the
power to easily automate repetitive tasks,
quickly deploy applications, and proactively
manage servers, on-premise or in the
cloud.”
- https://theforeman.org
Provisioning tool:
“Bare metal, Amazon EC2, Google
Compute Engine, Azure, OpenStack,
Libvirt, oVirt, VMware, and many other
providers allow you to manage a hybrid
cloud through Foreman.”
- https://theforeman.org
Configuration management:
“A complete configuration management
solution including an ENC for Puppet
and Salt, built-in support for
parameterized classes and hierarchical
parameter storage.”
Dashboard
Host
Cockpit - terminal
Agenda
Foreman como Provisionador
Provisiona em:
• Bare metal
• Amazon AWS
• Rackspace
• Google
• OpenStack
• VMware
• Libvirt / oVirt
}
Via API (imagem)
}
Via API (imagem) ou Bare Metal
BOOTP + TFTP + PXELinux + DHCP + NetInstall
Cenário misto
Provisionamento centralizado.
Bare Metal: Firewalls e hosts da sua cloud interna.
Instâncias na sua cloud interna, no seu VMware e na
AWS.
As roles serão aplicadas da mesma forma.
O que muda entre subir sua aplicação no VMware, AWS
ou OpenStack é uma opção no menu.
Sobre imagens…
Problemas de Imagens…
Gerenciar usuários no sistema da imagem.
Manter uma imagem para cada App/cloud.
NÃO evolua as imagens partindo das próprias imagens.
Sua aplicação tem que estar definida na sua
ferramenta de configuração, não na imagem.
- Daniel.
“Mas é muito mais rápido subir
aplicações usando imagens
prontas do que ter que instalar
e configurar coisas nas VMs !”
- Packer.
“Sim. Por isso, Packer!”
Ciclo de release com Packer
1. Parta de uma imagem nova e zerada do SO a ser utilizado
2. Aplique suas baselines (updates, pacotes, tunnings etc)
3. Pode gerar uma imagem intermediária
4. Aplique as classes/roles da sua aplicação
5. Gere uma nova imagem com Packer para cada cloud que ela vá
ser utilizada (vmware, aws, openstack etc)
6. Faça a imagem passar pelo seu ciclo de deploy (dev/homol/prod)
7. Repita o ciclo para cada nova versão da aplicação
Provisionando na
nuvem…
Exemplo: Foreman+AWS
Adicionando compute resource
Adicionando compute resource
Adicionando uma imagem
Criando novo host
Criando novo host
Criando novo host
- Daniel-san
“Mas se eu precisar criar 75
hosts vai ser trabalhoso,
mestre !”
- Sr. “Complicador” Myiagi
“Sim gafanhoto, ainda mais
se forem 25 na AWS, 25 no
OpenStack e 25 no
VMware.”
Foreman API
- Foreman API
“Com um FOR, porra !”
- https://theforeman.org/api/1.14/
Foreman API
- https://theforeman.org/api/1.14/
Foreman API
Mas voltando pro
mundo físico agora...
Criando novo host
Criando novo host
Criando novo host
O que o Foreman faz ?
Baixa o kernel e initrd da netinstall da distro escolhida
Faz o TFTP servir a imagem PXELinux de instalação praquele MAC
Configura o DHCP pra fornecer o IP configurado
Prepara o Puppet para auto-assinar o certificado do agente da
máquina
Instala e configura o agente do Puppet no final da instalação
Desfaz a configuração pro TFTP fornecer a imagem de boot de
instalação
O que o Foreman faz ?
IPAM para IPs estáticos e DHCP.
DNS direto e reverso.
- Daniel-san
“Mas se forem muitos
servidores vai dar trabalho,
e tem que saber o MAC de
todos eles !”
Foreman Discovery !
Foreman Discovery
Bare Metal as a Service
Lugar de servidor é no rack !
Servidores bootam pela rede interna de provisionamento
Listagem de servidores disponíveis para provisionamento
no Foreman
Foreman Discovery
Foreman Discovery
Foreman Discovery
Foreman Discovery
Foreman Discovery
Foreman Discovery
Foreman Discovery
Foreman Discovery
Pode ser automatizado com regras como:
- Mais de 1Tb de ram e 50 cores => compute node
- Mais de 6 HDs => storage node
- Modelo de hardware X => firewall
Foreman Discovery
Bare Metal as a Service
BOOTP, TFTP, DHCP, PXELinux, DNS…
Por isso depende de uma rede local de provisionamento
“Então precisamos de um
Foreman para cada
Datacenter/Rede que
quisermos provisionar ?”
Foreman Proxy !
Foreman Proxy
Gerencia o TFTP, DHCP, PXELinux, DNS etc…
Um Foreman Proxy por rede de provisionamento
Um único Foreman, onde aparecerão os hosts
decobertos em todos os proxies.
Foreman Proxy
Quem pode ser Foreman Proxy?
Uma máquina física ou VM em cada DC…
Uma VM no seu notebook…
Um Raspberry Pi…
Ou seja: nada justifica você subir servidores
manualmente
Foreman Proxy
Mandamentos do bom Freelancer:
1. Tem um Foreman na AWS
2. Carrega um Foreman Proxy consigo em uma VM no Notebook
3. Pluga a rede do servidor no notebook e boota pela rede
4. Acessa o Foreman na AWS e seleciona o que o servidor vai ser
5. Após a instalação do SO o Puppet/Chef/Ansible concluem o
trabalho
6. Briga com o cliente que não quer pagar porque viu que “ele
não fez quase nada”
Conclusão
Meia automação não é automação
Não adianta automatizar a instalação do S.O. e ter que
subir os serviços na mão.
Não adianta automatizar a instalação dos serviços e ter
que instalar S.O., subir VMs e instâncias na mão.
Não adianta automatizar os dois se ainda precisar
adicionar no Load Balancer na mão.
O esforço pra subir 3 ou 274 servidores precisa ser o
mesmo.
Meia automação não é automação
O Foreman provisiona Bare Metal, VMware, AWS,
OpenStack, Azure etc.
Integra com sua ferramenta de configuração seja Puppet,
Ansible, Chef ou Salt.
RedHat Satellite = Katello(Foreman(Puppet))
Obrigado
The Foreman => https://theforeman.org
Meu site => https://ramoni.com.br
Slideshare => https://goo.gl/JzhE9n

Weitere ähnliche Inhalte

Was ist angesagt?

Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxThiago Paes
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
Wordcamp LX 2011
Wordcamp LX 2011Wordcamp LX 2011
Wordcamp LX 2011Pedro Dias
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbThiago Santos
 
Iseltech13 – Node.Js Like a Star Wars episode
Iseltech13 –  Node.Js Like a Star Wars episodeIseltech13 –  Node.Js Like a Star Wars episode
Iseltech13 – Node.Js Like a Star Wars episodeNuno Paz
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
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çãoWeverton Timoteo
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Amazon Web Services LATAM
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - AmbientesDirceu Belém
 
Sistemas operacional 9
Sistemas operacional 9Sistemas operacional 9
Sistemas operacional 9Nauber Gois
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxThiago Paes
 

Was ist angesagt? (20)

Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
Apresentação do Novo QTS 4.2
Apresentação do Novo QTS 4.2Apresentação do Novo QTS 4.2
Apresentação do Novo QTS 4.2
 
Samba4+debian8
Samba4+debian8Samba4+debian8
Samba4+debian8
 
Wordcamp LX 2011
Wordcamp LX 2011Wordcamp LX 2011
Wordcamp LX 2011
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper Usb
 
Iseltech13 – Node.Js Like a Star Wars episode
Iseltech13 –  Node.Js Like a Star Wars episodeIseltech13 –  Node.Js Like a Star Wars episode
Iseltech13 – Node.Js Like a Star Wars episode
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Vamos conversar sobre cache
Vamos conversar sobre cacheVamos conversar sobre cache
Vamos conversar sobre cache
 
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
 
Light Talk Docker Compose
Light Talk Docker ComposeLight Talk Docker Compose
Light Talk Docker Compose
 
Tom cat e eclipse
Tom cat e eclipseTom cat e eclipse
Tom cat e eclipse
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Sistemas operacional 9
Sistemas operacional 9Sistemas operacional 9
Sistemas operacional 9
 
Deploy Rails
Deploy RailsDeploy Rails
Deploy Rails
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 

Ähnlich wie Foreman como provisionador TDC floripa 2017

Instalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvmInstalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvmFernando Pessoa
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvemIgnacio Nin
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory gigadrop
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva Edgar Silva
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-phpBrenno Abreu
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo maisakamud
 
Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Gustavo Pereira
 
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualMedindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualRafael Reis
 

Ähnlich wie Foreman como provisionador TDC floripa 2017 (20)

Instalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvmInstalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvm
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory
 
Apostila metasploit
Apostila metasploitApostila metasploit
Apostila metasploit
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Amazon EC2 avançado
Amazon EC2 avançadoAmazon EC2 avançado
Amazon EC2 avançado
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
PHP com Docker
PHP com DockerPHP com Docker
PHP com Docker
 
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
Entrega ebook-gratis
Entrega ebook-gratisEntrega ebook-gratis
Entrega ebook-gratis
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualMedindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
 

Foreman como provisionador TDC floripa 2017