GitLab CI/CD

Para usuários mais avançados, o GitLab CI/CD (integração contínua/entrega contínua ou implantação contínua) pode implantar automaticamente as alterações de código no seu site Kinsta sempre que um novo commit for enviado para a branch correspondente. Este método permite que você envie continuamente o código para o seu ambiente de produção na Kinsta sem substituir o banco de dados MySQL do WordPress.

Essa configuração permite que você envie o código do seu ambiente local ou do ambiente de teste da Kinsta e tenha um sistema de controle de versão. No exemplo abaixo, configuraremos um ambiente de teste e enviaremos alterações nesse ambiente para o ambiente de produção por meio do GitLab (usando a funcionalidade Mover para produção da Kinsta).

Se você ainda não possui uma conta GitLab, visite a página de registro deles para começar.

Crie um site Kinsta

Para este tutorial, vamos começar criando um novo site vazio na Kinsta, e instalaremos o WordPress mais tarde. Se você já tem um site WordPress Kinsta, você ainda pode seguir os passos neste tutorial para conectar seu site ao GitLab.

No MyKinsta, vá para a página de Sites WordPress. Clique no botão Adicionar site no canto superior direito e selecione Criar novo site no menu suspenso. Selecione a opção Ambiente vazio (Sem WordPress) na janela modal/pop-up e clique no botão Continuar.

Preencha os campos solicitados, clique no botão Continuar para avançar para cada janela, e termine o processo de criação do site.

Criar um site vazio no MyKinsta.
Criar um site vazio no MyKinsta.

Crie um projeto GitLab

Para começar, vá até o GitLab e clique em Create a project para criar um novo repositório para o seu site Kinsta.

Criando um projeto no GitLab.
Criando um projeto no GitLab.

Selecione a opção Blank Project, e preencha os campos Project nameProject slug.

Criar um projeto em branco no GitLab.
Criar um projeto em branco no GitLab.

Para a opção Visibility Level, recomendamos tornar o repositório privado. Como este repositório pode conter plugin premium e código do tema, deixá-lo acessível através da Internet pública permitiria a qualquer um fazer o download dos produtos pelos quais você pagou.

Assim que você terminar de configurar o novo projeto, clique em Create project para continuar.

Configure as chaves SSH

A seguir, você precisará adicionar chaves SSH ao GitLab e MyKinsta para permitir que as duas plataformas se comuniquem.

Adicione a chave pública SSH ao GitLab

Primeiro, faça login no ambiente de produção do seu site Kinsta via SSH e execute o comando cat abaixo para exibir à sua chave pública SSH.

cat ~/.ssh/id_rsa.pub

Sua chave pública deve ser parecida com a abaixo. Mantenha sua janela de linha de comando aberta por enquanto, e volte para o GitLab em seu navegador.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7zdjwd6UIUJ5t4YnXNi6yhdHgrvIV2xgjvJ3592wd1Hzmnta4dau7yOIxQDU7/oNIr6DIskuIUii5ruGi4YZpIwB/AWGrn/uWb+FXJFiQHMZq9rCFcqtZXT0fyzKiSNkblV4F1RaPQJRvxfSUsSQ3jJU3FX8CF1c4R40CiBKkSHM8uavVIIESzgIHRiWVxkL9F6SKzg8GeTctJaAa3W+q1F1T60OKYmzH3OLdA37ZNmkm1CYWa8SF0JjOszxOnPwhfQ49P5r+rftXRFLz/7hGJ8CnUyzErSiUdUKNknUAB+w4KEZshQSNuiken0+GKqIw83dWWSyjiJJigcyDez2s+3AqDLHPG45NoBEXuBXjPQ9C08hokVyKlbzd/P2qvcnzUT5S6zTuaYOW+50+fiXeYkJlEoYYxoGRVx6FFdFqWyJx5UyaDv7QY3iQH0qct1iq9XGXMhBxIecIAEPUwF8nOp15in8L+5UIFMiNnihztTAXysc+8xvVwbuRlQIeR/E= ansible-generated on fvj-kinstagit

Clique no ícone de usuário no canto superior direito do GitLab e clique em Preferências.

