EticaAI / aguia-pescadora

Documentação de toda pilha de soluções e de usuário do PaaS da Etica.AI. Informações do cluster Tsuru sendo configurado: [Nós: 3][CPU: 14][RAM: 32GB][Disco: 800GB SSD][Custo: < 100 BRL/mês]
https://aguia-pescadora.etica.ai
The Unlicense
1 stars 0 forks source link

MVP de Ansible Playbook de nó tudo-em-um do Tsuru PaaS #26

Open fititnt opened 5 years ago

fititnt commented 5 years ago

O que comecei a testar em #25 definitivamente faz diferença no caso de um cluster mais completo e que use logo Kubernetes e não docker diretamente. Porém como já vai se ter um trabalho para documentar um cluster inteiro em https://github.com/EticaAI/aguia-pescadora-ansible-playbooks, talvez valha a pena criar uma alternatva com Ansible Playbook de implementação de um nó apenas.

Vale lembrar que já existe documentação, ainda que não testado a ponto de eu recomendar (sem ajustes extras) ser usado em produção. Vide https://github.com/EticaAI/aguia-pescadora/tree/master/diario-de-bordo/tsuru-inicializacao e https://github.com/EticaAI/aguia-pescadora/tree/master/diario-de-bordo/tsuru-inicializacao++. E uma versão mais rudimentar, porém que foi usada para testes da Charlie, ficou em https://github.com/fititnt/cplp-aiops/issues/58 e https://github.com/fititnt/cplp-aiops/issues/59.

No nosso caso aqui é que como possivelmente as versões mais novas de servidores podem tender a usar Ansible ou outra ferramenta, pode fazer sentido já usar isso também para uma versão mais simples.

fititnt commented 5 years ago

Vou ter que refatorar e quebrar em pelo menos dois roles diferentes o que agora é o role 1-node-tsuru-autossl.

O Tsuru (se instalado pela documentação recomendada, sem ser pelo kubernetes) no ansible iria precisar ser executado no localhost, enquanto a etapa de preparar o host em todos os hosts finais (que no caso é apenas 1).

O problema disso é que ao usar roles, quando um role é chamado ele já tem o alvo definido. Então a etapa de criar os arquivos de configuração do tsuru e o de invocar o tsuru install-create -c install-config.yml -e install-compose.yml precisam idealmente ser em pelo menos um role totalmente diferente.

Lembrando que talvez isso tudo seja refatorado mais na frente.

fititnt commented 5 years ago

Eita. Descobri que tinha sim como alternar conexão sem criar um role separado

fititnt commented 5 years ago

Foi. Demorou mais do que o ola mundo em https://github.com/fititnt/cplp-aiops/issues/59#issue-451247035 (e mesmo eu já sabendo como fazer diretamente) porém maior parte do tempo foi configurando o resto em Ansible.

O installer que o Tsuru Client tem por padrão é super útil.

(...)
OK
Applying iptables workaround for docker 1.12...
--- Installation Overview ---
Core Hosts:
+----------------+-------+---------+
| IP             | State | Manager |
+----------------+-------+---------+
| 167.86.127.225 | ready | true    |
+----------------+-------+---------+

Core Components:
+----------------+-------+----------+
| Component      | Ports | Replicas |
+----------------+-------+----------+
| tsuru_tsuru    | 8080  | 1        |
+----------------+-------+----------+
| tsuru_planb    | 82    | 1        |
+----------------+-------+----------+
| tsuru_mongo    |       | 1        |
+----------------+-------+----------+
| tsuru_redis    |       | 1        |
+----------------+-------+----------+
| tsuru_registry | 5000  | 1        |
+----------------+-------+----------+
Configured default user:
Username: admin@example.com
Password: (REDACTED)
Apps Hosts:
+-----------------------------+---------+--------+----------------------------------+
| Address                     | IaaS ID | Status | Metadata                         |
+-----------------------------+---------+--------+----------------------------------+
| https://167.86.127.225:2376 |         | ready  | LastSuccess=2019-07-04T01:31:26Z |
|                             |         |        | pool=theonepool                  |
+-----------------------------+---------+--------+----------------------------------+
Apps:
+-----------------+------------+---------------------------------------+
| Application     | Units      | Address                               |
+-----------------+------------+---------------------------------------+
| tsuru-dashboard | 1 starting | tsuru-dashboard.167.86.127.225.nip.io |
+-----------------+------------+---------------------------------------+

Captura de tela de 2019-07-03 22-35-18

fititnt commented 5 years ago

A versão do 2.0-alpha do águia pescadora em https://github.com/EticaAI/aguia-pescadora-ansible-playbooks na prática já contém um MVP de Tsuru, porém a 2.0.x tende a te esses pontos de melhoria (i.e. o que poderia, mas não tem, automaticamente configurado):

Talvez esse issue seja fechado como "sendo um MVP" e apenas no 3.0 a gente acrescente outras funcionalidades chave