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.
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.
Selecione a opção Blank Project, e preencha os campos Project name e Project slug.
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.
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.
Role para baixo e clique no botão Adicionar chave SSH.
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 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.
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.
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.
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.
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:
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.
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.
Após o WordPress ter sido instalado, você deve conseguir ver seu novo site WordPress visitando seu domínio principal.
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 WordPress > nomedosite > Informações > SFTP/SSH).
- Substitua public-root pelo caminho no MyKinsta (Sites WordPress > nomedosite > Informações > Detalhes do ambiente).
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.
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.
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.
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.
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.
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.