quarta-feira, 22 de setembro de 2021

Como publicar um novo ambiente do Laravel no Dreamhost


Objetivo é disponibilizar 3 ambientes para aplicação Laravel no Dreamhost, sendo eles:

1 - ideducar.idevs.net - Ambiente de produção
Base de código: Branch main no repositório git

2 - ideducar-teste.idevs.net - Utilizado para validação/homologação de novos releases com o usuário/cliente
Base de código: Branch test no repositório git, em dado momento do tempo.

3 - ideducar-dev.idevs.net - Utilizado para desenvolvimento / integração contínua
Base de código: Branch test no repositório git, a qualquer momento.

Criação dos sites no painel do Dreamhost

Antes de tudo é necessário criar manualmente os três sites/subdomínios no Painel de controle do Dreamhost

Utilizaremos o mesmo usuário para os três sites, neste caso ideducar.

Este usuário precisa também estar com o acesso SSH ativado.

Configuração do SSH para login sem senha

Aqui vamos realizar a configuração necessária para que o computado que você utiliza no desenvolvimento, normalmente a sua estação de trabalho, consiga executar comandos SSH no servidor Dreamhost sem a necessidade de digitação de senha. Isso será necessário para automatizar o deploy usando o Envoy, mais adiante.

Verificar se você já possui chave SSH criada na sua estação de trabalho:

cat ~/.ssh/id_rsa.pub

Caso o arquivo não exista, criar uma nova chave:

ssh-keygen -t rsa -b 4096 -C "[seu e-maill]"

Em seguida, copiar a chave pública para a conta do Dreamhost

cat ~/.ssh/id_rsa.pub | ssh ideducar@ftp.idevs.net "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Concluído o procedimento acima, testar o acesso SSH sem senha:

ssh ideducar@ftp.idevs.net

O resultado deverá ser um console shell no servidor do Dreamhost

Configuração para acessar o repositório github sem senha

A conta que hospeda o site, neste caso, ideducar, precisa ser capaz de interagir  com o repositório Github sem a dgitação de senha. Agora precisamos criar um par de chaves no Dreamhost e configurar a conta Github para permitir a utilização  dessa chave SSH

Acessar o console do Dreamhost via SSH:

ssh ideducar@ftp.idevs.net

Criar o par de chaves SSH:

ssh-keygen -t rsa -b 4096 -C "[seu e-maill github]"

No comando acima, aceitar todos os defaults (sem senha)

Agora entre na sua conta Github, no canto esqueto da página, clique na foto do perfil e escolha Settings.

Na barra à esquerda, escolha SSH and GPG keys. Na tela que se abre, clique no botão New SSH key

Digite o título de forma bem descritiva, informando por exemplo: Dreamhost - ideducar@beatty - marcus.moreira@gmail.com. No campo key, cole o conteúdo da chave pública obtida com cat ~/.ssh/id_rsa.pub

Após adicionar a chave do Dreamhost no Github, teste com o seguinte comando:

[beatty]$ ssh -T git@github.com

O resultado deverá ser algo como:

Hi marcusrox! You've successfully authenticated, but GitHub does not provide shell access.

Preparando o ambiente para  o primeiro deploy

ssh ideducar@ftp.idevs.net

[beatty]$ cd ideducar-teste.idevs.net/

[beatty]$ git clone git@github.com:marcusrox/ideducar.git

Criar os bancos de dados no MySQL:

ideducar

ideducar_teste

ideducar_dev

Instalando e configurando o Envoy

# composer global require laravel/envoy

Para deploy em produção:

# cd ideducar/deploy
# envoy run deploy


Realizando primeiro deploy nos ambientes

Para o caso do Dreamhost, a primeira providência a ser tomada é a instalação do Composer, usando  o seguinte procedimento: Installing Composer overview – DreamHost Knowledge Base

A forma recomendada é instalar globalmente, na conta, já que teremos diversos ambientes na mesma conta, poderemos ter somente uma instalação do composer compartilhada entre eles:

[server]$ cd ~

[server]$ mkdir -p ~/.php/composer

[server]$ cd ~/.php/composer

[server]$ curl -sS https://getcomposer.org/installer | php

[server]$ mv composer.phar composer

[server]$ chmox a+x composer

Adicionar a linha seguinte ao ~./bach_profile

export PATH=/home/username/.php/composer:$PATH

Carregar a nova configuração do .bash_profile
[server]$ . ~/.bash_profile
O composer está instalado e você pode verificar com o seguinte comando:
[server]$ composer -v

Após instalado o composer, realizar os passos para configuração da web application

[server]$ cd /home/[username]/[domain]

[server]$ git clone git@github.com:marcusrox/ideducar.git

[server]$ cd ideducar

[server]$ composer install

[server]$ cp .env.production .env

Após o passo acima, fazer os ajustes necessários no .env, especialmente na conexão ao banco de dados, que deve ser criado vazio. Tendo criado o banco de dados, prosseguir com o migrate

[server]$ php artisan migrate

[server]$ php artisan db:seed

[server]$ php artisan storage:link

Após esses passos, aplicação WEB já deverá estar acessível. O delploy inicial foi concluído.

Realizando deploy de atualização incremental no ambiente


Descrever


CONTINUAR...

Referências:

Laravel Envoy - Laravel - The PHP Framework For Web Artisans

Como realizar o deploy de uma aplicação Laravel usando o Envoy - YouTube

Simple Envoy script for Laravel deploy (github.com)

papertank/envoy-deploy: Laravel Envoy Deployment (github.com)

Nenhum comentário:

Postar um comentário

O que significa o erro "Execução de scripts foi desabilitada neste sistema"?

  O que significa o erro "Execução de scripts foi desabilitada neste sistema"? Execute Set-ExecutionPolicy -ExecutionPolicy Remote...