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 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
Instalar SSH, nginx, certbot
- (Si es necesario) Crear VM(k) señora
- DO VM + Agregar a lista de VMs existentes
- Instalar SSH, python, pip
- sacar passwd login de ssh
- iptables que dropee todo el trafico que no sea ssh y que no sea de VM nginx (ip?)
- 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
- Configurar subdominios (DO) para señoras
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)