GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo crear su pila de desarrollador de WordPress en OpenShift 4

Era una fría tarde de otoño de 2019 y me senté detrás de mi escritorio de trabajo con una taza de té humeante después de una conversación con mi gerente. Finalmente había decidido tomar la iniciativa en la planificación de la migración de un sitio web de producción global desde una sola máquina virtual a la nube. Ya tenía experiencia con Nginx y Apache como administrador de máquinas virtuales. La segunda parte de la descripción de mi trabajo fue el desarrollo de las características del sitio web en PHP. Sabía que comprender los requisitos tanto desde la perspectiva del desarrollador como del administrador sería importante para mi enfoque para implementar una pila de desarrollo de WordPress en OpenShift. Mi motivación cuando era joven era explorar y aprender nuevas tecnologías mientras hacía mis primeros experimentos en un entorno seguro de espacio aislado.

[ También te puede interesar:Aprenda OpenShift con Minishift ]

Sabía que antes de trabajar con OpenShift en un entorno de producción, necesitaba tener un conocimiento sólido de los componentes del producto y cómo interactúan entre sí. En las próximas semanas, pasé tiempo preparándome para el examen Red Hat OpenShift Administration II y buscando respuestas a mis preguntas de los arquitectos de OpenShift si era necesario.

Cuando no estaba estudiando para el examen, miraba las características del producto OpenShift 4. Pude ver que, para un sitio web global, muchas de esas características son muy importantes y facilitarían mucho mi experiencia de desarrollo. Estos son algunos de los beneficios:

  • Alta disponibilidad
  • Automatización del escalado
  • Administración de aplicaciones
  • Sistema operativo ligero

Configuración y despliegue de aplicaciones

Aquí hay algunas notas para tener en cuenta:

  • En este artículo, no analizo la selección de un servicio de alojamiento ni los pasos de instalación de OpenShift 4.
  • El código fuente y la base de datos utilizados en esta guía son muestras y no reflejan ni utilizan datos de ningún sitio web de producción.
  • Esta guía proviene de mi experiencia personal mientras trabajaba con las herramientas que se mencionan a continuación.
  • Si su clúster de OpenShift es de acceso público, en lugar de la configuración de compilación basada en Docker, puede usar la configuración de compilación basada en código fuente.

1) IDE en la nube:Red Hat CodeReady

Nota :Estoy usando este documento como referencia.

Requisitos previos:

  • función de administrador de clúster

Pasos:

Crear un nuevo proyecto:

$ oc new-project wordpress-deploy

En el menú del panel izquierdo, haga clic en Operadores y vaya a OperatorHub pestaña. Cambiar Proyecto en la parte superior izquierda de la página para wordpress-deploy proyecto. Elija espacios de trabajo Red Hat CodeReady y haga clic en Instalar botón. En el Operador de instalación página, seleccione Elegir un espacio de nombres existente y asegúrese de que wordpress-deploy se selecciona el espacio de nombres. Finalmente, haga clic en Instalar botón.

Después de la instalación, continúe haciendo clic en Ver operador botón. En API proporcionadas , haga clic en Crear instancia .

En Crear CheCluster página, mantenga la configuración predeterminada y haga clic en Crear botón.

Verifique la instalación del operador Red Hat CodeReady Workspaces:

$ oc get csv -n wordpress-deploy
NAME                                  DISPLAY                        VERSION   REPLACES   PHASE
crwoperator.v2.4.0   Red Hat CodeReady Workspaces   2.4.0                Succeeded

Verifique que todos los pods estén en el estado En ejecución. estado y Listo . Para realizar un seguimiento del progreso de la instalación, siga los registros del operador. Tenga en cuenta que la Ruta no Esté preparado hasta que los registros del pod del operador muestren "CodeReady Workspaces ahora está disponible en http://xyz.org". Puede tardar unos minutos.

$ oc get pods -n wordpress-deploy
NAME                                  READY   STATUS    RESTARTS   AGE
codeready-5d7b8f64d6-2rzkm            1/1     Running     0          60s
codeready-operator-5bc96f8c5f-c7hbt   1/1     Running     0          7m56s
devfile-registry-786f455b84-t45l8     1/1     Running     0          2m8s
keycloak-688b5d48f5-mgqn4             1/1     Running     0          2m41s
plugin-registry-8fb66b5cb-9kw8q       1/1     Running     0          99s
postgres-785f5864b-mmlpx              1/1     Running     0          5m1s

$ oc logs codeready-operator-5bc96f8c5f-c7hbt -f
...
time="2020-10-28T14:29:29Z" level=info msg="CodeReady Workspaces is now available at: https://codeready-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org"
...

Recuperar ruta codificada:

$ oc get route -n wordpress-deploy | grep codeready
NAME               HOST/PORT                                                                   PATH   SERVICES           PORT   TERMINATION     WILDCARD
codeready          codeready-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org                 che-host           8080   edge/Redirect   None

