Automatisierter Dienstprogramm CICD -Bereitstellungsprogramm
Durch kontinuierliche Integration werden von dem Moment an, in dem Sie Ihr Projekt beginnen, häufig automatisch eingesetzt. Durch kontinuierliche Bereitstellung können Sie ab dem Moment, in dem Sie mit Ihrem Projekt beginnen, immer einen Live -Build Ihrer App in einem Container auf einem Remote -Server mit einer sicheren öffentlichen Verbindung haben.
Nach dem Ausführen von Ezinnit wird Ihr WebApp auf Ihrem Server ausgeführt. Live in der HTTPS -Domäne Ihrer Wahl und zukünftige Commits für Ihre Hauptzweig wird automatisch für die Live -App bereitgestellt.
In einem vollständig automatisierten Prozess initialisiert Ezinnit Ihr GitLab -Repository und Ihre Bereitstellungspipeline und installiert dann Dokku und einen GitLab -Läufer auf Ihrem Server. Ihr GitLab -Repository ist so konfiguriert, dass Sie automatisch Commits auf Ihrer Hauptzweigung auf Ihrem Server bereitstellen, wo Ihre App automatisch in einem Container integriert und in Ihrer öffentlichen HTTPS -Domäne bedient wird.
Ezinnit enthält App -Vorlagen für neue Projekte von Django, Flask und Fastapi. Diese Vorlagen sollen völlig neue Projekte beginnen und eine bereitgestellte Working -Site erstellen.
Entwickeln Sie Apps, von denen Sie wissen, dass sie bereitgestellt werden, da sie immer bereitgestellt werden.
zum Herunterladen und Installieren von Ezinnit:
Rennen Sie im Root -Verzeichnis Ihres Projekts:
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit -P ezinnit
bash ezinnit/ezinnit
Sie werden aufgefordert für:
- Gitlab Benutzername
- GitLab Domain (wenn Ihr Konto bei GitLab.com ist, dann ist die GitLab -Domain
gitlab.com ) - Gitlab Personal Access Token
- App -Name (wird auch zu Ihrem Gitlab -Repository -Namen)
- IP -Adresse Ihres Remote -Servers
- Die Domain oder Subdomain, die Sie auf Ihre neue App verweisen möchten, zum Beispiel:
mynewapp.mydomain.com - E -Mail -Adresse, die zur Registrierung bei LetSencrypt verwendet werden soll
- Optionale App -Vorlage: Django, Flask oder Fastapi
Anforderungen:
- Eine virtuelle Python -Umgebung mit installierter App (oder um ein Django -Projekt von Grund auf neu zu erstellen, siehe unten von Readme)
- Git
- Ein GitLab -Konto (GitLab.com -Konten müssen überprüft werden, um GitLab -Läufer zu verwenden, aber die Überprüfung ist kostenlos)
- Ein Server, der Ubuntu 18.04/20.04/22.04 erstellt, wie ein digitales Ozeantröpfchen erstellt wird
- Der SSH -Schlüssel Ihrer lokalen Maschine, der in GitLab registriert ist
- Der SSH -Schlüssel Ihrer lokalen Maschine wurde zu den zulässigen Hosts Ihres neuen Servers hinzugefügt (Digital Ocean Tutorial)
- Damit Ihre Domain funktioniert, benötigen Sie einen DNS "A", der Ihre Domain auf Ihre Server -IP -Adresse verweist (erstellen Sie den DNS "a" -Ergebnis, bevor Sie Ezinnit ausführen).
Warnung!
- Dieses Skript erstellt neue SSH -Tasten auf dem Remote -Server!
- Wenn Sie eine App -Vorlage auswählen, schreibt Ezinnit über Dateien, einschließlich Ihrer Procfile, Settings.py, main.py usw., nur die Vorlagen für brandneue Projekte.
Was Ezinnit tut
- Überprüft es ezinnit.config. Wenn es nicht vorhanden ist, werden Sie für die Werte aufgefordert und eine ezinnit.config -Datei erstellt
- Wenn in Ihrem Projektverzeichnis kein .gitignore vorhanden ist, erstellt TopTotal eine .gitignore -Datei
- Fährt das App -Vorlagen -Skript aus, wenn Sie einen ausgewählt haben (Django, Flask und Fastapi sind in dieser Version enthalten)
- Erstellt eine GitLab-Pipeline für die automatisierte Bereitstellung (.gitlab-ci.yml) in Ihrem Projektverzeichnis
- Wenn in Ihrem Projektverzeichnis keine Anforderungen.txt -Datei vorhanden ist, erstellt eine Datei Anforderungen.txt -Datei
- Initialisiert das Git -Repository, setzt die Anfangszweige auf Main, setzt Remote auf ein neues Gitlab -Repository, begeht und drückt nach GitLab
- Ruft das Runner -Token für das neue Repository von GitLab aus
- kopiert ezinnit.config zum Server
- Fährt das Server -Initialisierungsskript auf dem Remote -Server aus, der Folgendes ausführt:
- Erstellt neue SSH -Tasten auf dem Server
- Laden Sie die SSH -Schlüsseln des Servers in das GitLab -Repository hoch
- Dokumentiert und installiert Dokku auf dem Server (dies dauert einige Minuten)
- Erstellt die Dokku -App auf dem Server
- Legt die Domain für die Dokku -App auf dem Server fest
- Legt den Apps -Port auf 80: 5000 auf dem Server fest
- Downloads und erstellt einen GitLab -Läufer auf dem Server
- Registriert den GitLab -Läufer auf dem Server
- Laden und installiert Dokku-LetSencrypt auf dem Server
- Ermöglicht die Verschlüsselung für App auf dem Server mit TLS -Zertifikat von LetSencrypt auf dem Server
- Fügt einen Chron -Job auf dem Server hinzu, um TLS -Zertifikate automatisch zu erneuern
- Für Django, Flask und Fastapi erstellt und leitet es ein Skript:
ezrun , um einen offenen Port zu finden und lokal in der Entwicklungsumgebung zu laufen - Nach Abschluss von Ezinnit beginnt GitLab automatisch mit der Bereitstellung Ihrer App auf Ihrem Server. Ezinnit gibt Ihnen einen Link zu Ihrem neuen Repository, in dem Sie den Bereitstellungsstatus überprüfen können.
Um einen offenen Port zu finden und Django, Flask oder Fastapi Ezinnit Template Apps lokal in der Entwicklungsumgebung auszuführen:
Jetzt und für immer einsetzen
Verwenden Sie Ezinnit, wenn Sie ein neues WebApp -Projekt starten. An der Taste einer Taste beginnt Ihr Projekt mit einem GitLab -Repository, in dem automatisch Haupt Commits für einen Container auf dem Server Ihrer Wahl bereitgestellt werden, wo Ihre App ausgeführt wird und in der Domäne Ihrer Wahl verfügbar ist.
Sie können sich jetzt für die wahre Umgebung entwickeln, für die Ihre App mit sofortigem Feedback darüber bestimmt ist, wie sich Veränderungen auf die Benutzerfreundlichkeit der realen Welt auswirken. Sie wissen sofort, ob Ihre App in einem Container erstellt und wie sie sich auf einem Live -Server verhalten wird.
Die sichere Produktionsumgebung ist die Standardeinstellung, und der Entwicklungsmodus ist die Ausnahme - die Entwicklung der Entwicklung.
Wenn Sie ein Projekt mit Ezinnit beginnen, machen Sie wirklich CICD. Vom ersten Tag an haben Sie mit einer Live -App auf Ihrem eigenen Server auf Ihrer eigenen Domain auf den Boden geschlagen, sodass Sie sich darauf konzentrieren können, was Sie nur tun können.
Um ein Django -Projekt von Grund auf neu zu starten:
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