Na página de Preferências, clique em Chaves SSH na barra lateral.

Clique em Adicionar nova chave e cole sua chave pública SSH no campo Chave. O campo Título deve ser preenchido automaticamente com um nome, mas sinta-se à vontade para alterá-lo, se desejar. O GitLab também permite que você defina uma data de expiração para a chave SSH. Esta opção é útil se você invalida e rotaciona chaves SSH como parte do seu protocolo de segurança da infraestrutura. Se não for o caso, pode deixar o campo de expiração em branco.

Adicione sua chave SSH no GitLab.
Adicione sua chave SSH no GitLab.

Após verificar sua configuração, clique em Add key para finalizar o processo.

Adicione a chave pública SSH ao MyKinsta

Agora que sua chave pública SSH foi adicionada ao GitLab, você precisará adicionar a mesma chave ao MyKinsta. Este passo adiciona sua chave pública SSH ao arquivo authorized_keys do seu site (apenas gravável pelo root e MyKinsta) e permitirá que o GitLab se conecte ao seu site via SSH para implantar alterações de código. No MyKinsta, clique em seu nome no canto superior direito e selecione Configurações do Usuário no menu suspenso.

Configurações do usuário MyKinsta.
Configurações do usuário MyKinsta.

Role para baixo e clique no botão Adicionar chave SSH.

Adicione a chave SSH no MyKinsta.
Adicione a chave SSH no MyKinsta.

Na janela modal/pop-up, especifique uma etiqueta (nome) para a chave SSH, cole sua chave pública no campo chave SSH, e clique em Adicionar chave SSH para finalizar o processo.

Adicione sua chave SSH no MyKinsta.
Adicione sua chave SSH no MyKinsta.

Adicione chave privada SSH ao GitLab

A seguir, você precisará adicionar a chave privada SSH do ambiente de produção do seu site como uma variável de ambiente no GitLab.

Para localizar sua chave privada, volte para a janela do terminal e execute o comando a seguir. Lembre-se de nunca compartilhar sua chave privada SSH em nenhum lugar além do GitLab.

cat ~/.ssh/id_rsa

No GitLab, clique no projeto que você criou anteriormente. Na barra lateral, passe o mouse sobre Settings e clique em CI/CD no menu que aparece.

Configurações do repositório CI/CD do GitLab.
Configurações do repositório CI/CD do GitLab.

Vá até a seção de Variables, clique no botão Expand, e clique em Add variable. Use SSH_PRIVATE_KEY para o nome da chave, cole sua chave privada no campo Value, e clique no botão Add variable para continuar.

Após a variável ter sido adicionada, você poderá vê-la em suas configurações de repositório.

Variável de chave privada SSH no GitLab.
Variável de chave privada SSH no GitLab.

Clone o repositório do GitLab para o MyKinsta

Agora que as chaves SSH necessárias foram adicionadas, você pode clonar seu repositório GitLab no seu ambiente de produção da Kinsta. No GitLab, navegue até o seu repositório, clique no botão azul Clone, e clique no ícone copiar/clipboard para copiar o endereço do repositório em Clone with SSH.

Clone com SSH no GitLab.
Clone com SSH no GitLab.

Volte para sua janela de linha de comando e navegue até o diretório home do seu ambiente de produção. Se você não tem certeza de como chegar ao seu diretório home, use o comando abaixo.

cd ~/

Quando você estiver no diretório home, execute o comando git clone com o endereço do repositório que você copiou do GitLab.

git clone [your-repository-url-here]

Após clonar o repositório, você verá um aviso que diz “você parece ter clonado um repositório vazio” Isso é de se esperar porque o repositório está vazio no momento.

Clone seu repositório GitLab ao seu ambiente de produção da Kinsta
Clone seu repositório GitLab ao seu ambiente de produção da Kinsta

Em Kinsta, nossa configuração Nginx serve o conteúdo da pasta ~/public. Assim, você precisa apagar a pasta ~/public e renomear sua pasta repo clonada para ~/public. Para fazer isso, execute os dois comandos abaixo.

rm -rf ~/public
mv ~/your-repo-folder-name ~/public

Configure o repositório GitLab