Visita la ruta codeready y actualice la información de su cuenta . Debajo de Comenzar pestaña, seleccione PHP CakePHP pila.

Verifique que Red Hat CodeReady Workspace ha sido creado:

2) CI/CD parte 1:instalar Tekton CLI y OpenShift Pipelines

Nota :Como referencia, estoy usando este tutorial de openshift/pipelines. Si está interesado, puede consultar los conceptos de alto nivel de OpenShift Pipelines. Para mi caso, elegí Tekton, pero no dude en usar Jenkins, CircleCI o cualquier otra herramienta de canalización preferida por usted o su empresa.

Tekton es un marco de código abierto nativo de Kubernetes poderoso pero flexible para crear sistemas de integración continua y entrega continua (CI/CD). Le permite crear, probar e implementar en varios proveedores de la nube o sistemas locales mediante la abstracción de los detalles de implementación subyacentes. Hoja de ruta de Tekton Pipelines 2020.

Pasos:

Instale Tekton CLI (tkn) desde aquí según el archivo Léame en el repositorio.

Instale el operador de tuberías de OpenShift.

Verifique la instalación de Tekton CLI y Pipelines Operator:

$ tkn version
Client version: 0.13.1
$ oc get csv -n wordpress-deploy
NAME                                  DISPLAY                        VERSION   REPLACES   PHASE
crwoperator.v2.4.0                    Red Hat CodeReady Workspaces   2.4.0                Succeeded
openshift-pipelines-operator.v1.0.1   OpenShift Pipelines Operator   1.0.1                Succeeded

3) Aplicar una plantilla personalizada que crea módulos de aplicaciones

Nota :Usé código fuente de muestra del repositorio de Github.

Pasos:

Descarga el archivo de plantilla usando curl comando:

$ curl -O https://raw.githubusercontent.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4/master/deploy/openshift-template.yaml

Cargue la plantilla en su espacio de nombres:

$ oc create -f openshift-template.yaml

Antes de crear la aplicación, primero enumere las variables requeridas para la plantilla:

$ oc process --parameters wordpress-nginx-php
NAME                        DESCRIPTION                                                                  GENERATOR           VALUE
NAME                        The name assigned to all of the frontend objects defined in this template.   expression          wordpress-[a-f0-9]{6}
NAMESPACE                   The OpenShift Namespace where the ImageStream resides.                                           
APP_MEMORY_LIMIT            Maximum amount of memory limits the App container can use.                                       512Mi
APP_CPU_LIMIT               Maximum amount of cpu limits the App container can use.                                          200m
APP_MEMORY_REQUEST          Maximum amount of memory requests the App container can use.                                     512Mi
APP_CPU_REQUEST             Maximum amount of cpu requests the App container can use.                                        200m
DB_MEMORY_LIMIT             Maximum amount of memory limits the MariaDB container can use.                                   512Mi
DB_CPU_LIMIT                Maximum amount of cpu limits the MariaDB container can use.                                      200m
DB_MEMORY_REQUEST           Maximum amount of memory requests the MariaDB container can use.                                 512Mi
DB_CPU_REQUEST              Maximum amount of cpu requests the MariaDB container can use.                                    200m
DB_VOLUME_CAPACITY          Volume space available for DB data, e.g. 512Mi, 2Gi                                              1Gi
FILES_VOLUME_CAPACITY       Volume space available for sites/default/files, e.g. 512Mi, 2Gi                                  1Gi
ROUTER_CANONICAL_HOSTNAME   Clusters Router Canonical Hostname is self-explanatory.                                          
MYSQL_DATABASE                                                                                                               wordpress
MYSQL_USER                                                                                                                   wordpress
MYSQL_ROOT_PASSWORD         Password for the MySQL root user.                                            expression          [a-zA-Z0-9]{16}
MYSQL_PASSWORD                                                                                           expression          [a-zA-Z0-9]{16}

Procese la plantilla proporcionada, incluidos los valores de sus parámetros:

$ oc process wordpress-nginx-php -p NAME=wordpress -p NAMESPACE=wordpress-deploy -p ROUTER_CANONICAL_HOSTNAME=apps.tgabriel-test.y2pm.s1.devshift.org -p MYSQL_ROOT_PASSWORD=nKatIcTRIToR -p MYSQL_PASSWORD=eSoiDenThicO | oc create -f -

Verifique que todos los pods estén en el estado En ejecución. o Completado estado:

