Utilidad de implementación de CICD automatizada
La integración continua significa que desde el momento en que comience su proyecto, los compromisos frecuentes a Main se implementan automáticamente. La implementación continua significa que desde el momento en que comience su proyecto, siempre tiene una compilación en vivo de su aplicación en un contenedor en un servidor remoto con una conexión pública segura.
Después de ejecutar Ezinnit, su aplicación web se ejecutará en su servidor, en vivo en el dominio HTTPS de su elección y los compromisos futuros con su rama principal implementarán automáticamente en la aplicación en vivo.
En un proceso completamente automatizado, Ezinnit inicializa y empuja su repositorio de GitLab y tuberías de implementación y luego instala Dokku y un corredor GitLab en su servidor. Su repositorio de GitLab está configurado para implementar automáticamente cualquier compromiso en su rama principal en su servidor, donde su aplicación se construye automáticamente en un contenedor y se sirve en su dominio HTTPS público.
Ezinnit incluye plantillas de aplicaciones para nuevos proyectos Django, Flask y Fastapi. Estas plantillas están destinadas a comenzar proyectos completamente nuevos y crear un sitio de trabajo implementado.
Desarrolle aplicaciones que sabe que se implementará, porque siempre están implementadas.
para descargar e instalar Ezinnit:
En el directorio raíz de su proyecto, ejecute:
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit -P ezinnit
bash ezinnit/ezinnit
Se le solicitará:
- nombre de usuario de gitlab
- Dominio GITLAB (si su cuenta está con gitlab.com, entonces el dominio gitlab es
gitlab.com ) - token de acceso personal de gitlab
- Nombre de la aplicación (también se convierte en su nombre de repositorio de gitlab)
- Dirección IP de su servidor remoto
- El dominio o subdominio que desea señalar su nueva aplicación, por ejemplo:
mynewapp.mydomain.com - Dirección de correo electrónico para usar para registrarse con Letsencrypt
- Plantilla de aplicación opcional: Django, Flask o Fastapi
Requisitos:
- Un entorno virtual de Python con su aplicación instalada (o para hacer un proyecto de Django desde cero, ver fondo de ReadMe)
- git
- Una cuenta de GitLab (las cuentas de gitlab.com deben verificarse para usar corredores de gitlab, pero la verificación es gratuita)
- Un servidor que ejecuta Ubuntu 18.04/20.04/22.04 cómo crear una gota de océano digital
- La tecla SSH de su máquina local registrada en gitlab
- La tecla SSH de su máquina local se agregó a los hosts permitidos de su nuevo servidor (Tutorial de Océano Digital)
- Para que su dominio funcione, necesita un registro DNS "A" que apunta a su dominio a la dirección IP de su servidor (cree el registro DNS "A" antes de ejecutar Ezinnit)
¡advertencia!
- ¡Este script crea nuevas teclas SSH en el servidor remoto!
- Si selecciona una plantilla de aplicación, Ezinnit escribirá sobre archivos, incluidos su procfile, settings.py, main.py, etc. solo use las plantillas para proyectos nuevos.
Lo que hace Ezinnit
- Comprueba ezinnit.config, si no existe, le solicita los valores y crea un archivo ezinnit.config
- Si no hay .Gitignore en su directorio de proyecto, usa TopTotal para crear un archivo .gitignore
- Ejecuta el script de plantilla de la aplicación si ha seleccionado uno (Django, Flask y Fastapi están incluidos en esta versión)
- Crea una tubería GITLAB para la implementación automatizada (.Gitlab-ci.yml) en su directorio de proyectos
- Si no hay requisitos.
- Inicializa el repositorio de Git, establece la rama inicial en Main, establece remoto en el nuevo repositorio de GitLab, compromete y empuja a GitLab
- Obtiene el token de corredor para el nuevo repositorio de GitLab
- copias ezinnit.config al servidor
- Ejecuta el script de inicialización del servidor en el servidor remoto, que hace lo siguiente:
- Crea nuevas claves SSH en el servidor
- Sube las claves SSH del servidor para el repositorio de GitLab
- descarga e instala Dokku en el servidor (esto lleva unos minutos)
- Crea la aplicación Dokku en el servidor
- Establece el dominio para la aplicación Dokku en el servidor
- Establece el puerto de aplicaciones a 80: 5000 en el servidor
- descarga y crea un corredor de gitlab en el servidor
- registra el corredor de gitlab en el servidor
- Descarga e instala Dokku-LetsenCrypt en el servidor
- habilita el cifrado para la aplicación en el servidor con el certificado TLS de LetsEnCrypt en el servidor
- Agrega un trabajo de Chron en el servidor para renovar automáticamente los certificados TLS
- Para Django, Flask y Fastapi, crea y ejecuta un script:
ezrun para encontrar un puerto abierto y ejecutar localmente en entorno de desarrollo - Cuando Ezinnit se complete, GitLab comenzará a implementar automáticamente su aplicación en su servidor. Ezinnit le dará un enlace a su nuevo repositorio donde puede verificar el estado de implementación.
Para encontrar un puerto abierto y ejecutar aplicaciones de plantilla Django, Flask o Fastapi Ezinnit localmente en el entorno de desarrollo:
Desplegarse ahora y para siempre
Use Ezinnit cada vez que comience un nuevo proyecto webapp. Con la presentación de un botón, su proyecto comenzará con un repositorio GITLAB que implementa automáticamente los compromisos principales en un contenedor en el servidor de su elección, donde su aplicación se ejecuta y está disponible en el dominio de su elección.
Ahora puede desarrollar para el entorno verdadero para el entorno verdadero para su aplicación con comentarios instantáneos sobre cómo los cambios afectarán la usabilidad del mundo real. Sabes instantáneamente si tu aplicación se desarrollará en un contenedor y cómo se comportará en un servidor en vivo.
El entorno de producción seguro es el valor predeterminado, y el modo de desarrollo es la excepción, lo que hace que el desarrollo sea seguro.
Cuando comienzas un proyecto con Ezinnit, realmente estás haciendo CICD. Desde el primer día, se pone en marcha con una aplicación en vivo en su propio servidor en su propio dominio, para que pueda concentrarse en lo que solo usted puede hacer.
Para comenzar un proyecto Django desde cero:
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit%20template%20scripts/django.innit -P ezinnit
bash ezinnit/django.innit
John Hewitt
Robert Carroll