A seguir, use o comando abaixo para navegar para a pasta ~/public.

cd ~/public

Execute os dois comandos abaixo para configurar seu repo do GitLab. Certifique-se de especificar seu endereço de e-mail válido e um nome de usuário associado à sua conta no GitLab.

git config --global user.email "[email protected]"
git config --global user.name "brian"

Instale o WordPress com WP-CLI

Agora que o GitLab repo foi clonado para o seu ambiente de produção da Kinsta e configurado, vamos instalar o WordPress. Você pode instalar o WordPress manualmente baixando do wordpress.org, ou você pode instalá-lo com o WP-CLI. Para este exemplo, usaremos o WP-CLI para instalar o WordPress com o comando abaixo na pasta ~/public.

wp core download

Após instalar o WordPress, sua pasta ~/public deve se parecer com esta:

Uma nova instalação do WordPress com arquivos centrais e diretórios do WordPress
Uma nova instalação do WordPress com arquivos centrais e diretórios do WordPress

A seguir, vá para a página Domínios do seu site no MyKinsta e clique no link Abrir URL para visitar seu domínio principal.

Abra o link URL no MyKinsta.
Abra o link URL no MyKinsta.

Ao iniciar a instalação do WordPress, você será guiado através de um processo de cinco minutos. Se você não se sentir seguro sobre como configurar o WordPress, temos um guia detalhado disponível aqui.

Configure a nova instalação do WordPress.
Configure a nova instalação do WordPress.

Após o WordPress ter sido instalado, você deve conseguir ver seu novo site WordPress visitando seu domínio principal.

Uma nova instalação do WordPress.
Uma nova instalação do WordPress.

Configure o GitLab CI/CD Pipeline

A seguir, você precisará configurar um arquivo de configuração para instruir o GitLab para iniciar implantações automáticas após a atualização da branch principal do repo. Para fazer isso, certifique-se de estar na pasta ~/public em seu ambiente de produção da Kinsta (execute cd ~/public para navegar lá se necessário) e crie um novo arquivo chamado .gitlab-ci.yml com o comando abaixo.

touch .gitlab-ci.yml

Após o arquivo ter sido criado, adicione o seguinte texto ao arquivo. Você pode tanto editar o arquivo com nano ou vim na linha de comando ou com SFTP e um editor de texto ou código. Se você usar um cliente SFTP, certifique-se de ativar arquivos ocultos para ver o arquivo .gitlab-ci.yml.

before_script:
    - apt-get update -qq
    - apt-get install -qq git
    # Setup SSH deploy keys
    - 'which ssh-agent || ( apt-get install -qq openssh-client )'
    - eval $(ssh-agent -s)
    - ssh-add <(echo "$SSH_PRIVATE_KEY")
    - mkdir -p ~/.ssh- '[[ -f /.dockerenv ]] && echo -e "Host *ntStrictHostKeyChecking none" > ~/.ssh/config'
    - ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
deploy_live:
    environment:
        name: Live
        url: your-primary-domain script:
        - ssh user@ip-address -p port-number "cd public-root && git checkout main && git pull origin main && exit"
    only:
        - main

Altere os parâmetros url e script no bloco deploy_live; substituindo os valores em negrito pelos detalhes do seu site do MyKinsta.

  • Substitua seu domínio principal pelo domínio principal do seu site.
  • Substitua ssh user@ip-address -p port-number pelo comando do terminal SSH no MyKinsta (Sites WordPressnomedosite > Informações > SFTP/SSH).
  • Substitua public-root pelo caminho no MyKinsta (Sites WordPress > nomedosite > Informações > Detalhes do ambiente).
Caminho público e detalhes SSH no MyKinsta.
Caminho público e detalhes SSH no MyKinsta.

A seção only: - main do arquivo se refere ao branch do repositório que irá acionar o processo de CI/CD do GitLab. Com essa configuração, os envios para a branch principal iniciarão uma implantação em seu ambiente de produção na Kinsta. Se você quiser especificar outra branch para acionar a implantação, sinta-se à vontade para alterar a configuração.

Se você quiser adicionar mais detalhes à configuração para incluir um ambiente de teste, pode adicionar um bloco adicional chamado deploy_staging, com a URL e detalhes SSH correspondentes ao seu ambiente de teste na Kinsta.

