Prefácio
Pois bem, eu possuo dois repositórios, Nettotech (meu curriculo online) e a wiki.nettotech.com.br (aonde vai parar essas notas que estou criando), porém até agora, eles estão na minha máquina pessoal, ou seja, sempre que ela desliga, tchau tchau site, entretanto, como estou começando a querer aparecer mais midiaticamente, preciso que elas fiquem fulltime online.
Aluguei uma VPS e queria que, sempre que eu desse um commit, subir essa atualização para a VPS, então partiu?
Configurando o deploy no projeto
Bom, primeira coisa que fiz, foi criar no meu projeto/repositório o arquivo no caminho:
.github/workflows/deploy.yml
Vibecodando, foi gerado a seguinte configuração:
name: Deploy to VPS
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
port: ${{ secrets.VPS_SSH_PORT }}
script: |
cd /home/usuario/NettoTech
git pull origin main
Se fosse para passar meu parecer do código, posso dizer que é bem simples de entender o que está ocorrendo, sendo possível acrescentar muitos passos caso necessário, porém, uma coisa que achei legal de se entender, é que:
O GitHub, oferece dentro do 'Settings' a aba 'Secrets and variables'
Sendo dai que será buscado o ${{ secrets.VPS_HOST }}, o que eu achei muito legal, pois percebi que o GitHub não é só para 'Versionamento' do [[GitHub]] e tenho que aprender muito mais, assuntos como 'PR', GitHub Labs e etc.
Ainda assim, prosseguindo.
Criação da chave pública SSH
No seu ambiente, é importante criar um par de chaves dedicado para o deploy, então prosseguimos com o comando:
ssh-keygen -t ed25519 -C "github-deploy" -f ~/.ssh/github_deploy
- Quando for solicitado a 'passphrase', deixe em branco e pressione Enter Para não possuir senha (para a automação).
- Copie a chave que aparecerá no:
cat ~/.ssh/github_deploy.pub
Depois com essa chave criada, prossegui com a criação da pastas e colei dentro do arquivo 'authorized_keys' o que havia copiado anteriormente:
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
- Não preciso explicar como salvar né?, bom, é: Ctrl + O, Enter, Ctrl + X
Importante, ajustar a permissão da pasta e do arquivo:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Adicionado os Secrets no GitHub
Bom, primeiro passo é copiar a chave SSH
cat ~/.ssh/github_deploy
Seguindo o arquivo deploy.yml, acesse seu repositório pressione o botão: 'New repository secret':
Informe o no 'name', o que você descreveu, na variável: ${{ secrets.VPS_SSH_KEY }}
e depois cole dentro do 'Secret' o que você copiou do comando acima.
Assim prossiga com 'VPS_HOST', 'VPS_USER', 'VPS_SSH_PORT'
Dessa forma, qualquer Commit realizado, aparecerá uma 'workflow' dentro de 'Actions'
e conseguimos acessar dentro deles, para avaliar como foi o processo:
Com isso, já ganho 1+ na Skilltree de DevOps, CI/CD :D
Comentários
Postar um comentário