O Vagrant é um software que permite criar máquinas virtuais (para Virtualbox ou Vmware) de forma simples para agilizar a criação de ambientes de testes e desenvolvimento. Mais informações podem ser obtidas no site https://www.vagrantup.com
Para automatizar e simplificar a criação de máquinas virtuais com Vagrant, você pode criar um arquivo chamado Vagranfile e nele definir as configurações da mesma. Mais informações sobre esse arquivo podem ser obtidas na página: https://www.vagrantup.com/docs/vagrantfile
As VMs são criadas no Vagrant usando boxes que são como templates de um sistema básico pronto. Várias boxes podem ser encontradas na página: https://app.vagrantup.com/boxes/search
Para a execução das boxes homologadas para o livro, siga os passos abaixo.
Nesta página, você encontrará a configuração realizada para o host master nas distros: CentOS, Debian e Ubuntu, além dos manifests Puppet que serão executados nas máquinas virtuais quando forem criadas.
4) Dentro dos diretórios do master tem o arquivo Vagrantfile com as especificações e configurações da máquina virtual. O arquivo contém explicações detalhadas sobre algumas variáveis e sobre a configuração da mesma. Altere conforme a sua necessidade.
5) Esses Vagranfiles só criarão a máquina virtual do host master. Para criar máquinas virtuais para os hosts node1 e node2, basta criar outro diretório, copiar o Vagrantfile do master para o novo diretório e alterar o conteúdo no diretório destino conforme a necessidade.
6) Depois execute os comandos abaixo.
Para ligar a VM:
OBS.: Este tutorial foi executado usando o Puppet 4.x, Zabbix 3.2 e as VMs do Debian 8 criadas para o livro Gerência de Configuração com Puppet. Para a execução deste tutorial, é assumido que você executou todos os passos do livro até o capítulo 5.
O Zabbix é um serviço de gerenciamento e monitoramento de aplicações e equipamentos de rede. No Puppet ele pode ser gerenciado usando o módulo puppet-zabbix. Nos passos a seguir será apresentada uma configuração bem simples para este serviço no Debian. Mais opções e exemplos de configuração deste módulo podem ser encontrados na página https://forge.puppet.com/puppet/zabbix.
1) Acesse o Puppet Server e execute o comando a seguir para instalar o módulo puppet-zabbix.
puppet module install puppet-zabbix
2- Ainda no Puppet Server, edite o arquivo /etc/puppetlabs/code/environments/production/manifests/site.pp e defina a seguinte configuração para gerenciar o serviço Zabbix no host node1 usando o módulo e as dependências instaladas anteriormente.
node node1.domain.com.br {#Configurando o Apache
class {'apache':
mpm_module =>'prefork',
default_vhost =>false,
server_signature =>'Off',
server_tokens =>'Prod',
trace_enable =>'Off',
}#Incluindo o suporte ao PHP no Apache
include apache::mod::php
#Definindo a porta padrao do HTTP
apache::listen {'80': }#Defindo as cifras e protocolos SSL a serem usados no acesso via HTTPS
class {'apache::mod::ssl':
ssl_cipher =>'HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1:!TLSv1.1',
ssl_protocol =>['all', '-SSLv2', '-SSLv3', '-TLSv1', '-TLSv1.1'],
}#Configurando o modulo wsgi
class {'apache::mod::wsgi':
wsgi_socket_prefix =>'/var/run/wsgi',
}#Adicionando o suporte a MySQL
class {'mysql::server': }#Configurando o Zabbix Server
class {'zabbix':
zabbix_url =>'node1.domain.com.br',
database_type =>'mysql',
zabbix_version =>'3.4',
apache_use_ssl =>true,
}#Configurando o Zabbix Agent
class {'zabbix::agent':
server =>'node1.domain.com.br',
}}
3- Acesse o host node1.domain.com.br e execute o comando a seguir para obter o novo catálogo de configuração.
puppet agent -t
4- Verifique o funcionamento do serviço acessando https://node1.domain.com.br. Aceite o certificado auto-assinado e acesse o Zabbix com o login Admin e a senha zabbix.
Se for necessário, ajuste os valores das opções de configuração no arquivo /etc/puppetlabs/code/environments/production/manifests/site.pp do host master para atender as suas necessidades do seu ambiente.
Neste tutorial, o Gitlab será executado usando um único conteiner para fornecer todo o ambiente necessário para executá-lo, o que deixa a instalação bem simples e rapidamente você tem o serviço funcionando.
Para não consumir os recursos de memória da sua VM, use o serviço Playground Docker, que fornece gratuitamente até 4 horas e 5 Docker hosts para brincar à vontade. E o melhor, ele já cria as instâncias com o Docker instalado e pronto para ser usado.
1) Acesse a URL http://labs.play-with-docker.com e crie uma nova sessão. Em seguida, clique no botão + ADD NEW INSTANCE. No console de comandos da nova instância, execute os comandos a seguir.
2) Crie o diretório de dados, log e configuração do GitLab.
5) O log pode ser visualizado com o comando abaixo.
docker logs gitlab
O serviço pode demorar até 5 minutos para ser iniciado e configurado da primeira vez. Aguarde até tudo estar pronto.
6) Quando estiver pronto, acesse o GitLab na URL a ser disponibilizada automaticamente após clicar no link 8880 mostrado no topo da página, um pouco mais a direita na linha que é exibido o IP interno da instância. Ao acessar, será solicitado que você crie uma senha com no mínimo 8 caracteres para o usuário root. Depois disso é só acessar com a conta root e a senha recém criada na interface web do Gitlab.
Exemplo da URL: http://pwd10-0-34-3-8880.host1.labs.play-with-docker.com
Mais informações sobre o GitLab e como configurá-lo, acesse os links abaixo.
Lembrando que os dados do banco, repositórios de código, configurações e logs são persistidos no diretório /opt/docker/gitlab do Docker Host no qual o conteiner está sendo executado.
Criando um repositório no GitLab
Acesse o GitLab na URL a ser disponibilizada automaticamente após clicar no link 8880 mostrado no topo da página, um pouco mais a direita na linha que é exibido o IP interno da instância. Faça login a conta root e a senha recém criada na interface web do Gitlab.
Exemplo da URL: http://pwd10-0-34-3-8880.host1.labs.play-with-docker.com
Crie um novo projeto clicando no botão New Project. Defina um nome do projeto como sendo production e clique no botão Create Project. A URL do repositório Git do repositório Git será mostrada na página inicial do projeto junto com uma pequena documentação de como iniciar o versionamento.
Acabou de sair do forno, um módulo que ajuda a distruibuir e atualizar os certificados gerados pelo site https://www.sslforfree.com.
Através desse site você pode ter acesso a um certificado válido para um host ou um domínio inteiro gratuitamente. Esse site usa a API do let’s encrypt.
Considerando que os papéis do administrador de sistema moderno são: agilizar a entrega do software e administrar um crescente ambiente, formado por servidores e serviços heterogêneos; Este livro apresenta a ferramenta e uma outra forma de trabalho, baseada na cultura DevOPs. Ao invés de criar scripts e ISOs customizadas, o administrador criará uma documentação que é fácil de ler, modificar, além de ser executável. Os capítulos fornecem, de maneira equilibrada, conteúdo teórico e exercícios práticos, de forma que ao final da leitura do livro, o leitor terá simulado a configuração automatizada de um ambiente formado por sistemas operacionais e serviços de rede comum em muitas empresas.
Funcionalidades
Estas são algumas das funcionalidades do Puppet.
Simulação
Simule as mudanças de configuração sem realizar alterações nos hosts gerenciados.
Dados e códigos
Separe os dados do código usando o Hiera.
Relatórios
Visualize as mudanças realizadas no ambiente através do PuppetBoard e receba notificações por email através do TagMail.
Versionamento
Versione a configuração da infraestrutura usando o git.
Autor e Revisor
Conheça as pessoas que colaboraram com o conteúdo do livro.