지속적인 통합은 프로젝트를 시작하는 순간부터 자주 커밋이 자동으로 배포된다는 것을 의미합니다. 지속적인 배포는 프로젝트를 시작하는 순간부터 항상 안전한 공개 연결을 갖춘 원격 서버의 컨테이너에 앱의 실시간 빌드를 가지고 있음을 의미합니다.
ezinnit을 실행하면 WebApp이 서버에서 실행되고 선택한 HTTPS 도메인에서 실시간으로 실행되며 Main Branch에 향후 커밋이 자동으로 라이브 앱에 배포됩니다.
완전히 자동화 된 프로세스에서 Ezinnit은 Gitlab 리포지토리 및 배포 파이프 라인을 초기화하고 밀고 서버에 Dokku 및 Gitlab 러너를 설치합니다. Gitlab 저장소는 원시 지점에 커밋을 자동으로 배포하도록 구성되어 있으며, 여기서 앱은 자동으로 컨테이너로 내장되어 공개 HTTPS 도메인에서 제공됩니다.
Ezinnit에는 새로운 장고, 플라스크 및 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, Flask 또는 Fastapi
요구 사항 :
- 앱이 설치된 파이썬 가상 환경 (또는 처음부터 Django 프로젝트를 만들려면 readme 하단 참조)
- git
- gitlab 계정 (gitlab.com 계정은 gitlab 러너를 사용하도록 확인해야하지만 확인은 무료입니다)
- Ubuntu를 실행하는 서버 18.04/20.04/22.04 디지털 오션 액적 생성 방법
- 로컬 머신의 SSH 키가 gitlab에 등록되었습니다
- 로컬 머신의 SSH 키가 새 서버의 허용 호스트 (Digital Ocean Tutorial)에 추가되었습니다.
- 도메인이 작동하려면 DNS "A"도메인을 서버 IP 주소를 가리키는 레코드가 필요합니다 (DNS 작성 "A"Ezinnit을 실행하기 전의 레코드).
경고!
- 이 스크립트는 원격 서버에서 새로운 SSH 키를 만듭니다!
- 앱 템플릿을 선택하면 ezinnit은 Procfile, Settings.py, main.py 등을 포함한 파일에 작성됩니다. 새로운 프로젝트에는 템플릿을 사용합니다.
Ezinnit가하는 일
- ezinnit.config 확인, 존재하지 않으면 값을 유발하고 ezinnit.config 파일을 만듭니다.
- 프로젝트 디렉토리에 .gitignore가없는 경우 toptotal을 사용하여 .gitignore 파일을 만듭니다.
- 하나를 선택한 경우 앱 템플릿 스크립트를 실행합니다 (Django, Flask 및 Fastapi는이 릴리스에 포함되어 있습니다)
- 프로젝트 디렉토리에서 자동 배포 (.gitlab-ci.yml)를위한 gitlab 파이프 라인 생성
- 프로젝트 디렉토리에 요구 사항이없는 경우 요구 사항을 생성합니다 .txt 파일
- git 리포지토리 초기화, 초기 분기를 메인으로 설정하고 새로운 Gitlab 리포지토리로 원격 설정, gitlab로 커밋하고 푸시합니다.
- Gitlab에서 새로운 저장소의 러너 토큰을 얻습니다.
- ezinnit.config를 서버에 복사합니다
- 원격 서버에서 서버 초기화 스크립트를 실행합니다.
- 서버에서 새로운 SSH 키를 만듭니다
- 서버의 SSH 키를 GitLab 저장소에 업로드합니다
- 서버에서 Dokku를 다운로드하고 설치합니다 (몇 분이 걸립니다)
- 서버에서 Dokku 앱을 만듭니다
- 서버에서 Dokku 앱의 도메인을 설정합니다
- 서버에서 앱 포트를 80 : 5000으로 설정합니다
- 서버에서 gitlab 러너를 다운로드하고 생성합니다
- 서버에 gitlab 러너를 등록합니다
- 서버에서 dokku-letsencrypt를 다운로드하고 설치합니다
- 서버의 letsencrypt에서 TLS 인증서를 사용하여 서버에서 앱 암호화 활성화
- 서버에서 크론 작업을 추가하여 TLS 인증서를 자동으로 갱신합니다.
- Django, Flask 및 Fastapi의 경우 스크립트를 작성하고 실행합니다.
ezrun 열린 포트를 찾고 개발 환경에서 로컬로 운영합니다. - Ezinnit이 완료되면 Gitlab은 자동으로 앱을 서버에 배포하기 시작합니다. Ezinnit은 배포 상태를 확인할 수있는 새 저장소에 대한 링크를 제공합니다.
열린 포트를 찾아서 Django, Flask 또는 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
존 휴이트
로버트 캐롤