Utilitário de implantação automatizado de CICD
A integração contínua significa que, a partir do momento em que você inicia seu projeto, as compromissos frequentes com o principal são implantados automaticamente. A implantação contínua significa que, desde o momento em que você inicia seu projeto, você sempre tem uma construção ao vivo do seu aplicativo em um contêiner em um servidor remoto com uma conexão pública segura.
Depois de executar o Ezinnit, seu WebApp estará em execução no seu servidor, ao vivo no domínio HTTPS de sua escolha e as confirmações futuras com sua filial principal implantarão automaticamente no aplicativo LIVE.
Em um processo completamente automatizado, o Ezinnit inicializa e empurra o repositório do GitLab e o pipeline de implantação e instala o Dokku e um Runner Gitlab no seu servidor. Seu repositório GitLab está configurado para implantar automaticamente qualquer compromisso com sua ramificação principal no servidor, onde seu aplicativo é incorporado automaticamente em um contêiner e servido no domínio HTTPS público.
O Ezinnit inclui modelos de aplicativos para novos projetos de Django, Flask e FASTAPI. Esses modelos destinam -se a iniciar projetos completamente novos e criar um site de trabalho implantado e implantado.
Desenvolva aplicativos que você conhece serão implantados, porque eles sempre são implantados.
Para baixar e instalar o ezinnit:
No diretório raiz do seu projeto, execute:
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit -P ezinnit
bash ezinnit/ezinnit
Você será solicitado para:
- Nome de usuário do Gitlab
- Domínio GitLab (se sua conta estiver no gitlab.com, o domínio GitLab é
gitlab.com ) - Token de acesso pessoal do Gitlab
- Nome do aplicativo (também se torna seu nome de repositório GitLab)
- Endereço IP do seu servidor remoto
- O domínio ou subdomínio que você deseja apontar para o seu novo aplicativo, por exemplo:
mynewapp.mydomain.com - Endereço de e -mail a ser usado para se registrar com LetSencrypt
- Modelo de aplicativo opcional: Django, Flask ou FASTAPI
Requisitos:
- Um ambiente virtual do Python com seu aplicativo instalado (ou para fazer um projeto Django a partir do zero, consulte a parte inferior do ReadMe)
- git
- Uma conta GitLab (as contas gitlab.com devem ser verificadas para usar os corredores do GitLab, mas a verificação é gratuita)
- Um servidor executando o Ubuntu 18.04/20.04/22.04 Como criar uma gota de oceano digital
- A chave SSH da sua máquina local registrada no Gitlab
- A chave SSH da sua máquina local adicionada aos hosts permitidos do seu novo servidor (tutorial de oceano digital)
- Para que seu domínio funcione, você precisa de um registro DNS "A" apontando seu domínio para o endereço IP do servidor (Crie o DNS "A" Record antes de executar o ezinnit)
aviso!
- Este script cria novas teclas SSH no servidor remoto!
- Se você selecionar um modelo de aplicativo, o ezinnit gravará os arquivos, incluindo o seu procfile, Settings.py, main.py etc. usará apenas os modelos para novos projetos.
O que Ezinnit faz
- Verifica o ezinnit.config, se não existir, ele solicita os valores e cria um arquivo ezinnit.config
- Se não houver .gitignore no diretório do projeto, usa o TopTotal para criar um arquivo .gitignore
- Executa o script de modelo de aplicativo se você selecionou um (Django, Flask e FASTAPI estão incluídos nesta versão)
- Cria um pipeline GitLab para implantação automatizada (.gitlab-ci.yml) no seu diretório de projeto
- Se não houver arquivo requisitos.txt no diretório do seu projeto, cria um arquivo requisitos.txt
- Inicializa o repositório Git, define a ramificação inicial como principal, define remota para o novo repositório GitLab, comete e empurra para o GitLab
- pega o token do corredor para o novo repositório do Gitlab
- cópias ezinnit.config para servidor
- Executa o script de inicialização do servidor no servidor remoto, que faz o seguinte:
- cria novas chaves ssh no servidor
- Carrega as chaves SSH do servidor para o repositório GitLab
- Downloads e instala Dokku no servidor (isso leva alguns minutos)
- Cria um aplicativo Dokku no servidor
- Define o domínio para o aplicativo Dokku no servidor
- Define a porta de aplicativos para 80: 5000 no servidor
- Downloads e cria um corredor GitLab no servidor
- Registra o GitLab Runner no servidor
- Downloads e instala o Dokku-LetSencrypt no servidor
- Ativa a criptografia para aplicativo no servidor com o certificado TLS da LetSencrypt no servidor
- Adiciona um trabalho de cron no servidor para renovar automaticamente os certificados TLS
- Para Django, Flask e FASTAPI, cria e executa um script:
ezrun para encontrar uma porta aberta e correr localmente no ambiente de desenvolvimento - Quando o Ezinnit é concluído, o GitLab começará automaticamente a implantar seu aplicativo no seu servidor. O Ezinnit fornecerá um link para o seu novo repositório, onde você pode verificar o status da implantação.
Para encontrar uma porta aberta e executar aplicativos de modelo Django, Flask ou FASTAPI Ezinnit localmente no ambiente de desenvolvimento:
Implantar agora e para sempre
Use Ezinnit sempre que iniciar um novo projeto do WebApp. Ao pressionar um botão, seu projeto começará com um repositório GitLab que implanta automaticamente as principais comprometimentos de um contêiner no servidor de sua escolha, onde seu aplicativo está em execução e está disponível no domínio de sua escolha.
Agora você pode se desenvolver para o ambiente verdadeiro que seu aplicativo se destina com feedback instantâneo sobre como as mudanças afetarão a usabilidade do mundo real. Você sabe instantaneamente se o seu aplicativo será construído em um contêiner e como ele se comportará em um servidor ao vivo.
O ambiente de produção seguro é o padrão e o modo de desenvolvimento é a exceção - tornando o desenvolvimento seguro.
Quando você inicia um projeto com o Ezinnit, você está realmente fazendo CICD. Desde o primeiro dia, você pressiona o chão com um aplicativo ao vivo em seu próprio servidor em seu próprio domínio, para poder se concentrar no que somente pode fazer.
Para iniciar um projeto de Django do zero:
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