Tabela de conteúdo
The Foreman – Lifecycle, Provisioning, Configuration, Orchestration and Monitoring.
Vamos fazer a instalação de um host na Amazon Web Services utilizando o The Foreman.
Parte 1 – Como instalar e configurar o the foreman
Parte 2 – The Foreman instalacao de hosts via pxe bootstrap bare metal vms parte2
Compute Resources suportados pelo The Foreman
http://theforeman.org/manuals/1.10/index.html#5.2ComputeResources
Plugins
http://projects.theforeman.org/projects/foreman/wiki/List_of_Plugins
1. Usuário Amazon WS
A primeira coisa a se fazer é ter um usuário na Amazon WS com permissões administrativas no EC2 e com as chaves de acesso (Access Key ID e Secret Access Key).
Você pode criar um usuário gratuito na AmazonWS. Sendo assim tenha o Access Key ID e Secret Access Key em mãos.
2. Instalação do Compute Resource Foreman-ec2
Logado no servidor do Foreman instale o compute resource EC2 para habilitar o suporte a AmazonWS EC2.
#yum install foreman-ec2 #systemctl reload httpd
foreman-ec2.noarch : Foreman Amazon Web Services (AWS) EC2 support
3. Configuração do EC2 AmazonWS no Foreman
Em Home-The-Foreman -> Infrastructure -> Compute Resources -> New Compute Resurce
Preencha os dados de configuração informando Access Key, Secret Key e Provider EC2.
Faça um teste de conexão e escolha a região. São Paulo a região é sa-east-1.
Clique em “Submit”.
O Foreman vai gerar um para de chaves para comunicação com o EC2. Para verificar a chave logue no console da AmazonWS: http://console.aws.amazon.com -> EC2 -> Network & Security -> Key Pairs.
4. Criação de um Sistema Operacional genérico
Nós precisamos criar um Sistema Operacional no Foreman, da mesma forma que na instalação Bare Metal no tópico parte2.
É um Sistema Operacional genérico pois de fato ele não será usado, o que vai ser usado serão as imagens da Amazon do tipo ami-xxxxx, ami-27b3094b e etc.
4.1. Associar o template user data ao novo Sistema Operacional
Associe o template “Kickstart default user data” ao novo Sistema Operacional. Este é um template do tipo user data, em resumo ele é um script que vai instalar e configurar o Puppet e alterar a senha do usuário ec2-user e root.
Observação:
No template “Kickstart default user data” eu adicionei as linhas:
- RedHat 6 - RedHat 7 # #Enable password on ssh /bin/echo ec2-user:senha123456 | chpasswd /bin/echo root:senha123456 | chpasswd /bin/sed -i s/PasswordAuthentication\ no/PasswordAuthentication\ yes/g /etc/ssh/sshd_config /bin/systemctl reload sshd
Template “Kickstart default user data” na íntegra:
<%# kind: user_data name: Kickstart default user data oses: - CentOS 4 - CentOS 5 - CentOS 6 - CentOS 7 - Fedora 16 - Fedora 17 - Fedora 18 - Fedora 19 - Fedora 20 - RedHat 6 - RedHat 7 -%> #!/bin/bash <%# Cloud instances frequently have incorrect hosts data %> <%= snippet 'fix_hosts' %> <% # safemode renderer does not support unary negation pm_set = @host.puppetmaster.empty? ? false : true puppet_enabled = pm_set || @host.params['force-puppet'] && @host.params['force-puppet'] == 'true' %> <% if puppet_enabled %> yum install -y puppet cat > /etc/puppet/puppet.conf << EOF <%= snippet 'puppet.conf' %> EOF # Setup puppet to run on system reboot /sbin/chkconfig --level 345 puppet on /usr/bin/puppet agent --config /etc/puppet/puppet.conf --onetime --tags no_such_tag <%= @host.puppetmaster.blank? ? '' : "--server #{@host.puppetmaster}" %> --no-daemonize <% end -%> # UserData still needs wget to mark as finished /usr/bin/wget --quiet --output-document=/dev/null --no-check-certificate <%= foreman_url('built') %> # Enable password on ssh /bin/echo ec2-user:senha123456 | chpasswd /bin/echo root:senha123456 | chpasswd /bin/sed -i s/PasswordAuthentication\ no/PasswordAuthentication\ yes/g /etc/ssh/sshd_config /bin/systemctl reload sshd
5. Definição de imagens EC2
Antes de fazer a instalação de um novo host, você precisa antes definir quais imagens estarão habilitadas para o uso.
Em Home-The-Foreman -> Infrastructure -> Compute Resources -> *EC2-AmazonWS-SaoPaulo -> New image
Você precisa ter uma imagem criada na AmazonWS, pode ser uma própria sua, da comunidade, ou uma da AmazonWS.
Eu vou utilizar uma padrão que a própria AmazonWS fornece.
Imagem Amazon: ami-27b3094b
No Foreman a imagem ficou assim:
Perceba a referência a imagem ami-27b3094b.
*EC2-AmazonWS-SaoPaulo é o nome que eu dei para a zona de instalação de hosts. No seu caso coloque um nome de sua preferência
6. Deploy na Amazon via Foreman
Agora basta iniciar a criação de um servidor na Amazon via Foreman, então entre em
Home-The-Foreman -> Hosts -> New Hosts e crie uma nova instalação.
A minha instância se chama servidorec2aws-1.devopslab.com.br.
Então preencha os campos Host, Puppet Classes, Interfaces e Operating System, Virtual Machine (tipo de instância, neste caso vamos usar a t2.micro) e clique em Submit.
Submit – Processo de instalação
Consulte no EC2 AmazonWS a nova instância
Consulte no Foreman a nova instância (clique em All hosts)
Pronto, provisionado um servidor na AmazonWS EC2 via Foreman.