Skip to content

Ambiente para laboratórios e estudos de Kubernetes e outras ferramentas

Notifications You must be signed in to change notification settings

lucaslehnen/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laboratório pessoal

Ansible Terraform Packer wakatime

Este repositório reúne as aplicações e configurações aplicadas no meu laboratório pessoal. Utilizo o lab para testar tecnologias e instalar aplicações de uso diário.

A ideia é configurar alguns hosts na nuvem e ter as minhas raspberry's locais rodando algumas aplicações.

Apesar deste repositório não ter o intuíto de ser replicável, as partes documentadas visam trazer um exemplar de aplicabilidade de diversos recursos que poderão ser registrados em outros repositórios (Roles do ansible, Helm charts, módulos de Terraform, etc).

Documentação do ambiente

  • Motivadores e objetivos ...Ler...
  • Configurações ...Ler...
  • Ambiente local:
    • Overview da infra local ...Ler...
    • Instalação e configuração do Desktop ...Ler...
    • Instalação e configuração das Raspberrys ...Ler...
  • Ambiente na cloud:
    • Overview das Clouds
    • Instalação e configuração da OCI (Oracle Cloud Infrastructure)
    • Instalação e configuração da AWS (Amazon Web Services)
    • Instalação e configuração da Azure (Microsoft)
    • Instalação e configuração da GCP (Google Cloud Platform)
  • Documentação complementar

Como subir o ambiente

Um playbook Ansible controla o lançamento de todo o ambiente descrito na documentação. Ou seja, os ambientes de virtualização nas máquinas locais, a instalação dos clusters e a preparação da nuvem para receber as aplicações.

As aplicações em si, ficam em repositórios específicos de lançamento no Github. No CI/CD destes repositórios de apps é que será configurado o deploy para lançamento das mesmas.

Preparar a sua máquina

Antes de executar o playbook que fará toda a instalação, são necessários alguns passos:

Vamos adicionar o suporte das ferramentas de compilação (Make):

$ apt install build-essential

O Ansible, Terraform e Packer também são requeridos. Informações de como instalá-los estão aqui.

As configurações estão centralizadas no arquivo env.yml. Aqui é onde serão colocadas as variáveis a serem carregadas para as ferramentas e a definição ou não de certas configurações podem habilitar ou desabilitar recursos na infra.

Disponibilizei um arquivo env.sample.yml junto no repositório para auxiliar. Mais detalhes sobre as opções a serem configuradas podem ser vistas aqui.

Preparar os alvos

As máquinas alvo já devem estar com o acesso SSH configurado, conforme esta documentação

Como funciona a automação

A partir do arquivo Makefile, as demais ferramentas como o Terraform, Packer, Ansible e scripts são acionadas. O objetivo do Makefile é acionar o que for possível para subir o ambiente em apenas um comando. install, up e down são os comandos principais, sendo que comandos parciais podem ser embutidos neles.

  • make install
    É a primeira coisa a se fazer, provavelmente você só vai fazê-lo uma vez.
    Faz a instalação e inicialização das ferramentas de IaC, downloads necessários na maquina local, como as collections e roles utilizadas no Ansible.;

  • make up
    Roda todos os comandos na ordem adequada para subir o ambiente COMPLETAMENTE.

  • make down
    Desfaz as instalações realizadas no up.

Alguns prefixos após os comandos up e down podem acionar apenas parte da automação, como por exemplo o make up-desktop, que irá executar apenas as plays referentes ao desktop.

A automação foi escrita para que os comandos sejam idempotentes, ou seja, não tem problema fazer a chamada mais de uma vez, é inclusive, recomendado para confirmar que a configuração está conforme esperado.

Contribuindo

Apesar deste repositório ser voltado para o meu cenário e ambiente, muitas configurações podem ser reaproveitadas e adaptadas aos mais diversos cenários. Portanto, contribuições são muito bem vindas, basta fazer um fork e abrir um PR. Observe os repositórios utilizados e ligados à este, eles podem ser bem úteis, uma vez que seu propósito é serem mais específicos e reaproveitaveis.

About

Ambiente para laboratórios e estudos de Kubernetes e outras ferramentas

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published