GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare il tuo stack di sviluppatori WordPress su OpenShift 4

Era un freddo pomeriggio autunnale del 2019 e mi sono seduto dietro la mia scrivania con una tazza di tè caldo fumante dopo una discussione con il mio manager. Alla fine avevo deciso di prendere l'iniziativa di pianificare la migrazione di un sito Web di produzione globale da una singola macchina virtuale al cloud. Avevo già esperienza con Nginx e Apache come amministratore della macchina virtuale. La seconda parte della mia descrizione del lavoro è stata lo sviluppo delle funzionalità del sito Web in PHP. Sapevo che comprendere i requisiti sia dal punto di vista dello sviluppatore che dell'amministratore sarebbe stato importante per il mio approccio alla distribuzione di uno stack di sviluppatori WordPress su OpenShift. La mia motivazione da giovane era esplorare e apprendere nuove tecnologie mentre facevo i miei primi esperimenti in un ambiente sandbox sicuro.

[ Potrebbe piacerti anche:Impara OpenShift con Minishift ]

Ero consapevole del fatto che prima di lavorare con OpenShift in un ambiente di produzione, dovevo avere una solida conoscenza dei componenti del prodotto e di come interagiscono tra loro. Nelle prossime settimane ho passato del tempo a prepararmi per l'esame Red Hat OpenShift Administration II ea cercare risposte alle mie domande da parte degli architetti OpenShift, se necessario.

Quando non stavo studiando per l'esame, ho esaminato le funzionalità del prodotto OpenShift 4. Ho potuto vedere che, per un sito Web globale, molte di queste funzionalità sono molto importanti e renderebbero la mia esperienza di sviluppo molto più semplice. Ecco alcuni dei vantaggi:

  • Alta disponibilità
  • Automatizzazione del ridimensionamento
  • Gestione delle applicazioni
  • Sistema operativo leggero

Configurazione e distribuzione di applicazioni

Ecco alcune note da tenere a mente:

  • In questo articolo, non passo attraverso la selezione di un servizio di hosting o la procedura di installazione di OpenShift 4.
  • Il codice sorgente e il database utilizzati in questa guida sono esempi e non riflettono né utilizzano dati provenienti da alcun sito Web di produzione.
  • Questa guida deriva dalla mia esperienza personale mentre lavoravo con gli strumenti menzionati di seguito.
  • Se il tuo cluster OpenShift è accessibile pubblicamente, invece della configurazione di build basata su Docker, puoi utilizzare invece la configurazione di build basata sul codice sorgente.

1) Cloud IDE - Red Hat CodeReady

Nota :Sto usando questo documento come riferimento.

Prerequisiti:

  • ruolo di amministratore del cluster

Passi:

Crea un nuovo progetto:

$ oc new-project wordpress-deploy

Nel menu della dashboard a sinistra, fai clic su Operatori scheda e vai a OperatorHub scheda. CambiaProgetto nella parte superiore sinistra della pagina a wordpress-deploy progetto. Scegli Red Hat CodeReady Workspaces e fai clic su Installa pulsante. Su Operatore di installazione pagina, seleziona Scegli uno spazio dei nomi esistente e assicurati che wordpress-deploy lo spazio dei nomi è selezionato. Infine, fai clic su Installa pulsante.

Dopo l'installazione, continua facendo clic su Visualizza operatore pulsante. In API fornite , fai clic su Crea istanza .

In Crea CheCluster pagina, mantieni le impostazioni predefinite e fai clic su Crea pulsante.

Verifica l'installazione dell'operatore 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

Verifica che tutti i pod siano in In esecuzione stato e Pronto . Per tenere traccia dello stato di avanzamento dell'installazione, seguire i registri dell'operatore. Tieni presente che il percorso non essere pronti fino a quando i registri dal pod dell'operatore mostrano "CodeReady Workspaces è ora disponibile su http://xyz.org". Potrebbero volerci alcuni minuti.

