Skip to content

Infraestrutura como Código da Águia Pescadora com Playbooks de Ansible. Foco atual: ter um cluster Kubernetes + Tsuru para ter uma Plataforma Como Serviço ("PaaS") da Etica.AI para apoio a comunidades de base. Está IaC é licenciada em Domínio Publico.

License

Notifications You must be signed in to change notification settings

EticaAI/aguia-pescadora-ansible-playbooks

Repository files navigation

Ansible Playbooks da Águia Pescadora

Situação: Trabalho em Progresso Infraestrutura como Código da Águia Pescadora (a evolução do cplp-aiops) com playbooks de Ansible especialmente preparado para pessoas com menor experiência em infraestrutura ou acesso a recursos financeiros possam replicar. Trabalho (tanto códigos como documentação) dedicados ao domínio público.

O link para lista completa dos servidores da Etica.AI pode ser vista no painel da organização em Etica.AI Infrastructure: Clusters & VPS inglês.

Banner Águia Pescadora - © Andy Morffew www.andymorffew.com

Website: aguia-pescadora.etica.ai GitHub: EticaAI/aguia-pescadora-ansible-playbooks


TL;DR do 2.0-alpha

Versão: 2.0-alpha Ubuntu Server 18.04, 1vCPU, 512MB RAM, 10GB disco

git clone -b v2.0-alpha --single-branch https://github.com/EticaAI/aguia-pescadora-ansible-playbooks.git .
ansible-playbook tldr.yml -e paas_host=example.com -e paas_ip=123.123.123.123

# Senha do Admin do tsuru: tsuru-initialization-configs/tsuru-install.log
# Senha do Minio: example.com:/usr/local/share/minio/.minio.sys/config/config.json

Exemplo de execução do início ao fim dos passos acima:

asciicast

Sem configurações extras, uma implementação baseada na versão acima teria uma estrutura de URLs semelhante a esta:



Como usar o aguia-pescadora-ansible-playbooks

Note que a 2.0.x alpha não usa Kubernetes ou K3S e é uma versão de apenas 1 nó, porém automatizada do que antes era documentado em EticaAI/aguia-pescadora/diario-de-bordo e que é mais flexível (porém exige conhecimento mais avançado pra testes rapidos e ler o passo a passo).

2.0.x alpha

Instalação da 2.0.x alpha

Uma das formas de instalar a versão 2.0.x alpha é a seguinte:

git clone -b v2.0-alpha --single-branch https://github.com/EticaAI/aguia-pescadora-ansible-playbooks.git .
ansible-playbook tldr.yml -e paas_host=example.com -e paas_ip=123.123.123.123

# Senha do Admin do tsuru: tsuru-initialization-configs/tsuru-install.log
# Senha do Minio: example.com:/usr/local/share/minio/.minio.sys/config/config.json

O que a versão 2.0.x alpha automatiza por você

  • PaaS 1 nó (master e workers na mesma VPS)
    • Recomendamos Ubuntu 18.04
    • Hardware mínimo: 1vCPU, 512MB RAM, 10GB disco
  • OpenResty (fork do NGinx) com GUI/lua-resty-auto-ssl
    • Função:
      • faz terminação TLS (isto é, servir o primeiro acesso HTTPS) que chegam no servidor.
      • Note: ele obtem SSL para qualquer domínio que aponte para seu servidor sem invervenção manual de administrador o que pode ser extremamente interessante e prático para quem está vindo de outros ambinetes que oferecem let's encript de graça; porém pode exigir ajustes extras para quem não precisa disto
  • Minio
  • Tsuru Server com core components (via tsuru Installer), em especial:
    • Tsuru Dashboard / Tsuru API
    • Database para o Tsuru (MongoDB, é usado apenas pelo próprio Tsuru)
    • Queue/Cache para o Tsuru (Redis, é usado apenas pelo próprio Tsuru)
    • Docker Registry
    • PlanB (Usado apelas pelo Tsuru, não serve HTTP ou HTTPS para fora do cluster)
    • Docker

