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

Um Ansible Playbook "TL;DR" de um nó tudo-em-um do Tsuru PaaS #27

Closed fititnt closed 5 years ago

fititnt commented 5 years ago

Tão logo seja possível algo próximo do #26 (ou talvez antes dele) podemos tentar uma opção que assume que um profissional já sabe o que está fazendo e só quer saber o que colar para ter resultado imediato.

Esse TL;DR; pode assumir coisas como o alvo ser um sistema operacional específico e já ter uma conta SSH previamente criada e pronta para fazer o que deveria.

Repositório de referência: https://github.com/EticaAI/aguia-pescadora-ansible-playbooks

fititnt commented 5 years ago

Hummm... é possível.

tldr.yml

- name: tldr tsuru client? docker? docker-machine?
  hosts: localhost
  tasks:
    - name: tsuru client? https://tsuru-client.readthedocs.io/en/latest/installing.html
      shell: tsuru --version
      register: result
      ignore_errors: false

    - name: docker? https://docs.docker.com/install/
      shell: docker --version
      register: result2
      ignore_errors: false

    - name: docker-machine? https://docs.docker.com/machine/install-machine/
      shell: docker-machine version
      register: result3
      ignore_errors: false
# fititnt at bravo in /alligo/code/eticaai/aguia-pescadora-ansible-playbooks on git:master x [4:34:49]
$ ansible-playbook tldr.yml -e tsuru_host=aguia-pescadora-delta.etica.ai

PLAY [tldr tsuru client? docker? docker-machine?] ******************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [tsuru client? https://tsuru-client.readthedocs.io/en/latest/installing.html] ***
changed: [localhost]

TASK [docker? https://docs.docker.com/install/] ********************************
changed: [localhost]

TASK [docker-machine? https://docs.docker.com/machine/install-machine/] ********
changed: [localhost]

PLAY [tldr] ********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [modo para forçar servidor de destino como target] ************************
ok: [localhost]

PLAY [tldr, target] ************************************************************

TASK [teste se fucionou] *******************************************************
ok: [aguia-pescadora-delta.etica.ai] => {
    "msg": "I'm on aguia-pescadora-delta.etica.ai"
}

PLAY RECAP *********************************************************************
aguia-pescadora-delta.etica.ai : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
localhost                  : ok=6    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

# fititnt at bravo in /alligo/code/eticaai/aguia-pescadora-ansible-playbooks on git:master x [4:34:56]
$ 
fititnt commented 5 years ago

Que lindo! Tem até autossl!

Captura de tela de 2019-07-01 09-32-06

fititnt commented 5 years ago

ansible-playbook tldr.yml -e paas_host=aguia-pescadora-echo.etica.ai -e paas_ip=167.86.127.220

asciicast

Apenas HTTPS que deixou de funcionar imediatamente de primeira (isso sei resolver, problema é que uma interação inteira pode demorar uns 40 minutos) mas o playbook rola.

fititnt commented 5 years ago
ssh root@aguia-pescadora-echo.etica.ai

cat /usr/local/openresty/nginx/logs/error.log

2019/07/14 08:42:50 [notice] 12420#12420: signal process started
2019/07/14 08:42:50 [error] 6085#6085: init_by_lua error: init_by_lua:2: module 'resty.auto-ssl' not found:
        no field package.preload['resty.auto-ssl']
        no file '/usr/local/openresty/site/lualib/resty/auto-ssl.ljbc'
        no file '/usr/local/openresty/site/lualib/resty/auto-ssl/init.ljbc'
        no file '/usr/local/openresty/lualib/resty/auto-ssl.ljbc'
        no file '/usr/local/openresty/lualib/resty/auto-ssl/init.ljbc'
        no file '/usr/local/openresty/site/lualib/resty/auto-ssl.lua'
        no file '/usr/local/openresty/site/lualib/resty/auto-ssl/init.lua'
        no file '/usr/local/openresty/lualib/resty/auto-ssl.lua'
        no file '/usr/local/openresty/lualib/resty/auto-ssl/init.lua'
        no file './resty/auto-ssl.lua'
        no file '/usr/local/openresty/luajit/share/luajit-2.1.0-beta3/resty/auto-ssl.lua'
        no file '/usr/local/share/lua/5.1/resty/auto-ssl.lua'
        no file '/usr/local/share/lua/5.1/resty/auto-ssl/init.lua'
        no file '/usr/local/openresty/luajit/share/lua/5.1/resty/auto-ssl.lua'
        no file '/usr/local/openresty/luajit/share/lua/5.1/resty/auto-ssl/init.lua'
        no file '/usr/local/openresty/site/lualib/resty/auto-ssl.so'
        no file '/usr/local/openresty/lualib/resty/auto-ssl.so'
        no file './resty/auto-ssl.so'
        no file '/usr/local/lib/lua/5.1/resty/auto-ssl.so'
        no file '/usr/local/openresty/luajit/lib/lua/5.1/resty/auto-ssl.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
        no file '/usr/local/openresty/site/lualib/resty.so'
        no file '/usr/local/openresty/lualib/resty.so'
        no file './resty.so'
        no file '/usr/local/lib/lua/5.1/resty.so'
        no file '/usr/local/openresty/luajit/lib/lua/5.1/resty.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
        [C]: in function 'require'
        init_by_lua:2: in main chunk

Que lindo. O asccinema upado até permite ver que o ansible não instalou o resty-auto-ssl. Vou corrigir e dar uma melhorada na documentação.

Mas creio que vou acabar mantendo mais de uma versão e deixar a "2.0-alpha" para ser a que não usa kuberbenetes ou k3s.

fititnt commented 5 years ago

v2.0.4-alpha

asciicast

Captura de tela de 2019-07-15 02-23-55

Porém notei um bug

Captura de tela de 2019-07-15 02-24-28

E antes disso, a execução anterior demorou muito, mas muito tempo na etapa do tsuru, porém o ansible estava demorando para imprimir no arquivo de log. Idealmente uma melhoria seria imprimir em tempo real no outro arquivo (ainda que isso seja mais uma necessidade da gente que cria os scripts do que de usuarios finais)

fititnt commented 5 years ago

Ok. Descobri o problema. Na instalação o tsuru por padrão configura como URL dele o http://tsuru-dashboard.173.249.10.99.nip.io e não o http://tsuru-dashboard.aguia-pescadora-delta.nip.io/.

Então isso implica em precisar fazer possivelmente alguns ajustes extras em Apps instalados.

Captura de tela de 2019-07-15 02-54-22

fititnt commented 5 years ago

O v2.0.4-alpha foi lançado em https://github.com/EticaAI/aguia-pescadora-ansible-playbooks/releases/tag/2.0.4-alpha.

Creio que as edições agora passam a ser correções de bugs. Já deixei um branch especial no outro repositório para esta versão do Águia Pescadora.