okfn-brasil / suporte

Regras, datasets e tickets de suporte, para a gestão e transparência da Equipe de Suporte da OKBr
http://suporte.ok.org.br
Other
0 stars 0 forks source link

Transferência da gestão DigitalOcean para equipe OKBR #24

Closed ppKrauss closed 6 years ago

ppKrauss commented 6 years ago

Contexto: atualmente a infraestrutura Web da OKBR encontra-se hospedada na DigitalOcean (DO), e assim deve permanecer, estima-se que no mínimo por mais um ano.

Situação: para facilitar e profissionalizar a gestão dos domínios e máquinas virturais (droplets no jargão DO) criou-se uma equipe de administradores, coordenados neste momento pelo @cuducos. No admin DO o rótulo da equipe é "Open Knowledge Brasil". A máquina de referência recebeu o IP 159.65.236.56 159.203.118.136. Usuários deste time podem acessar o a gestão dos domínios em cloud.digitalocean.com/networking/domains/ok.org.br.

Tarefas:

  1. recriar o droplet com certificados SSH dos responsáveis oficiais, únicos que terão acesso SSH.

  2. certificar-se que a máquina (preferencialmente UBUNTU 18 LTS) esteja com firewall e sem permissão de SSH por login.

  3. certificar-se de que o NGINX foi corretamente instalado e teve scripts de redirecioamento, pastas de hosting, etc. consistentes com o script antigo sites-available/ok.org.br.

  4. copiar/colar (manualmente ou usando API DO) todas as entradas de CNAME, A, MX, etc. para o time, ou seja, o novo time é o proprietário do domínio ok.org.br e demais que forem anexados.

  5. testar os redirecionamentos


PS: restaria avaliar o que fazer com o Wordpress e blog.ok.org.br, se vier a ser usado, abrir um novo ticket de suporte para retomar e descrever as tarefas.

cuducos commented 6 years ago

A máquina de referência recebeu o IP 159.65.236.56

Essa máquina não existe mais. Teve conflito de região dela com o snapshot (backup). Atualizo aqui assim que tivermos um IP.

Transformei tua lista numa checklist para facilitar o acompanhamento:

Uma dúvida:

SSH dos responsáveis oficiais, únicos que terão acesso SSH

Quem são essas pessoas? Se você listar os usuários deles aqui no GitHub já pego as chaves dele por URLs como https://github.com/cuducos.keys

cuducos commented 6 years ago

certificar-se que a máquina (preferencialmente UBUNTU 18 LTS) esteja com firewall e sem permissão de SSH por login.

O snapshot é de uma máquina com Ubuntu 16.04.2. Isso não pode ser mudado facilmente (sem reconfigurar o servidor todo do zero). Vou manter a mesma versão atual do sistema operacional.

cuducos commented 6 years ago

Apenas por curiosidae, usei dois scripts para auxiliar na migração do domínio (configurações de DNS). Exportei DIGITALOCEAN_CIDADE_AMARELA como token da conta/time onde o servidor estava, e DIGITALOCEAN_OPEN_KNOWLEDGE como token da conta/time para onde estamos migrando o servidor.

Primeiro exportei todos os records:

import os
import pickle

import requests

TOKEN = os.environ["DIGITALOCEAN_CIDADE_AMARELA"]
HEADERS = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {TOKEN}'
}
URL = 'https://api.digitalocean.com/v2/domains/ok.org.br/records'

def get_records(url=URL):
    response = requests.get(url, headers=HEADERS).json()
    for record in response.get('domain_records', tuple()):
        yield record

    next_url = response.get('links', {}).get('pages', {}).get('next')
    if next_url:
        yield from get_records(next_url)

with open('records.pkl', 'wb') as fobj:
    pickle.dump(tuple(get_records()), fobj)

Depois importei todos no novo droplet:

import json
import os
import pickle

import requests

TOKEN = os.environ["DIGITALOCEAN_OPEN_KNOWLEDGE"]
HEADERS = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {TOKEN}'
}
URL = 'https://api.digitalocean.com/v2/domains/ok.org.br/records'

with open('records.pkl', 'rb') as fobj:
    for record in pickle.load(fobj):
        data = json.dumps({k: v for k, v in record.items() if k != 'id'})
        response = requests.post(URL, headers=HEADERS, data=data)

Os MX, por algum motivo, deram erro, mas aí incluí na mão mesmo.

cuducos commented 6 years ago

Sobre as duas tarefas faltantes:

Ou seja, preciso de ajuda para considerar essas duas tarefas completas cc @ppKrauss @ncortezrj

cuducos commented 6 years ago

Feito. Falei com a @ncortezrj, peguei o SSH e caso tenha ficado algum redirecionamento faltando, ninguém notou.

ppKrauss commented 6 years ago

Oi, não fiz um levantamento.... Foi só por acaso que reparei que o antigo link https://discus.ok.org.br/3178 (anunciado em Datasets-BR) não está funcionando.

Para reimplementar é fácil: depois que ciar o CNAME discuss basta copiar/colar no NGINX o bloco da linha 22 de https://github.com/okfn-brasil/suporte/blob/master/webservers/scripts/sites-available/ok.org.br

cuducos commented 6 years ago

Para reimplementar é fácil: depois que ciar o CNAME discuss basta copiar/colar no NGINX o bloco da linha 22 de https://github.com/okfn-brasil/suporte/blob/master/webservers/scripts/sites-available/ok.org.br

Tudo isso foi feito (o CNAME migrado com o script que consta nessa issue, e a configuração do nginx é a mesma pois a máquina foi clonada). O redirecionamento funciona (é só aceitar a exceção de segurança).

O que parece que não funciona é o certificado do HTTPS. Vou verificar.

cuducos commented 6 years ago

Vou verificar.

Certificados renovados, funcionando agora ; )