A versão 2.0.x alpha é uma implementação mais reduzida (porém automatizada) do EticaAI/aguia-pescadora/diario-de-bordo documenta ser possível. Em vez de dar "todas as opções" e exigir que o usuário tenha que ler outras dezenas de referências extenas ela procura ser primeira versão pública da Etica.AI de um PaaS "Faça-você-mesmo" que consiga ser compatível caso você queira aproveitar apenas a documentação e experiência com pilha de soluções da Águia Pescadora sem usar a hospedagem gratuita.

Para quem tem conhecimento técnico prévio mais avançado você talvez pode usar o EticaAI/aguia-pescadora/diario-de-bordo ou tomar como ponto de partida a instalação do Tsuru em https://docs.tsuru.io/stable/installing/index.html. Como o número de pessoas desenvolvedores realmente criando uma PaaS é reduzida ainda assim você pode se beneficiar de partes do que é testamos e como documentação/código são liberados não apenas como código aberto, mas como dedicados ao domínio publico você pode reaproveitar em outros projetos. Porém note que não temos como dar suporte nem fazer garantias além da que nosso trabalho é feito em boa fé e que de fazemos isso como estratégias para projetos como o https://cplp.etica.ai/.

Limitações da versão 2.0.x alpha

Pontos de melhoria (isto é, o que NÃO é configurado automaticamente):

  • Não expõe como configurar mais de um nó (porém isso pode simplificar não apenas custos, mas trabalho do administrador que não requer alta disponibilidade)
  • Não usa Kubernetes ou K3S (o que não necessariamente é ponto negativo)
  • Tsuru Gandalf (isto é, permitir por em produção usando git push em vez de tsuru app-deploy --app meuapp . )
  • Tsuru MySQL As A Service (alternativa: usar MySQL via app com Docker)
  • Tsuru PostgreSQL As A Service (alternativa: usar PostgreSQL via app com docker)
  • Tsuru volumes

A versão do 2.0.x alpha lançaca mesmo apelidada de tldr.yml ainda requer que a pessoa tenha que resolver alguns Requisitos. Porém tenha em mente que ao menos ela não tem aprisionamento tecnológico de forçar que use um provedor específico de infraestrutura (que geralmente são mais caros). E nosso público alvo não teria tais recursos financeiros. Porém no futuro talvez consigamos simplificar ainda mais.

Requisitos

No seu nó de controle
Instalação do Ansible

Veja tarefa/ansible-install.

Servidores remotos

Note que o nível de automação que aguia-pescadora-ansible-playbooks fornece pode ser suficiente para ter uma versão de Águia Pescadora aceitavelmente ok e economizar pelo menos 80% de trabalho. Isto é, ao usar estas rotinas o(s) servidores remotos estarão com pacotes instalados e prontos para uso inicial.

  • Ubuntu Server 18.04 LTS
    • Versão mais testada. Você pode tentar em outras com alterações nestes playbooks.
  • Autenticação por chave privada
    • Caso opte por instalar com o tldr.yml o tsuru-client requer que a chave privada usada no momento da instalação seja sem senha.

Avançado

Tarefas de auxílio

Veja pasta tarefa

Testes

⚠️ Muito cuidado ao executar automações da teste/ ⚠️

Veja pasta teste.

Licença

Licença de aguia-pescadora-ansible-playbooks

Domínio Público

Na medida do possível segundo a lei, Etica.AI renunciou a todos os direitos autorais e direitos conexos ou vizinhos a este trabalho para o Domínio Público.

About

Infraestrutura como Código da Águia Pescadora com Playbooks de Ansible. Foco atual: ter um cluster Kubernetes + Tsuru para ter uma Plataforma Como Serviço ("PaaS") da Etica.AI para apoio a comunidades de base. Está IaC é licenciada em Domínio Publico.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages