Tenemos el Git disponible para clientes en Kinsta, para que pueda usar SSH para entrar y obtener su propio repositiorio (repo) Git desde Gitub, Gitlab, Bitbucket, o cualquier tercero.

Si acaba de empezar, asegúrase de leer nuestra guía sobre Git vs Github.

No obstante, no hemos lanzado la función degit push kinsta my_site que se despliegue automáticamente. Esta parte vendrá. Pero aún puede usar Git en Kinsta con facilidad, solo siga las instrucciones a continuación.

Cómo Usar Git

Puede crear un script de implementación en unos pocos minutos, que conectará SSH a su contenedor de Google Cloud Linux y bajará la última versión de su repo. Los datos SSH de tu sitio Kinsta se encuentran en la página «Info» de su sitio.

Comando de la terminal SSH en MyKinsta.

Comando de la terminal SSH en MyKinsta.

Subir

git push kinsta my_site

Bajar

ssh [email protected] -p PORT "cd /www/my_site/public && git pull"

Otra manera es utilizando WP Pusher. Muchos de nuestros clientes usan esto y se vuelve muy fácil y usted no necesita que saber cómo usar Git o SSH.

Austin ofrece un tutorial sobre Cómo configurar despliegue automático de Git con Kinsta usando SSH.

Otra alternativa puede ser Beanstalk and DeployBot. De lo contrario, puede seguir las instrucciones más detalladas a continuación:

Clonar Repo

Para clonar un repo:

git clone https://github.com/USER/REPO.git

Al usar Git para repositorios privados, use su nombre de usuario y contraseña de GitHub que se pasarán al servidor.

git clone https://username:[email protected]/USER/REPO.git

Si la autenticación de dos factores está habilitada, se debe usar un token OAuth en lugar de sus credenciales estándares. Siga estas instrucciones sobre cómo crear un token OAuth.

Para clonar un repo que tiene A2F habilitado:

git clone https://[email protected]/USER/REPO.git

Repo Privado

Si se trata de un repo privado, las credenciales deben agregarse a la bajada de git:

Bajar

ssh [email protected] -p PORT "cd /www/my_site/public && git pull https://username:[email protected]/USER/REPO"

Repo Privado con A2F

Si la autenticación de dos factores está habilitada, se debe usar un token OAuth en lugar de sus credenciales estándares. Siga estas instrucciones sobre cómo crear un token OAuth. Para desplegar un repo que tiene A2F habilitado:

Subir

git push kinsta my_site

Bajar

ssh [email protected] -p PORT "cd /www/my_site/public && git pull https://[email protected]/USER/REPO"

Si la bajada del git de arriba no contiene credenciales ni la ruta HTTPS, intentará buscar localmente (en lugar del repo alojado) y mostrará el mensaje: “Todo actualizado”.

Lidiando con Conflictos Encontrados

Si hace modificaciones en algo en remoto los comandos de despliegue de arriba se abortarán debido a los conflictos encontrados. ¿Qué puede hacer entonces? Depende cuál de ellos quiere tratar como “King”. En este ejemplo abajo vamos a considerar el Git repo como “King” y olvidarse de los conflictos.

Bajada Forzada

Advertencia Razonable. Lo siguiente sobreescribe los cambios que existen en remoto con lo que está en el Git repo.

ssh [email protected] -p PORT "cd /www/MY_SITE/public && git fetch https://[email protected]/USER/REPO.git && git reset –hard kinsta/mysite"

Si tiene preguntas sobre cómo usar Git en Kinsta, nuestro departamento de soporte estará encantado de ayudarlo una vez que usted esté listo y en funcionamiento.

Cómo autodesplegarse a Kinsta con GitLab CI/CD (Avanzado)

Para los usuarios más avanzados, GitLab CI/CD (integración continua/entrega continua) puede utilizarse para introducir automáticamente los cambios de código en tu sitio Kinsta cada vez que se introduce una nueva confirmación en la rama correspondiente. Este método te permite enviar continuamente código a tu entorno en Kinsta sin sobrescribir la base de datos MySQL de WordPress.

Crear un sitio Kinsta (opcional)

Para los propósitos de este tutorial, crearemos un nuevo sitio vacío en Kinsta, e instalaremos WordPress más tarde. Si ya tienes un sitio Kinsta, puedes seguir este tutorial.

En MyKinsta, ve a tu página de «Sitios» y haz clic en Agregar Sitio en la esquina superior derecha. Selecciona la opción «No instalar WordPress», ponle un nombre a tu sitio, selecciona una ubicación y haz clic en el botón Agregar sitio para terminar el proceso de creación del sitio.

Crear un sitio vacío en MyKinsta.

Crear un sitio vacío en MyKinsta.

