連續集成意味著,從您開始項目的那一刻起,經常投入到MAIN會自動部署。連續部署意味著,從開始項目的那一刻起,您就始終在具有安全的公共連接的遠程服務器上實時構建應用程序的實時構建。
運行ezinnit後,您的WebApp將在您的服務器上運行,現場直播您選擇的HTTPS域,並且將來對您的主要分支的承諾將自動部署到實時應用程序。
在一個完全自動化的過程中,Ezinnit初始化並推動您的GitLab存儲庫和部署管道,然後在服務器上安裝Dokku和GitLab Runner。您的gitlab存儲庫被配置為自動向您的主分支部署到服務器的任何提議,在該分支機構中,您的應用程序是在容器中自動構建並在您的公共HTTPS域中提供的。
Ezinnit包括用於新Django,燒瓶和FastApi項目的應用程序模板。這些模板旨在啟動全新的項目,並創建一個部署的工作網站。
開發您知道將部署的應用程序,因為它們總是部署的。
下載並安裝ezinnit:
在您項目的根目錄中,運行:
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit -P ezinnit
bash ezinnit/ezinnit
您將被提示:
- gitlab用戶名
- gitlab域(如果您的帳戶是gitlab.com,則gitlab域是
gitlab.com ) - Gitlab個人訪問令牌
- 應用名稱(也成為您的GitLab存儲庫名稱)
- 遠程服務器的IP地址
- 您希望指向新應用的域或子域,例如:
mynewapp.mydomain.com - 用於在Letsencrypt註冊的電子郵件地址
- 可選應用模板:Django,燒瓶或FastApi
要求:
- 安裝了應用程序的Python虛擬環境(或從頭開始製作Django項目,請參見ReadMe的底部)
- git
- GitLab帳戶(Gitlab.com帳戶必須驗證以使用GitLab跑步者,但驗證是免費的)
- 運行Ubuntu 18.04/20.04/22.04如何創建數字海洋液滴的服務器
- 您當地的機器的SSH密鑰在GitLab上註冊
- 您當地機器的SSH鍵添加到新服務器的允許主機(數字海洋教程)
- 要使您的域工作,您需要一個DNS“ A”記錄,將您的域指向服務器IP地址(在運行Ezinnit之前創建DNS”記錄)
警告!
- 該腳本在遠程服務器上創建新的SSH鍵!
- 如果選擇一個應用模板,則Ezinnit將在文件上寫入,包括您的procfile,settings.py,main.py等。僅將模板用於全新項目。
Ezinnit做了什麼
- 檢查ezinnit.config,如果不存在,它會提示您獲取值並創建ezinnit.config文件
- 如果您的項目目錄中沒有.gitignore,請使用TopTotal來創建.gitignore文件
- 運行應用模板腳本如果您選擇了一個(此版本中包括Django,Blask和FastApi)
- 在項目目錄中創建用於自動部署的GitLab管道(.gitlab-ci.yml)
- 如果您的項目目錄中沒有要求。
- 初始化GIT存儲庫,將初始分支設置為Main,將遙控器設置為新的GitLab存儲庫,並將其推向Gitlab
- 從gitlab獲取新存儲庫的跑步者令牌
- 將ezinnit.config複製到服務器
- 在遠程服務器上運行服務器初始化腳本,該腳本執行以下操作:
- 在服務器上創建新的SSH鍵
- 將服務器的SSH鍵上傳到GitLab存儲庫
- 下載並在服務器上安裝Dokku(這需要幾分鐘)
- 在服務器上創建Dokku應用
- 在服務器上設置Dokku應用的域
- 將應用程序端口設置為服務器上的80:5000
- 下載並在服務器上創建GitLab跑步者
- 在服務器上註冊GitLab Runner
- 下載並在服務器上安裝Dokku-letsencrypt
- 從服務器上使用TLS證書在服務器上啟用對服務器上的應用程序進行加密
- 在服務器上添加Chron作業以自動續訂TLS證書
- 對於Django,燒瓶和Fastapi,創建並運行一個腳本:
ezrun找到一個開放端口並在開發環境中本地運行 - 當Ezinnit完成時,GitLab將自動開始將應用程序部署到服務器。 Ezinnit將為您提供指向新存儲庫的鏈接,您可以在其中檢查部署狀態。
在開發環境中找到一個開放端口並運行Django,燒瓶或Fastapi Ezinnit模板應用程序:
現在和永遠部署
每當啟動新的WebApp項目時,請使用Ezinnit。按下按鈕,您的項目將以GitLab存儲庫開頭,該存儲庫自動部署主要投入到您選擇的服務器上的容器,您的應用程序正在運行並在您選擇的域中可用。
現在,您可以為您的應用程序的真實環境開發,以即時反饋有關變化將如何影響現實世界的可用性。您立即知道您的應用程序是否會在容器中構建,以及它在實時服務器上的行為。
安全的生產環境是默認環境,開發模式是例外 - 使開發安全。
當您使用Ezinnit啟動項目時,您確實在做CICD。從第一天起,您就可以在自己的域上使用自己的服務器上的實時應用程序運行,因此您可以專注於只能做什麼。
從頭開始啟動Django項目:
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)