deploy_staging:
    environment:
        name: Staging
        url: your-staging-domain script:
        - ssh user@ip-address -p port-number "cd public-root && git checkout main && git pull origin staging && exit"
    only:
        - staging

Observe também a seção only: - staging – isso significa que enviar/envio para a branch staging, o processo de CI/CD do GitLab será iniciado. Você pode ajustar isso conforme necessário para implantar a partir da branch de sua escolha.

Commit inicial ao GitLab

Agora que o WordPress e o arquivo de configuração do GitLab estão configurados, vamos fazer um commit inicial no GitLab. Vamos criar uma branch chamado v0.1, começar a rastrear os arquivos do repositório, confirmar as alterações e enviar as alterações para o GitLab na branch v0.1. Execute os comandos abaixo a partir de ~/public para acionar o commit inicial.

git checkout -b v0.1
git add .
git commit -a -m 'Initial Commit'
git push origin v0.1

Se você verificar seu repositório no GitLab, você verá agora os arquivos do seu commit inicial.

Commit inicial com o GitLab.
Commit inicial com o GitLab.

Configure o ambiente de teste da Kinsta

O próximo passo é criar e configurar um ambiente de teste no MyKinsta para que você tenha um lugar seguro para testar novos plugins, temas e códigos sem impactar seu ambiente de produção/ativo.

Crie um novo ambiente de teste no MyKinsta.
Crie um novo ambiente de teste no MyKinsta.

Após criar o ambiente de teste do seu site, o SSH entra no ambiente de teste em uma nova janela de linha de comando (mantenha a janela separada para o seu ambiente de produção aberta) e execute o comando abaixo para verificar qualquer alteração de código.

cd ~/public && git status

Você deverá ver uma mensagem como a que está abaixo. Nela, é possível observar que o branch criado anteriormente é o v0.1 e que o arquivo wp-config.php foi alterado. Isso acontece porque a Kinsta adiciona algumas linhas adicionais ao wp-config.php ao criar o ambiente de teste.

Arquivos alterados no ambiente de teste da Kinsta
Arquivos alterados no ambiente de teste da Kinsta

Commit e implante alterações no ambiente de produção

Por fim, vamos fazer algumas alterações no ambiente de teste e enviar um novo commit para o ambiente de produção da Kinsta usando o GitLab. Lembre-se de que este método irá ignorar a opção de Enviar para produção da Kinsta.

Para este exemplo, vamos instalar o plugin Yoast SEO usando o WP-CLI com o seguinte comando:

wp plugin install wordpress-seo

Após o plugin Yoast SEO ter sido instalado, execute os comandos abaixo para fazer um commit e envie as alterações para a branch v0.1.

git add .
git commit -a -m ‘Installed Yoast SEO plugin.’
git push origin v0.1

Finalmente, vamos mudar para a branch main, fundir v0.1 para main, e enviar main para o GitLab com os comandos abaixo. Isso fará com que o GitLab inicie um processo de implantação no seu ambiente de produção da Kinsta devido à configuração only: - main no arquivo de configuração do GitLab.

git checkout main
git merge v0.1
git push origin main

No GitLab, vá para CI/CD > Jobs na barra lateral do repositório e você verá o trabalho sendo executado. Esse trabalho é o GitLab implantando o plugin Yoast SEO no seu ambiente de produção da Kinsta.

Trabalho ativo no GitLab.
Trabalho ativo no GitLab.

Após o término do trabalho, mude de volta para a janela de linha de comando do seu ambiente de produção e execute wp plugin list naquela janela. Você deve ver wordpress-seo na lista. Este é o plugin Yoast SEO que foi instalado no ambiente de teste mais cedo.

O plugin Yoast SEO foi implantado via GitLab.
O plugin Yoast SEO foi implantado via GitLab.

Se você é um desenvolvedor de temas ou plugins que trabalha com sites na Kinsta, a configuração de implantações automáticas via GitLab CI/CD pode ajudar a acelerar o seu fluxo de trabalho enquanto fornece controle de versão.

Este artigo foi útil?