Pipelines de Bitbucket

Para usuarios avanzados, Bitbucket CI/CD (Integración Continua/Entrega Continua o Despliegue Continuo) puede desplegar automáticamente cambios de código en tu sitio de Kinsta cada vez que se envíe un nuevo commit a la rama designada. Esta configuración permite el despliegue de código sin problemas desde tu entorno local a través de SSH y Bitbucket Pipelines, permitiendo actualizaciones continuas en tu sitio.

Para seguir estos pasos, debes tener un sitio existente alojado en Kinsta y una cuenta Bitbucket.

1. Descarga una copia de seguridad de tu sitio

Puedes descargar una copia de seguridad de tu sitio para configurar el repositorio de Bitbucket y trabajar en él localmente. Alternativamente, puedes utilizar DevKinsta para extraer tu sitio del servidor Kinsta y trabajar en él localmente.

En MyKinsta, ve a Sitios WordPress > nombre del sitio > Copias de seguridad > Descargar > Crear copia de seguridad ahora.

Crea una copia de seguridad descargable en MyKinsta.
Crea una copia de seguridad descargable en MyKinsta.

Cuando tu copia de seguridad esté lista, haz clic en Descargar, guárdala en tu ordenador local y descomprime los archivos en una carpeta.

2. Configura el repositorio Bitbucket

Abre la carpeta que contiene los archivos de tu sitio en tu editor de código preferido. Para evitar subir archivos innecesarios del core de WordPress, archivos multimedia o información sensible, añade un archivo .gitignore al directorio raíz de tu proyecto. Puedes utilizar una plantilla .gitignore estándar de WordPress, copiar su contenido y guardarlo para asegurarte de que sólo se rastrean los archivos esenciales.

En Bitbucket, ve a tu espacio de trabajo y crea un nuevo repositorio. Asegúrate de que Incluir un README e Incluir .gitignore están configurados como No. Una vez creado el repositorio, también tienes que habilitar los pipelines. En el repositorio, ve a Configuración y selecciona Activar Pipelines.

3. Configurar la autenticación SSH

Para conectarte de forma segura a tu repositorio de Bitbucket, debes configurar la autenticación SSH.

Genera un par de claves SSH en tu máquina local utilizando el siguiente comando, sustituyendo [email protected] por tu dirección de correo electrónico:

ssh-keygen -t ed25519 -C "[email protected]"

Guarda el par de claves en una ubicación que puedas consultar fácilmente (por ejemplo, ~/.ssh/id_rsa_bitbucket).

Abre y copia la clave pública (~/.ssh/id_rsa_bitbucket.pub). En Bitbucket, ve a Configuración > Configuración personal de Bitbucket > Claves SSH > Añadir clave y pega los detalles de la clave pública. Esto autoriza a tu máquina a enviar código de forma segura.

Añade la clave SSH a Configuración de Bitbucket.
Añade la clave SSH a Configuración de Bitbucket.

Añade la misma clave en MyKinsta, ve a tu nombre de usuario > Configuración de usuario > Añadir clave SSH, pega los mismos detalles de la clave pública y haz clic en Añadir clave SSH.

4. Envía tu código a Bitbucket

Abre la carpeta que contiene los archivos de tu sitio en tu editor de código preferido y utiliza los siguientes comandos para enviar tu código a Bitbucket, sustituyendo your-username y your-repo por tu nombre de usuario de Bitbucket y el nombre del repositorio:

# Initialize a new Git repository
git init
# Stage all files for the first commit
git add .
# Commit the files with a message
git commit -m "Initial commit of WordPress site files"
# Add the Bitbucket repository as the remote origin
git remote add origin [email protected]:your-username/your-repo.git
# Push the files to Bitbucket
git push -u origin main

5. Configura el acceso SSH en MyKinsta a Bitbucket

Para que el servidor Kinsta pueda extraer código de Bitbucket, debes generar una clave SSH en el servidor y añadir su clave pública a tu cuenta de Bitbucket.

Abre un nuevo terminal y accede mediante SSH a tu servidor Kinsta utilizando el comando terminal SSH desde la página de Información de tu sitio en MyKinsta.

Comando de terminal SSH para tu sitio.
Comando de terminal SSH para tu sitio.

Introduce la contraseña de tu sitio y genera una nueva clave SSH utilizando el siguiente comando, sustituyendo [email protected] por tu dirección de correo electrónico:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Pulsa Intro para guardar la clave en la ubicación predeterminada y deja en blanco la frase de contraseña cuando se te solicite.

Genera una clave SSH.
Genera una clave SSH.

6. Añade la clave SSH a Bitbucket

Accede al contenido del archivo de la clave pública (por ejemplo, ~/.ssh/id_rsa.pub), con el siguiente comando:

cat ~/.ssh/id_rsa.pub

Cópialo entero y, a continuación, en Bitbucket, ve a Configuración > Configuración personal de Bitbucket > Claves SSH > Añadir clave y añade la clave pública. Esto autoriza al servidor Kinsta a acceder a tu repositorio de Bitbucket de forma segura.

7. Configura Git para usar SSH en el servidor Kinsta

En MyKinsta, en la página de Información, copia la Ruta desde Detalles del entorno.

En el terminal, navega al directorio activo de tu sitio con el siguiente comando, sustituyendo /www/your-site/public por la ruta copiada de MyKinsta.

cd /www/your-site/public

Inicializa el directorio como un repositorio Git y configura la URL remota para utilizar SSH con el siguiente comando, sustituyendo your-username y your-repo por tus credenciales de Bitbucket y el repositorio:

git init
git remote add origin [email protected]:your-username/your-repo.git

Confirma que la configuración SSH funciona ejecutando el siguiente comando:

