Skip to content

Commit

Permalink
tldr (EticaAI/aguia-pescadora#27): v2.0.1-alpha, documentacao e fixes…
Browse files Browse the repository at this point in the history
… no autossl, video de teste em https://asciinema.org/a/18k4z7mCYgBgSQbI3eiZ6RrdB
  • Loading branch information
fititnt committed Jul 14, 2019
1 parent e118075 commit c8a15b9
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 95 deletions.
137 changes: 51 additions & 86 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ organização em _[Etica.AI Infrastructure: Clusters & VPS](https://github.com/o

[![Banner Águia Pescadora - © Andy Morffew www.andymorffew.com](img/aguia-pescadora-banner.jpg)](https://aguia-pescadora.etica.ai/)

[![Website: aguia-pescadora.etica.ai](img/badges/website.svg)](https://aguia-pescadora.etica.ai) [![GitHub: EticaAI/aguia-pescadora-ansible-playbooks](img/badges/github.svg)](https://github.com/EticaAI/aguia-pescadora-ansible-playbooks) ![Versão: 2.0-alpha](img/badges/version-2.0-alpha.svg)
[![Website: aguia-pescadora.etica.ai](img/badges/website.svg)](https://aguia-pescadora.etica.ai) [![GitHub: EticaAI/aguia-pescadora-ansible-playbooks](img/badges/github.svg)](https://github.com/EticaAI/aguia-pescadora-ansible-playbooks) [![Versão: 2.0-alpha](img/badges/version-2.0-alpha.svg)](https://aguia-pescadora.etica.ai/evolucao/)

---

Expand All @@ -23,24 +23,7 @@ git clone -b v2.0-alpha --single-branch https://github.com/EticaAI/aguia-pescado
ansible-playbook tldr.yml -e paas_host=example.com -e paas_ip=123.123.123.123
```

<!--
```bash
# TODO: escrever um tldr.yml (fititnt, 2019-07-01 30:57 BRT)
# @see https://github.com/EticaAI/aguia-pescadora/issues/27
git clone https://github.com/EticaAI/aguia-pescadora-ansible-playbooks.git .
ansible-playbook 1-node-tsuru-autossl.yml -e paas_host=example.com
```
-->

<!--
Exemplo com 3 nós:
ansible-playbook 1-node-tsuru-autossl.yml -e paas_host=example.com
Exemplo que estou testando:
ansible-playbook -i inventory/1-node-exemplo/inventory.ini 1-node-tsuru-autossl.yml
-->
Resultado:

> - Tsuru URLs:
> - https://tsuru.example.com
Expand All @@ -53,23 +36,23 @@ ansible-playbook -i inventory/1-node-exemplo/inventory.ini 1-node-tsuru-autossl
> - https://mi-aplicación-tre.app.example.com
> - ...
[![asciicast](https://asciinema.org/a/18k4z7mCYgBgSQbI3eiZ6RrdB.svg)](https://asciinema.org/a/18k4z7mCYgBgSQbI3eiZ6RrdB)

---

<!-- TOC depthFrom:1 -->

- [Ansible Playbooks da Águia Pescadora](#ansible-playbooks-da-águia-pescadora)
- [Como usar o aguia-pescadora-ansible-playbooks](#como-usar-o-aguia-pescadora-ansible-playbooks)
- [Executar os Playbooks](#executar-os-playbooks)
- [1-node](#1-node)
- [1-node-tsuru-autossl](#1-node-tsuru-autossl)
- [2.0.x alpha](#20x-alpha)
- [Roles](#roles)
- [paas-host](#paas-host)
- [tsuru-installer](#tsuru-installer)
- [Outras versões](#outras-versões)
- [Requisitos](#requisitos)
- [Seu computador local](#seu-computador-local)
- [Instalação do Ansible](#instalação-do-ansible)
- [Servidores remotos](#servidores-remotos)
- [Sobre este Ansible Playbook](#sobre-este-ansible-playbook)
- [Roles](#roles)
- [paas-host](#paas-host)
- [tsuru-installer](#tsuru-installer)
- [Acompanhar resultado to tsuru install-create](#acompanhar-resultado-to-tsuru-install-create)
- [Referências sobre a pilha de soluções da Águia Pescadora](#referências-sobre-a-pilha-de-soluções-da-águia-pescadora)
- [Ansible](#ansible)
Expand All @@ -92,31 +75,54 @@ ansible-playbook -i inventory/1-node-exemplo/inventory.ini 1-node-tsuru-autossl

## Como usar o aguia-pescadora-ansible-playbooks

Documentação mais específica em [aguia-pescadora.md](aguia-pescadora.md)
### 2.0.x alpha

### Executar os Playbooks
A pessoa mantenedora, Emerson Rocha, recentemente começou a usar Ansible e ainda
está convertendo scripts e estratégias para o novo padrão. Pode levar um tempo
até implementação desse nível de automação, porém pode ajudar em especial
reuso por colegas. Grato pela compreensão :).
Neste momento apenas a versão 2.0.x-alpha (que tem seu passo a passo muito
resumidamente) explicada no início deste documento em "TL;DR" está documentada.

#### 1-node
![Situação: Trabalho em Progresso](img/badges/status-work-in-progress.svg)
Águia Pescadora PaaS Tudo-Em-Um-Nó.
Note que a 2.0.x **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](https://github.com/EticaAI/aguia-pescadora/tree/master/diario-de-bordo).

```bash
ansible-playbook -i inventory/1-node-exemplo/inventory.ini 1-node.yml
```
#### Roles

<!--
#### common
#### 1-node-tsuru-autossl
![Situação: Trabalho em Progresso](img/badges/status-work-in-progress.svg)
Águia Pescadora PaaS Tudo-Em-Um-Nó (Tsuru PaaS, Minio, AutoSSL via OpenResty).
Esta opção não usa Kubernetes ou k3s.
- [common](roles/common/README.md)
-->

```bash
ansible-playbook -i inventory/1-node-exemplo/inventory.ini 1-node-tsuru-autossl.yml
```
##### paas-host

- [paas-host](roles/paas-host/README.md)

`paas-host` é a função responsável por preparar a(s) VPSs para fazer
terminação TLS (isto é, servir o primeiro acesso HTTPS) que chegam no servidor.
Usa o [OpenResty](https://github.com/openresty/openresty) +
[GUI/lua-resty-auto-ssl](https://github.com/GUI/lua-resty-auto-ssl).

##### tsuru-installer

- [tsuru-installer](roles/tsuru-installer/README.md)

Oferece uma versão mais limitada do que o fantástico
[Tsuru Installer](https://docs.tsuru.io/stable/installing/using-tsuru-installer.html)
automatizaria por você.

A função dele é criar na pasta [tsuru-initialization-configs](tsuru-initialization-configs/)
os arquivos de configuração que são parâmetros usados na chamada
`tsuru install-create -c install-config.yml -e install-compose.yml`. Caso você
não tenha o [Docker](https://docs.docker.com/install/),
[Docker Machine](https://docs.docker.com/machine/install-machine/) e o
[Tsuru Client](https://tsuru-client.readthedocs.io/en/latest/installing.html)
irá alertar.

### Outras versões

Registro de outras versões da 2.5.x (que pretende ser o meio caminho até a 3.0)
pode ser vista no arquivo [aguia-pescadora.md](aguia-pescadora.md).

Veja também <https://aguia-pescadora.etica.ai/evolucao> para ter uma ideia geral
da evolução.
### Requisitos

#### Seu computador local
Expand Down Expand Up @@ -152,47 +158,6 @@ servidores remotos estarão com pacotes instalados e prontos para uso inicial**.
- Caso opte por instalar com o 1-node.yml o `tsuru-client` requer que a
chave privada usada no momento da instalação seja sem senha.

## Sobre este Ansible Playbook

### Roles

<!--
#### common
- [common](roles/common/README.md)
-->

#### paas-host

- [paas-host](roles/paas-host/README.md)

`paas-host` é a função responsável por preparar a(s) VPSs para fazer
terminação TLS (isto é, servir o primeiro acesso HTTPS) que chegam no servidor.
Usa o [OpenResty](https://github.com/openresty/openresty) +
[GUI/lua-resty-auto-ssl](https://github.com/GUI/lua-resty-auto-ssl).

#### tsuru-installer

- [tsuru-installer](roles/tsuru-installer/README.md)

Oferece uma versão mais limitada do que o fantástico
[Tsuru Installer](https://docs.tsuru.io/stable/installing/using-tsuru-installer.html)
automatizaria por você.

A função dele é criar na pasta [tsuru-initialization-configs](tsuru-initialization-configs/)
os arquivos de configuração que são parâmetros usados na chamada
`tsuru install-create -c install-config.yml -e install-compose.yml`. Caso você
não tenha o [Docker](https://docs.docker.com/install/),
[Docker Machine](https://docs.docker.com/machine/install-machine/) e o
[Tsuru Client](https://tsuru-client.readthedocs.io/en/latest/installing.html)
irá alertar.

<!--
As principais diferenças entre a documentação padrão do Tsuru são:
1. Gera arquivos de configuração
-->

##### Acompanhar resultado to tsuru install-create

Não é trivial exibir na mesma tela de acompanhamento do Ansible o resultado de
Expand Down
10 changes: 9 additions & 1 deletion roles/paas-host/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
1-node-tsuru-docker
paas-host
=========

Um guia sem automação de ansible de como fazer algo parecido pode ser lido em
Expand All @@ -12,6 +12,14 @@ Veja também
- https://github.com/EticaAI/aguia-pescadora/issues/26
- https://github.com/EticaAI/aguia-pescadora/blob/master/diario-de-bordo/delta.sh


Arquivos

- Erros do OpenResty (NGinx, AutoSSL, proxy de entrada...)
- `/usr/local/openresty/nginx/logs/error.log`
- Acesso do OpenResty (NGinx, AutoSSL, proxy de entrada...)
- `/usr/local/openresty/nginx/logs/access.log`

Requirements
------------

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
- name: "lua-resty-auto-ssl?"
stat:
path: /etc/resty-auto-ssl
register: restyautossl_folder
register: is_restyautossl
#register: restyautossl_folder

## apt install -y openresty ____________________________________________________

Expand Down Expand Up @@ -62,25 +63,27 @@
## luarocks install lua-resty-auto-ssl _________________________________________
# @see https://github.com/GUI/lua-resty-auto-ssl#installation

- name: "resty-auto-ssl: sudo luarocks install lua-resty-auto-ssl"
shell: luarocks install lua-resty-auto-ssl
register: is_restyautossl2
when: restyautossl_folder.stat.isdir is defined and restyautossl_folder.stat.isdir

- name: 'sudo mkdir /etc/resty-auto-ssl ; sudo chown www-data /etc/resty-auto-ssl'
file:
state: directory
path: /etc/resty-auto-ssl
owner: www-data
group: www-data
when: restyautossl_folder.stat.isdir is defined and restyautossl_folder.stat.isdir
when: is_restyautossl is failed

- name: "resty-auto-ssl: sudo luarocks install lua-resty-auto-ssl"
shell: luarocks install lua-resty-auto-ssl
register: is_restyautossl2
# when: restyautossl_folder.stat.isdir is defined and restyautossl_folder.stat.isdir
when: is_restyautossl is failed

# TODO: trocar comando seguinte de 'shell' para 'lineinfile' ou 'template' fititnt, 2019-07-01 06:33 BRT)
# @see https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html
- name: "hotfix 'err: Can't load ./.rnd into RNG', https://github.com/openssl/openssl/issues/7754#issuecomment-444063355"
shell: sed -i '/RANDFILE/s/^/#/g' /etc/ssl/openssl.cnf
register: is_restyautossl_hotfix_openssl
when: restyautossl_folder.stat.isdir is defined and restyautossl_folder.stat.isdir
# when: restyautossl_folder.stat.isdir is defined and restyautossl_folder.stat.isdir
when: is_restyautossl is failed

- name: "sudo openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj '/CN=sni-support-required-for-valid-ssl' -keyout /etc/ssl/resty-auto-ssl-fallback.key -out /etc/ssl/resty-auto-ssl-fallback.crt"
shell: openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj '/CN=sni-support-required-for-valid-ssl' -keyout /etc/ssl/resty-auto-ssl-fallback.key -out /etc/ssl/resty-auto-ssl-fallback.crt
Expand Down

0 comments on commit c8a15b9

Please sign in to comment.