$ 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"
...

Recupera percorso codeready:

$ 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 il percorso codeready e aggiorna le tue Informazioni sull'account . Sotto Inizia scheda, seleziona PHP CakePHP pila.

Verifica che Red Hat CodeReady Workspace è stato creato:

2) CI/CD parte 1 - Installa Tekton CLI e OpenShift Pipelines

Nota :Come riferimento, sto usando questo tutorial openshift/pipelines. Se sei interessato puoi controllare i concetti di alto livello di OpenShift Pipelines. Nel mio caso, ho scelto Tekton ma sentiti libero di usare Jenkins, CircleCI o qualsiasi altro strumento di pipeline preferito da te o dalla tua azienda.

Tekton è un framework open source nativo Kubernetes potente ma flessibile per la creazione di sistemi di integrazione continua e distribuzione continua (CI/CD). Ti consente di creare, testare e distribuire su più provider cloud o sistemi locali astraendo i dettagli di implementazione sottostanti. Roadmap 2020 di Tekton Pipelines.

Passi:

Installa Tekton CLI (tkn) da qui secondo il file readme nel repository.

Installa OpenShift Pipelines Operator.

Verifica l'installazione di Tekton CLI e 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) Applica un modello personalizzato che crea contenitori di applicazioni

Nota :ho usato un codice sorgente di esempio dal repository Github.

Passi:

Scarica il file modello utilizzando curl comando:

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

Carica il modello nel tuo spazio dei nomi:

$ oc create -f openshift-template.yaml

Prima di creare l'applicazione, prima elenca le variabili richieste per il modello:

$ 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}

Elabora il modello fornito, inclusi i valori dei parametri:

$ 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 -

Verifica che tutti i pod siano in In esecuzione o Completato stato:

$ 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 - Eseguire la pipeline Tekton

Passi:

Controlla l'elenco delle risorse create:

$ 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

Monitorare la pipeline Tekton:

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

Per avviare una nuova esecuzione della pipeline:

$ 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) Importazione dei dati di produzione del campione tramite CLI

Nota :A causa delle grandi dimensioni del nostro file di database esportato, procederemo utilizzando i comandi CLI. Tieni presente che, utilizzando lo strumento di importazione Phpmyadmin, otterresti un errore di timeout del gateway 504 a causa dei limiti dell'importazione di Phpmyadmin.

Passi:

Entra nel contenitore 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$

Importa il file di backup utilizzando 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

(Facoltativo) All'interno di wp_options tabella, modifica siteurl e casa valori corrispondenti al percorso dell'applicazione.

Ottieni il percorso dell'applicazione 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

Visita il percorso dell'applicazione, dove dovresti vedere la Home Page dell'applicazione .

[ Ottieni questo ebook gratuito:Gestione dei cluster Kubernetes per i manichini. ]

Concludi

Questa guida fornisce un buon punto di partenza per creare il tuo stack di sviluppatori WordPress su OpenShift 4 e ti prepara per una configurazione di successo.

Risorse e crediti

  • Repository del codice sorgente
  • Drupal su OpenShift:distribuire il tuo primo sito Drupal
  • Drupal su OpenShift:migliorare l'esperienza degli sviluppatori

Linux
  1. Come distribuire il tuo primo pod su un cluster Kubernetes

  2. Come creare un sottodominio per il tuo sito web

  3. Come creare il tuo sito Plesk

  4. Come creare un pem per il tuo SSL esistente

  5. Come creare una galleria di immagini in WordPress

Come aggiungere un reCAPTCHA al tuo sito Web WordPress

Come creare la tua VPN:istruzioni dettagliate

Come installare WordPress su uno stack Nginx LEMP utilizzando Ubuntu 14.04

Come configurare il tuo primo sito Web WordPress

Come proteggere o rafforzare il tuo sito Web WordPress

Come creare un ambiente di staging WordPress