$ oc get pods -n wordpress-deploy
NAME                                                    READY   STATUS      RESTARTS   AGE
codeready-5dc8dcd6f8-xm6tx                              1/1     Running     0          69m
codeready-operator-864446f6b-dpp52                      1/1     Running     0          74m
keycloak-7c4f96b7d9-m6nv9                               1/1     Running     0          72m
phpmyadmin-1-build                                      0/1     Completed   0          11m
phpmyadmin-1-deploy                                     0/1     Completed   0          3m36s
phpmyadmin-1-fmt7b                                      1/1     Running     0          3m28s
postgres-769b855b45-tlhcs                               1/1     Running     0          73m
wordpress-app-1-build                                   0/1     Completed   0          11m
wordpress-app-1-25p6n                                   2/2     Running     0          2m28s
wordpress-app-1-7mc4z                                   2/2     Running     0          2m28s
wordpress-app-1-deploy                                  0/1     Completed   0          2m43s

4) CI/CD parte 2 - Ejecutar canalización de Tekton

Pasos:

Consulta la lista de recursos creados:

$ tkn resource ls
NAME              TYPE    DETAILS
app-git         git         url: https://github.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4
app-image   image   url: image-registry.openshift-image-registry.svc:5000/wordpress-deploy/openshift-nginx-phpfpm-s2i
$ tkn task ls
NAME               AGE
openshift-client   58 seconds ago
s2i-php            1 minute ago
$ tkn pipeline ls
NAME                   AGE                 LAST RUN                                                              STARTED         DURATION   STATUS
build-and-deploy  3 minutes ago   openshift-nginx-phpfpm-deploy-pipelinerun-vt7cf  3 minutes ago   1 minutes      Succeeded

Supervise el oleoducto de Tekton:

$ tkn pipeline logs -f
...
[deploy : oc] build.build.openshift.io/wordpress-2 started
...

Para iniciar una nueva ejecución de canalización:

$ tkn pipeline start build-and-deploy-2 -w name=shared-workspace,volumeClaimTemplateFile=https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/01_pipeline/03_persistent_volume_claim.yaml -p deployment-name=wordpress -r app-git=app-git -r app-image=app-image -s pipeline

5) Importación de los datos de producción de muestra usando CLI

Nota :Debido al gran tamaño de nuestro archivo de base de datos exportado, procederemos utilizando los comandos CLI. Tenga en cuenta que al utilizar la herramienta de importación de Phpmyadmin, obtendrá un error de tiempo de espera de puerta de enlace 504 debido a los límites de la importación de Phpmyadmin.

Pasos:

Ingrese al contenedor del pod DB:

$ oc get pods -n wordpress-deploy
NAME                        READY   STATUS       RESTARTS   AGE
phpmyadmin-1-build          0/1     Completed    0          19h
phpmyadmin-1-deploy         0/1     Completed    0          19h
phpmyadmin-1-fjhfn          1/1     Running      0          19h
wordpress-app-1-8jtzg       2/2     Running      0          19h
wordpress-app-1-build       0/1     Completed    0          19h
wordpress-app-1-deploy      0/1     Completed    0          19h
wordpress-app-1-ks48k       2/2     Running      0          19h
wordpress-app-db-1-bcmnn    1/1     Running      0          19h
wordpress-app-db-1-build    0/1     Completed    0          19h
wordpress-app-db-1-deploy   0/1     Completed    0          19h
$ oc rsh wordpress-app-db-1-bcmnn
sh-4.2$

Importe el archivo de copia de seguridad mediante la CLI:

sh-4.2$ curl -O https://raw.githubusercontent.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4/master/deploy/database_backup.sql
sh-4.2$ mysql -h 127.0.0.1 -u root -D wordpress < database_backup.sql

(Opcional) Dentro de wp_options tabla, editar siteurl y casa valores correspondientes a la ruta de su aplicación.

Obtenga la ruta de la aplicación de WordPress:

$ oc get route wordpress-app
NAME            HOST/PORT                                                                 PATH   SERVICES        PORT    TERMINATION   WILDCARD
wordpress-app   wordpress-app-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org          wordpress-app   <all>                 None

Visite la ruta de la aplicación, donde debería ver la Página de inicio de la aplicación .

[ Obtenga este libro electrónico gratuito:Administrar sus clústeres de Kubernetes para principiantes. ]

Resumir

Esta guía proporciona un buen punto de partida para crear su pila de desarrollador de WordPress en OpenShift 4 y lo prepara para una configuración exitosa.

Recursos y créditos

  • Repositorio de código fuente
  • Drupal en OpenShift:implementación de su primer sitio Drupal
  • Drupal en OpenShift:Mejorando la experiencia del desarrollador

Linux
  1. Cómo implementar su primer pod en un clúster de Kubernetes

  2. Cómo crear un subdominio para su sitio web

  3. Cómo crear su sitio Plesk

  4. Cómo crear un pem para su SSL existente

  5. Cómo crear una galería de imágenes en WordPress

Cómo agregar un reCAPTCHA a su sitio web de WordPress

Cómo crear su propia VPN:instrucciones detalladas

Cómo instalar WordPress en una pila Nginx LEMP usando Ubuntu 14.04

Cómo configurar su primer sitio web de WordPress

Cómo asegurar o fortalecer su sitio web de WordPress

Cómo crear un entorno de prueba de WordPress