Desplegar theme de Wordpress con Github Actions
- Daniel J. Saldaña
- 9 de noviembre de 2023
- Puntuación de feedback
En este nuevo laboratorio, vamos a explorar cómo automatizar el despliegue de un tema de WordPress en un servidor alojado en DigitalOcean utilizando Github Actions. Hemos simplificado la creación de un entorno de prueba para que puedas probarlo tú mismo. 🚀
GitHub - danieljsaldana/deploy-theme-wordpress
Creación del Entorno con Terraform 🌍
Para comenzar, vamos a crear una carpeta que contendrá el código de Terraform. Aquí es donde definiremos los recursos que necesitamos para configurar nuestro servidor en DigitalOcean.
Archivo provider.tf 🔌
En este archivo, especificaremos el proveedor que vamos a utilizar, en este caso, DigitalOcean. Asegúrate de que tengas tu token de acceso a DigitalOcean disponible.
Archivo main.tf 🏢
En este archivo, definiremos la creación de nuestro servidor en DigitalOcean. Aquí es donde configuramos detalles como la imagen, el nombre, la región y el tamaño del servidor.
Archivo terraform.tfvars 🧾
Este archivo contendrá las variables que utilizaremos en nuestro archivo main.tf
. Asegúrate de configurar estas variables según tus preferencias y necesidades.
Estas variables son esenciales para personalizar la configuración de tu servidor en DigitalOcean. A medida que continúes con la automatización del despliegue, estas variables se utilizarán en el archivo main.tf
para configurar y crear tu servidor en DigitalOcean. A continuación, una breve descripción de cada variable:
do_public_key
: Debes especificar el nombre de tu clave pública que utilizarás para acceder al servidor.droplet_image
: Selecciona la imagen de Droplet de DigitalOcean que deseas utilizar, en este caso, “wordpress-20-04”.droplet_name
: Define el nombre de tu Droplet, que identificará tu servidor en DigitalOcean.droplet_region
: Selecciona la región de DigitalOcean donde se creará el Droplet. En este caso, “fra1” se refiere a la región de Frankfurt.droplet_size
: Especifica el tamaño del Droplet, en este caso, “s-2vcpu-4gb”.
Archivo variables.tf 🧾
En este archivo, definiremos las variables que usaremos en nuestro proyecto. Estas variables son esenciales para la configuración de Terraform.
Archivo output.tf 📤
Este archivo definirá las salidas de datos que serán útiles para nuestro servidor, como el nombre, la dirección IP y el precio mensual.
Asegúrate de configurar estos valores según tus necesidades y preferencias antes de ejecutar Terraform.
No olvides configurar el valor de var.do_token
en los secretos de tu repositorio en GitHub. También, para acceder a tu servidor, genera una clave SSH utilizando el comando:
Finalmente, sube tu clave pública y privada a los secretos de tu repositorio.
Ahora comenzaremos a crear nuestras pipelines. Para ello, crearemos una carpeta llamada .github y dentro de ella crearemos una carpeta llamada workflows. Dentro de esta carpeta, se crearán los siguientes archivos YAML:
Archivo ci.yml 🔄
Este archivo define una pipeline de CI/CD que utiliza varios desencadenadores (on
) y entradas (inputs
) para controlar la ejecución de trabajos específicos. Los trabajos se ejecutan en función de las entradas proporcionadas y las necesidades específicas de tu flujo de trabajo.
Como podrás observar en este flujo, nos apoyamos en los inputs para poder ejecutar los trabajos que necesitemos. Aunque este flujo no sea el más óptimo, nos permite realizar pruebas de forma sencilla y nos brinda la flexibilidad de personalizarlo a nuestro gusto y mejorarlo.
Job: terraform.yml 🏗️
En este código, hemos creado un servidor en DigitalOcean y disponemos de 15 minutos para realizar las pruebas que necesites.
Job: type_version.yml 🆕
Job: deploy_theme.yml 🚚
En este codigo, lo que hacemos es desplegar el theme en el servidor de produccion. Para ello nos conectamos por ssh y ejecutamos los comandos necesarios para desplegar el theme.
Recordar que nuestra pipeline funcione debemos de agregar todos los secretos que hemos definido en los workflows.
Conclusiones
En este laboratorio, hemos explorado cómo automatizar el proceso de despliegue de un tema de WordPress en un servidor alojado en DigitalOcean utilizando GitHub Actions. Esta automatización te permite ahorrar tiempo y reducir errores al eliminar la necesidad de realizar despliegues manuales. 🕒
Comenzamos creando un entorno de servidor en DigitalOcean utilizando Terraform. Configuramos los recursos esenciales, como la imagen del servidor, su ubicación y su tamaño. Personalizamos estos detalles mediante un archivo terraform.tfvars que contiene variables clave. ⚙️
Luego, configuramos flujos de trabajo en GitHub Actions que nos permiten controlar todo el proceso. Desde la creación del servidor con Terraform hasta el despliegue del tema en producción, cada paso se ha automatizado. 🤖
Además, hemos explorado cómo cambiar la versión del tema y realizar pruebas con GitHub Actions. Estos flujos de trabajo se han diseñado para adaptarse a diferentes situaciones, como la creación de solicitudes de extracción a ramas de desarrollo y producción. 📈
Finalmente, hemos observado cómo el tema se despliega en el servidor de producción mediante una conexión SSH. Hemos seguido prácticas recomendadas, como activar el modo de mantenimiento y realizar copias de seguridad del tema actual para asegurarnos de que el proceso sea seguro y confiable. 🔑
Este enfoque de automatización con GitHub Actions simplifica tus tareas de administración y te permite centrarte en el desarrollo de tu sitio de WordPress. Recuerda configurar los secretos adecuados y personalizar los flujos de trabajo según tus necesidades específicas. 💪
Si este laboratorio te ha sido útil y estás considerando utilizar DigitalOcean para alojar tus proyectos, te invitamos a utilizar nuestro enlace de afiliado de DigitalOcean. Al hacerlo, estarás apoyando nuestro blog y nos ayudarás a seguir creando contenido útil como este. ¡Gracias por tu apoyo! 🙌