Utilitaire de déploiement CICD automatisé
L'intégration continue signifie qu'à partir du moment où vous commencez votre projet, les engagements fréquents à la main sont automatiquement déployés. Le déploiement continu signifie qu'à partir du moment où vous commencez votre projet, vous avez toujours une version en direct de votre application dans un conteneur sur un serveur distant avec une connexion publique sécurisée.
Après avoir exécuté Ezinnit, votre WebApp s'exécutera sur votre serveur, en direct sur le domaine HTTPS de votre choix et Future Commits to Votre branche principale se déploiera automatiquement de l'application en direct.
Dans un processus complètement automatisé, Ezinnit initialise et pousse votre référentiel GitLab et votre pipeline de déploiement, puis installe Dokku et un coureur GitLab sur votre serveur. Votre référentiel GitLab est configuré pour déployer automatiquement tous les engagements dans votre branche principale sur votre serveur, où votre application est automatiquement construite dans un conteneur et a servi dans votre domaine HTTPS public.
Ezinnit comprend des modèles d'applications pour les nouveaux projets Django, Flask et Fastapi. Ces modèles sont destinés à démarrer complètement de nouveaux projets et à créer un site de travail déployé.
Développez des applications que vous connaissez déployer, car elles sont toujours déployées.
Pour télécharger et installer Ezinnit:
Dans le répertoire racine de votre projet, exécutez:
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit -P ezinnit
bash ezinnit/ezinnit
Vous serez invité à:
- nom d'utilisateur gitlab
- Domaine Gitlab (si votre compte est avec gitlab.com, alors le domaine Gitlab est
gitlab.com ) - Jeton d'accès personnel Gitlab
- Nom de l'application (devient également votre nom de référentiel GitLab)
- Adresse IP de votre serveur distant
- Le domaine ou le sous-domaine que vous souhaitez pointer vers votre nouvelle application, par exemple:
mynewapp.mydomain.com - Adresse e-mail à utiliser pour s'inscrire auprès de LETSENCYPT
- Modèle d'application en option: Django, Flask ou Fastapi
exigences:
- Un environnement virtuel Python avec votre application installée (ou pour faire un projet Django à partir de zéro, voir en bas de Readme)
- git
- Un compte Gitlab (les comptes Gitlab.com doivent être vérifiés pour utiliser les coureurs Gitlab, mais la vérification est gratuite)
- un serveur exécutant Ubuntu 18.04 / 20.04 / 22.04 Comment créer une gouttelet de l'océan numérique
- La clé SSH de votre machine locale enregistrée sur GitLab
- La clé SSH de votre machine locale a ajouté aux hôtes autorisés de votre nouvel serveur (tutoriel numérique océan)
- Pour que votre domaine fonctionne, vous avez besoin d'un enregistrement DNS "A" pointant votre domaine vers l'adresse IP de votre serveur (créez l'enregistrement DNS "A" avant d'exécuter Ezinnit)
avertissement!
- Ce script crée de nouvelles touches SSH sur le serveur distant!
- Si vous sélectionnez un modèle d'application, Ezinnit écrira des fichiers, y compris votre ProCFile, SetfitS.py, Main.py, etc. Utilisez uniquement les modèles pour les nouveaux projets.
ce que fait ezinnit
- vérifie ezinnit.config, s'il n'existe pas, il vous invite aux valeurs et crée un fichier ezinnit.config
- S'il n'y a pas de .gitignore dans votre répertoire de projet, utilise Toptotal pour créer un fichier .gitignore
- Exécute le script de modèle d'application si vous en avez sélectionné un (Django, Flask et Fastapi sont inclus dans cette version)
- Crée un pipeline Gitlab pour le déploiement automatisé (.gitlab-ci.yml) dans votre répertoire de projet
- S'il n'y a pas de fichier exigence.txt dans votre répertoire de projet, crée un fichier exigence.txt
- Initialise le référentiel GIT, définit la branche initiale sur Main, définit la télécommande sur le nouveau référentiel GitLab, s'engage et pousse vers GitLab
- Obtient le jeton Runner pour le nouveau référentiel de GitLab
- copies ezinnit.config au serveur
- Exécute le script d'initialisation du serveur sur le serveur distant, qui fait ce qui suit:
- Crée de nouvelles touches SSH sur le serveur
- Téléchargez les touches SSH du serveur vers le référentiel GitLab
- Télécharges et installe Dokku sur serveur (cela prend quelques minutes)
- Crée l'application dokku sur le serveur
- Définit le domaine de l'application Dokku sur le serveur
- Définit le port d'applications sur 80: 5000 sur le serveur
- Téléchargements et crée un coureur GitLab sur le serveur
- enregistre le coureur Gitlab sur le serveur
- Télécharges et installe Dokku-Lesencrypt sur le serveur
- Active le cryptage pour l'application sur le serveur avec un certificat TLS à partir de LetSencrypt sur le serveur
- Ajoute un travail chron sur serveur pour renouveler automatiquement les certificats TLS
- Pour Django, Flask et Fastapi, crée et exécute un script:
ezrun pour trouver un port ouvert et exécuter localement dans un environnement de développement - À la fin d'Ezinnit, GitLab commencera automatiquement à déployer votre application sur votre serveur. Ezinnit vous donnera un lien vers votre nouveau référentiel où vous pouvez vérifier l'état de déploiement.
Pour trouver un port ouvert et exécuter Django, Flask ou Fastapi Ezinnit Modèle Applications localement dans un environnement de développement:
Déployer maintenant et pour toujours
Utilisez ezinnit chaque fois que vous démarrez un nouveau projet WebApp. À la poussée d'un bouton, votre projet commencera par un référentiel GitLab qui déploie automatiquement les commits principaux dans un conteneur sur le serveur de votre choix, où votre application est en cours d'exécution et disponible dans le domaine de votre choix.
Vous pouvez désormais développer pour le véritable environnement auquel votre application est destinée à des commentaires instantanés sur l'impact des changements sur la convivialité du monde réel. Vous savez instantanément si votre application sera construite dans un conteneur et comment il se comportera sur un serveur en direct.
L'environnement de production sécurisé est la valeur par défaut, et le mode de développement est l'exception - rendre le développement sûr.
Lorsque vous commencez un projet avec Ezinnit, vous faites vraiment CICD. Dès le premier jour, vous avez réussi à fonctionner avec une application en direct sur votre propre serveur sur votre propre domaine, afin que vous puissiez vous concentrer sur ce que vous pouvez faire.
Pour démarrer un projet Django à partir de zéro:
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