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.
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 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.
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.
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:
ssh -T [email protected]
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.
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 ramamain
. Esto significa que cualquier nuevo commit a la ramamain
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.