Crear un proyecto GitLab

Para empezar, dirígete a GitLab y haz clic en Crear un proyecto para crear un nuevo repositorio para tu sitio Kinsta.

Crear un proyecto en GitLab.

Crear un proyecto en GitLab.

Selecciona la opción Proyecto en blanco y rellene los campos «Nombre del proyecto» y «Proyecto Slug».

Crear un proyecto en blanco en GitLab.

Crear un proyecto en blanco en GitLab.

Para la opción «Nivel de visibilidad», recomendamos hacer el depósito privado. Como este repositorio puede contener un plugin premium y código de tema, dejarlo accesible a través de la Internet pública permitiría a cualquiera descargar los productos por los que pagó.

Una vez que hayas terminado de configurar el nuevo proyecto, haz clic en Crear Proyecto para continuar.

Configurar las claves SSH

A continuación, tendrás que añadir las claves SSH a GitLab y MyKinsta para permitir que las dos plataformas se comuniquen entre sí. Empecemos por añadir una clave SSH en GitLab.

Añadir la llave pública de SSH a GitLab

Primero, SSH en tu ambiente Kinsta, y ejecuta el comando del cat abajo para mostrar tu clave pública de SSH.

cat ~/.ssh/id_rsa.pub

Tu llave pública debe ser similar a la de abajo. Mantén la ventana de la Terminal abierta por ahora, y vuelve a GitLab en tu 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

Haz clic en el menú desplegable del icono de usuario en la esquina superior derecha de GitLab, y haz clic en Configuración.

Ve a la página de configuración de GitLab.

Ve a la página de configuración de GitLab.

En la página «Configuración», haz clic en Teclas SSH en la barra lateral.

Llaves SSH en GitLab.

Llaves SSH en GitLab.

Pega tu clave pública de SSH en el campo de texto. El campo de título debería auto-poblarse con un nombre, pero siéntete libre de cambiarlo si lo desea. GitLab también te permite establecer una fecha de caducidad para la clave SSH. Esta opción es útil si invalidas y rotas las claves SSH como parte del protocolo de seguridad de tu infraestructura. Si no lo haces, no dudes en dejar el campo «Expires At» en blanco.

Añade tu llave SSH en GitLab.

Añade tu llave SSH en GitLab.

Después de comprobar la configuración, haz clic en Agregar clave para finalizar el proceso.

Añadir la llave pública de SSH a MyKinsta

Ahora que tu llave pública de SSH ha sido para GitLab, tendrás que añadir la misma llave para MyKinsta. En MyKinsta, haz clic en tu icono de usuario en la esquina inferior izquierda y haz clic en User Settings. Este paso añade la clave pública de Kinsta al archivo authorized_keys de tu sitio (sólo escribible por root y MyKinsta), y permitirá a GitLab a SSH en tu sitio para empujar los cambios de código.

Configuración del usuario en MyKinsta.

Configuración del usuario en MyKinsta.

Desplázate hacia abajo y haz clic en Agregar clave SSH.

Añade la llave SSH en MyKinsta.

Añade la llave SSH en MyKinsta.

En la ventana modal, especifica un nombre para la clave de SSH, pega tu clave pública en el campo de texto y haz clic en Agregar clave de SSH para finalizar el proceso.

Añade tu llave SSH en MyKinsta.

Añade tu llave SSH en MyKinsta.

Añadir la llave privada de SSH a GitLab

A continuación, tendrás que añadir la clave privada SSH de tu entorno vivo de Kinsta como una variable de entorno en GitLab. La clave privada permitirá a GitLab SSH dentro de tu sitio Kinsta para empujar los cambios de código directamente.

Para encontrar tu clave privada, ejecuta el comando de la Terminal abajo en tu entorno Kinsta en vivo. Asegúrate de no compartir tu clave privada de SSH en ningún lugar fuera de GitLab.

cat ~/.ssh/id_rsa

En GitLab, haz clic en el proyecto que has creado antes. En la barra lateral, pasa por encima de «Configuración» y haz clic en CI/CD.

Configuración del repositorio de GitLab para CI/CD.

Configuración del repositorio de GitLab para CI/CD.

Desplázate hacia abajo a la sección «Variables», haz clic en el botón «Expandir», y haz clic en Agregar Variable. Usa SSH_PRIVATE_KEY para el nombre de la clave, pega tu clave privada en el campo de texto y haz clic en «Add Variable» para continuar.

Asegúrate de que estás añadiendo tu clave privada de SSH. Debería comenzar con -----BEGIN OPENSSH PRIVATE KEY-----

Después de que la variable haya sido añadida, podrás verla en la configuración de tu repositorio.

Variable de clave privada de SSH en GitLab.