Deberías ver un mensaje similar a «autenticado mediante clave ssh. Puedes utilizar git para conectarte a Bitbucket. El acceso shell está deshabilitado» Tu servidor Kinsta ya está listo para recibir y desplegar actualizaciones desde Bitbucket directamente a través de los pipelines de Bitbucket.

8. Añade variables de entorno a Bitbucket

Para almacenar información sensible de Kinsta de forma segura, necesitas añadir variables de entorno a Bitbucket. En MyKinsta, ve a Sitios WordPress > Nombre del sitio > Información; en la sección SFTP/SSH, necesitas el Host, el Puerto y el Nombre de usuario.

Nombre de usuario, dirección IP y Puerto de la página Info del sitio.
Nombre de usuario, dirección IP y Puerto de la página Info del sitio.

En Bitbucket, ve a Configuración del repositorio > Variables del repositorio y añade lo siguiente:

  • KINSTA_USERNAME: Este es tu nombre de usuario SSH para el servidor Kinsta. Bitbucket Pipelines lo utiliza para iniciar sesión y ejecutar comandos de despliegue.
  • KINSTA_SERVER_IP: Esta es la dirección del Host SSH de tu servidor Kinsta. Permite a Bitbucket Pipelines saber a qué servidor conectarse para el despliegue.
  • PORT: Este es el Puerto SSH utilizado por tu servidor Kinsta. Los servidores Kinsta utilizan un puerto personalizado, por lo que debes especificarlo aquí.
  • SSH_PRIVATE_KEY: Esta es tu clave privada SSH codificada en base64 de tu máquina local. Los pipelines de Bitbucket utilizan esta clave para autenticarse en tu servidor Kinsta. Para codificar tu clave privada en base64, ejecuta el siguiente comando, copia el resultado y añádelo como valor:
    cat ~/.ssh/id_rsa | base64

9. Configuración de Bitbucket Pipeline

Para automatizar los despliegues, necesitas crear un archivo de configuración bitbucket-pipelines.yml. En la carpeta local que contiene los archivos de tu sitio, crea un nuevo archivo llamado bitbucket-pipelines.yml y añade el siguiente contenido al archivo, sustituyendo your-site por el nombre de la carpeta de la ruta de tu sitio Kinsta:

pipelines:
  branches:
    main:
      - step:
          name: Deploy to Kinsta
          script:
            - pipe: atlassian/ssh-run:0.8.1
              variables:
                SSH_USER: $KINSTA_USERNAME
                SERVER: $KINSTA_SERVER_IP
                PORT: $PORT
                COMMAND: |
                  cd /www/your-site/public &&
                  git fetch origin main &&
                  git reset --hard origin/main
                SSH_KEY: $SSH_PRIVATE_KEY
                DEBUG: 'true'

Este flujo está configurado para automatizar los despliegues en tu servidor Kinsta cada vez que haya un nuevo envío en la rama main. El flujo de trabajo hace lo siguiente

  • Trigger del Pipeline: La sección pipelines está configurada para activarse cuando se realiza un envío a la rama main. Esto significa que cualquier nuevo commit a la rama main inicia automáticamente el despliegue.
  • Step: Se llama «Despliegue en Kinsta» para mayor claridad. Contiene las principales acciones de despliegue.
  • SSH-run pipe: Esto utiliza el pipe atlassian/ssh-run que permite a Bitbucket conectarse a tu servidor Kinsta a través de SSH y ejecutar comandos de forma remota. Este pip simplifica la configuración de una sesión SSH, la ejecución de los comandos y el cierre de la sesión, por lo que no es necesario gestionar los detalles SSH manualmente en el script.
  • Comandos de despliegue: El bloque COMMAND contiene los comandos que despliegan el código más reciente en tu sitio de WordPress. Esto es lo que hace cada comando:
    • El primer comando navega al directorio activo donde está alojado WordPress.
    • El segundo comando ejecuta git fetch origin main para extraer el último código de la rama principal de Bitbucket.
    • El último comando actualiza el sitio en producción con el último código de la rama principal.

Esta configuración gestiona todos los aspectos del despliegue – desde la conexión a Kinsta hasta la actualización de los archivos de tu sitio – de modo que tu sitio de WordPress en Kinsta se mantendrá actualizado automáticamente con cada envío a main.

10. Prueba el pipeline

Confirma (Commit) y envía (push) el archivo de configuración bitbucket-pipelines.yml a la rama main. Esto activará automáticamente el pipeline e iniciará el proceso de despliegue. Puedes supervisar el progreso del despliegue en el panel de Bitbucket Pipelines. Si todo está configurado correctamente, Bitbucket se conectará a tu servidor Kinsta, obtendrá el código más reciente y lo desplegará en tu sitio en producción.

Para solucionar problemas, comprueba los registros del pipeline en Bitbucket, especialmente si DEBUG está configurado como "true". Los registros proporcionan información detallada sobre cada paso, lo que puede ayudar a identificar cualquier problema de conexión o configuración.

Si el pipeline no se conecta correctamente a tu servidor Kinsta, podría deberse a que la URL remota está configurada como HTTPS en lugar de SSH. Para confirmarlo, accede mediante SSH a tu servidor Kinsta y ejecuta el siguiente comando en el directorio de tu sitio:

git remote -v

Si muestra https:// en lugar de ssh://, tendrás que actualizar la URL remota para que se pueda utilizar la clave SSH para la autenticación. Ejecuta el siguiente comando para cambiar a SSH:

git remote set-url origin [email protected]:your-username/your-repo.git

Después de actualizar la URL, envía tus cambios de nuevo, y el pipeline debería conectarse utilizando la clave SSH.

¿Este artículo te ha resultado útil?