Sin descripción

David 06064e2b9f template hace 10 años
roles 4846a8e6c2 leo los host nginx de archivo externo hace 10 años
scripts 06064e2b9f template hace 10 años
templates 5dabde348e rename hace 10 años
web 3fc0dd4bed basic crud rest interface for ansible hace 10 años
README.md 87299836fc subdomains do hace 10 años
create-nginx.yml b20e9394f3 split+señora hace 10 años
create-senora.yml bfc72190b5 ufw hace 10 años
nginx_hosts.yml 4846a8e6c2 leo los host nginx de archivo externo hace 10 años
provision.yml fa804faaaf reestructuro hace 10 años

README.md

Planes


                              +-> | VMs(1)  | ---> | [ (usuario, puerto) ] |
internet ---> | nginx(1+) | --+-> | VMs(..) | ---> | [ (usuario, puerto) ] |
                              +-> | VMs(n)  | ---> | [ (usuario, puerto) ] |

nginx

Tiene que:

  • Crear una ruta subdominio <--> VM:Puerto
  • Conseguir certificado Let's encrypt
  • Renovar certificados

VMs(k)

Tiene que:

  • Tener distintos usuarios(unix) por cliente (señora), distintos $HOME con distintos puertos para backend.
  • Droppear TODO el trafico que no sea de nginx.
  • Backup? por proxy nginx?

Ansible

  • Crear VM nginx
    • DO VM + Agregar a lista de nginx
    • Instalar SSH, nginx, certbot
    • Configurar subdominios (DO) para señoras
    • Configurar subdominios (nginx) para señoras
    • Conseguir certificados para señoras
  • Crear VM(k) señora
    • DO VM + Agregar a lista de VMs existentes
    • Instalar SSH, python, pip
    • sacar passwd login de ssh
    • iptables/ufw que dropee todo el trafico que no sea ssh y que no sea de VM nginx
  • Asignar señora a VM
    • crear usuario señora, con HOME
    • asignarle un puerto disponible a la señora
    • Agregar (señora,VM,puerto) a lista de señoras

Ansible en orden de resolucion

  • Crear VM nginx
    • DO VM + Agregar a lista de nginx (requerido para IP en ufw, dns)
    • Instalar SSH, nginx, certbot
  • (Si es necesario) Crear VM(k) señora
    • DO VM + Agregar a lista de VMs existentes (requerido para dns, subdominio, certificado)
    • Instalar SSH, python, pip
    • sacar passwd login de ssh
    • iptables/ufw que dropee todo el trafico que no sea ssh y que no sea de VM nginx (sigue faltando obtener la whitelist)
  • Asignar señora a VM
    • crear usuario señora, con HOME
    • asignarle un puerto disponible (8000-8100) a la señora
    • Agregar (señora,VM,puerto) a lista de señoras
    • Configurar subdominios (DO) para señoras(http POST "https://api.digitalocean.com/v2/domains/davidventura.com.ar/records" type="A" name="senora" data="1.2.3.4" Authorization:"Bearer $DO_API_TOKEN")
    • Configurar subdominios (nginx) para señoras
    • Conseguir certificados para señoras

Listas/Base de datos

  • Lista de VMs nginx(id,ip)
  • Lista de VMs señoras (id, ip)
  • Lista de señoras (datos personales, VM-señora-id, usuario, puerto)