Variable de clave privada de SSH en GitLab.

Clonar el informe de GitLab a MyKinsta

Ahora que se han añadido las claves SSH necesarias, puedes clonar tu repositorio GitLab a tu entorno vivo de Kinsta. En GitLab, navega a tu repositorio, pulsa el botón azul de Clonar, y copia la URL bajo «Clonar con SSH».

Clonar con SSH en GitLab.

Clonar con SSH en GitLab.

A continuación, SSH en tu entorno vivo de Kinsta y navega a tu directorio de inicio. Si no estás seguro de cómo llegar a tu directorio principal, utiliza el siguiente comando.

cd ~/

Una vez que estés en el directorio principal, ejecuta el comando git clone con la URL que copiaste de GitLab.

git clone [your-repository-url-here]

Después de clonar el repositorio, verás una advertencia que dice «parece que has clonado un repositorio vacío». Esto es de esperar porque el repositorio está vacío en este momento.

Clona tu repositorio GitLab en tu entorno vivo de Kinsta.

Clona tu repositorio GitLab en tu entorno vivo de Kinsta.

En Kinsta, nuestra configuración de Nginx sirve el contenido de la carpeta ~/public. Por lo tanto, querrás borrar la carpeta ~/public actual y renombrar tu carpeta clonada de repo a ~/public. Para ello, ejecuta los dos comandos siguientes.

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

Configurar GitLab Repo

A continuación, utiliza el siguiente comando para navegar a la carpeta ~/public.

cd ~/public

Ejecuta los dos comandos siguientes para configurar tu repositorio GitLab. Asegúrate de especificar una dirección de correo electrónico válida y un nombre de usuario de tu elección.

¿Luchando con el tiempo de inactividad y los problemas de WordPress? Kinsta es la solución de alojamiento diseñada para ahorrarle tiempo! Vea nuestras características
git config --global user.email "[email protected]"
git config --global user.name "brian"

Instalar WordPress con WP-CLI

Ahora que el repo de GitLab ha sido clonado a tu entorno vivo de Kinsta y configurado, instalemos WordPress. Puedes instalar WordPress manualmente descargándolo de wordpress.org, o puedes instalarlo con WP-CLI. Para este ejemplo, usaremos WP-CLI para instalar WordPress con el siguiente comando en la carpeta ~/public.

wp core download

Después de instalar WordPress, tu carpeta ~/public debería verse así.

Una nueva instalación de WordPress con WP-CLI.

Una nueva instalación de WordPress con WP-CLI.

Luego, ve a la página de «Dominios» en MyKinsta para tu sitio, y visita tu «Dominio Primario».

Visita tu dominio principal para configurar WordPress.

Visita tu dominio principal para configurar WordPress.

Serás recibido con el proceso de instalación de cinco minutos de WordPress. Si no estás seguro de cómo configurar WordPress, tenemos una guía detallada aquí.

Configura la nueva instalación de WordPress.

Configura la nueva instalación de WordPress.

Una vez instalado WordPress, deberías poder ver tu nuevo sitio de WordPress visitando tu dominio principal.

Una nueva instalación de WordPress.

Una nueva instalación de WordPress.

Configurar la tubería de CI/CD de GitLab

A continuación, tendrás que configurar un archivo de configuración especial para ordenar a GitLab que inicie despliegues automáticos después de que la marca maestra del repo haya sido actualizada. Para ello, navega a la carpeta ~/public en tu entorno vivo de Kinsta y crea un nuevo archivo llamado .gitlab-ci.yml con el siguiente comando.

cd ~/public && touch .gitlab-ci.yml

Una vez creado el archivo, añade el siguiente texto al archivo. Puedes editar el archivo con nano o vim en Terminal, o con un editor SFTP. Si utilizas un cliente SFTP, asegúrate de habilitar los archivos ocultos para poder ver el archivo .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 *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
deploy_live:
    type: deploy
    environment:
        name: Live
        url: your-primary-domain
    script:
        - ssh [email protected] -p port-number "cd public-root && git checkout master && git pull origin master && exit"
    only:
        - master

Asegúrate de cambiar los parámetros de la url y el script en el bloque deploy_live. Querrás sustituir los valores en negrita por los ajustes de tu sitio desde el panel de MyKinsta.

  • Sustituye tu dominio por el dominio principal de tu sitio.
  • Reemplaza ssh [email protected]ón IP -p número de puerto con el «Comando de la Terminal SSH» en MyKinsta.
  • Reemplaza la raíz pública con el «Camino» en MyKinsta.
Camino público y detalles de SSH en MyKinsta.

Camino público y detalles de SSH en MyKinsta.

La only: - master sección del archivo se refiere a la rama del repositorio que activará el proceso de CI/CD de GitLab. Con esta configuración, si se empuja a la rama master se iniciará un despliegue a tu entorno de vida Kinsta. Si quieres especificar otra rama para iniciar el despliegue, no dudes en cambiar la configuración.

Si deseas implementar granularidad adicional a la configuración para tener en cuenta un entorno staging, puedes añadir un bloque deploy_staging adicional con la URL y los detalles SSH para tu entorno staging de Kinsta.

deploy_staging:
    type: deploy
    environment:
        name: Staging
        url: your-staging-domain
    script:
        - ssh [email protected] -p port-number "cd public-root && git checkout master && git pull origin staging && exit"
    only:
        - staging

Fíjate en la sección de only: - staging también – esto significa que empujar a la rama de staging iniciará el proceso de CI/CD de GitLab.

Compromiso inicial con GitLab

Ahora que WordPress y el archivo de configuración de GitLab están configurados, hagamos un commit inicial a GitLab. Para ello, crearemos una nueva rama llamada v0.1, comenzaremos a rastrear los archivos en el repositorio, confirmaremos los cambios, y enviaremos los cambios a GitLab en la rama v0.1. Ejecuta los siguientes comandos desde ~/public para activar la confirmación inicial.

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

Si revisas tu repositorio en GitLab, ahora verás los archivos de tu confirmación inicial.

Compromiso inicial con GitLab.

Compromiso inicial con GitLab.

Configurar el entorno staging de Kinsta

El siguiente paso es configurar un entorno staging de Kinsta para tener un lugar seguro para probar nuevos plugins, temas y código sin afectar a tu entorno de producción. Para hacer esto, primero crea un entorno staging en MyKinsta.

Crear un ambiente stagingen MyKinsta.

Crear un ambiente stagingen MyKinsta.

SSH en el entorno de la puesta en escena, y ejecutar el comando de abajo para comprobar cualquier cambio en el código.

cd ~/public && git status

Deberías ver un mensaje como el de abajo. Como pueden ver, la rama es la v0.1 que fue creada anteriormente. Además, el archivo wp-config.php ha cambiado. Esto ocurre porque Kinsta añade unas cuantas líneas adicionales a wp-config.php durante el paso del directo a la puesta en escena.

Cambiar los archivos en el entorno staging de Kinsta.

Cambiar los archivos en el entorno staging de Kinsta.

Comprometerse y empujar los cambios para vivir

Por último, hagamos algunos cambios en el entorno staging e impulsemos un nuevo compromiso con el entorno de vida de Kinsta usando GitLab. Tened en cuenta que el propósito de este método es evitar la característica normal de Kinsta «push to live» que también sobrescribe la base de datos de WordPress.

Para este ejemplo, instalemos el plugin Yoast SEO usando WP-CLI con el siguiente comando.

cd ~/public && wp plugin install wordpress-seo

Después de que el plugin Yoast SEO se ha instalado, ejecute los siguientes comandos para hacer un compromiso y empujar los cambios a la rama v0.1.

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

Finalmente, pasemos a la rama master, fusionemos la v0.1 con la master, y empujemos la master a GitLab con los comandos de abajo. Esto hará que GitLab inicie un proceso de despliegue en su entorno vivo de Kinsta debido a la only: - master configuración en el archivo de configuración de GitLab.

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

En GitLab, ve a CI/CD > Trabajos en la barra lateral de tu repositorio, y verás el trabajo en marcha. Este «trabajo» es GitLab empujando el plugin SEO de Yoast a tu entorno de Kinsta en vivo.

Trabajo activo en el GitLab.

Trabajo activo en el GitLab.

Cuando el trabajo esté terminado, ejecuta la wp plugin list en tu entorno vivo de Kinsta. Deberías ver wordpress-seo – el plugin de Yoast SEO que se instaló en el entorno staging antes.

El plugin de Yoast SEO fue desplegado a través de GitLab.

El plugin de Yoast SEO fue desplegado a través de GitLab.

Si eres un desarrollador de temas o plugins que trabaja con sitios Kinsta, la configuración de auto-despliegues a través de GitLab CI/CD puede ayudar a acelerar tu flujo de trabajo. Esta configuración le permite desplegar código de tu entorno local o del entorno staging de Kinsta sin tener que sobrescribir la base de datos MySQL de tu sitio de producción en vivo.


Si le ha gustado este tutorial, entonces le va a encantar nuestro soporte. Todos los planes de hosting de Kinsta incluyen soporte 24/7 de nuestros ingenieros y desarrolladores de WordPress veteranos. Charle con el mismo equipo que ayuda a nuestros clientes de Fortune 500. Conozca nuestros planes