os05 - gpulido-redhat/workshopclaro GitHub Wiki

OpenShift Dia 5

Meta:
Revisión de general del taller y laboratorios

Objetivos:
- Revisión de general del taller y laboratorios

Laboratorios:
-Laboratorio 01: Containers con Podman
-Laboratorio 02: Containers con Openshift
-Laboratorio 03: Aplicaciones no persistentes
-Laboratorio 04: Aplicaciones persistentes


Review Red Hat Openshift Container Platform

Arquitectura Red Hat Openshift Container Platform

Red Hat Openshift 4 - Diagrama de Referencia

Red Hat Openshift Operators

Red Hat Openshift Topology

Red Hat CodeReady Workspaces

Red Hat Openshift Istio Service Mesh (Microservicios)

Red Hat Openshift Virtualizacion

Red Hat Openshift Monitoring, Alerting, Events


Laboratorio 01: Containers with Podman

NOTA:

  • Las tareas a ejecutarse serán en la estación client0X.opennova.pe, donde X es el numero de usuario del 1 al 6 respectivamente.
  • En el caso de solicitar la creación de algún usuario nuevo utilizar userX donde X es el numero de usuario del 1 al 6 respectivamente y la contraseña será redhat.

Para resolver el siguiente laboratorio utilizar la documentación explicada en el día 01.

Requerimientos:
1. Implementar un contenedor de sistema operativo rhel8 con la siguiente información:

  • El nombre del contenedor debe ser: rhel8-server
  • Utilizar la imagen de contenedor: registry.access.redhat.com/ubi8:latest
  • Conectarse al contenedor y crear el usuario userX con contraseña redhat.
  • Grabar los cambios realizados en una imagen llamada: rhel8-server-custom
  • Guardar una copia de la imagen rhel8-server-custom y guardarla en: /home/developer/rhel8-server-custom
  • Depurar el espacio de trabajo con (podman stop -a ; podman rm -a; podman rmi -af)
  • Cargar la imagen ubicada en: /home/developer/rhel8-server-custom
  • Correr la imagen cargada y validar que los últimos cambios estan presentes.

2. Implementar un contendor httpd con la siguiente información:

  • El nombre del contenedor debe ser: httpd-server
  • Utilizar la imagen de contenedor: rhscl/httpd-24-rhel7
  • Correr la imagen de contenedor publicando los puertos 8080:8080 y 8443:8443
  • Con el comando podman exec enviar un comando al contenedor a la ruta /var/www/html y crear un archivo index.html que diga "WORKSHOP CONTAINER USERX"
  • Validar con el comando curl -si http://localhost:8080, curl -si -k https://localhost:8443 que se pueda visualizar el contenido: "WORKSHOP CONTAINER USER X"
  • Grabar los cambios realizados en una imagen llamada: httpd-server-custom
  • Guardar una copia de la imagen httpd-server-custom y guardarla en: /home/developer/httpd-server-custom
  • Depurar el espacio de trabajo con (podman stop httpd-server ; podman rm httpd-server; podman rmi httpd-server)
  • Cargar la imagen ubicada en: /home/developer/httpd-server-custom
  • Correr la imagen cargada publicando los puertos 8080:8080 y 8443:8443 y validar que los últimos cambios estan presentes.

3. Implementar un contenedor mysql efímero con la siguiente información:

  • El nombre del contenedor debe ser: mysql-server
  • Utilizar la imagen de contenedor: registry.access.redhat.com/rhscl/mysql-57-rhel7
  • Usar las variables de ambiente: MYSQL_USER=userX MYSQL_PASSWORD=redhat MYSQL_DATABASE=samples MYSQL_ROOT_PASSWORD=Password$
  • Cargarle la base de datos samples.sql descargarla de: ftp://classroom.opennova.pe/openshift/podman/samples.sql
  • Conectarse al contenedor y validar que las variables de ambiente esten correctas con el comando linux: $ env | grep ^MYSQL_
  • Conectarse a la base de datos con el comando: mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE
  • Hacer a la base de datos Samples tabla Items: USE Samples; SELECT * FROM Items;

4. Implementar un contenedor mysql persistente con la siguiente información:

  • Crear un directorio en: /home/developer/db/datos
  • Configurar el contexto container_file_t al directorio /home/developer/db/datos
  • Aplicar el contexto con restorecon -RFvv /home/developer/db/datos
  • Utilizar el comando: podman unshare chown 27:27 /home/developer/db/datos
  • El nombre del contenedor debe ser: mysql-server-persistent
  • Utilizar la imagen de contenedor: registry.access.redhat.com/rhscl/mysql-57-rhel7
  • Publicar el puerto 13306 del host al puerto 3306 del contenedor
  • Montar la carpeta /home/developer/db/datos del host a /var/lib/mysql del contenedor
  • Usar las variables de ambiente: MYSQL_USER=userX MYSQL_PASSWORD=redhat MYSQL_DATABASE=samples MYSQL_ROOT_PASSWORD=Password$
  • Cargarle la base de datos samples.sql descargarla de: ftp://classroom.opennova.pe/openshift/podman/samples.sql
  • Conectarse al contenedor y validar que las variables de ambiente estén correctas con el comando linux: $ env | grep ^MYSQL_
  • Conectarse a la base de datos con el comando: mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE
  • Hacer a la base de datos Samples tabla Items: USE Samples; SELECT * FROM Items;
  • Validar que pueda ver el contenido del almacenamiento en el host ejecutando: podman unshare ls -l /home/developer/db/datos/*

5. Construir una imagen de contenedor con la siguiente información:


Laboratorio 02: Containers with Openshift

NOTA:

  • Las tareas a ejecutarse serán en la estación client0X.opennova.pe, donde X es el numero de usuario del 1 al 6 respectivamente.
  • En el caso de solicitar la creación de algún usuario nuevo utilizar userX donde X es el numero de usuario del 1 al 6 respectivamente y la contraseña será redhat.

Para resolver el siguiente laboratorio utilizar la documentación explicada en el día 02.

Requerimientos:

1. Desplegar una aplicación utilizando el repositorio fork wsopenshift en su cuenta personal

  • El nombre de la aplicación será: myapp
  • El codigo esta en GitHub: https://github.com//wsopenshift
  • El context-dir es: php-helloworld
  • Deberá tener una etiqueta app=hello
  • Exponer la aplicación con el nombre: myapp.apps.cluster.opennovalabs.pe
  • Verificar el funcionamiento con: curl -si http://myapp.apps.cluster.opennovalabs.pe

2. Implementar un contendor httpd con la siguiente información:

Moverse inicialmente al branch master con el comando: git checkout master Crear un nuevo branch de nombre dev-php y moverse a este: git checkout -b dev-php ; git push -u origin dev-php ; git status Crea un proyecto de nombre: dev0X-php (donde X es el numero de su usuario del 1 al 6) Crear un nuevo despliegue con los siguientes datos:

  • El nombre de la aplicación será: dev-php
  • La estrategia de despliegue será: source
  • El código será: https://github.com//wsopenshift#dev-php
  • El directorio de contexto será: php-helloworld
  • Crear una etiqueta app=dev
  • Exponer el servicio dev-php con el hostname: dev-php.apps.cluster.opennovalabs.pe

Hacer una modificación al index.html para que contenga:

<?php
print "Custom Hello, World! php version is " . PHP_VERSION . "\n";
print "Autor: <Nombre> <Apellido> \n";
?>

Guardar los cambios con: git commit -a -m "Adding Custom text and Author" y pushear con git push

Arrancar un nuevo build con el comando: oc start-build custom-php --follow

Validar con el comando curl -si http://dev-php.apps.cluster.opennovalabs.pe o firefox http://dev-php.apps.cluster.opennovalabs.pe que los cambios esten reflejados.

3. Implementar un contenedor mysql efímero con la siguiente información: Crear un contenedor mysql efimero con la siguiente informacion:

El nombre de la aplicacion sera: mysql La imagen sera: registry.access.redhat.com/rhscl/mysql-57-rhel7:latest Crear el aplicativo con la opcion de: --as-deployment-config Usar las siguientes variables:

  • MYSQL_USER=userX
  • MYSQL_PASSWORD=redhat
  • MYSQL_DATABASE=samples
  • MYSQL_ROOT_PASSWORD=Passw0rd$

Descargar el archivo samples.sql de: wget ftp:/classroom.opennova.pe/openshift/podman/samples.sql

Copiarla al directorio /tmp del pod mysql: Utilizar el comando oc cp

Conectarse al contenedor con el comando: oc rsh

Importar la base de datos con el comando: mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE < /tmp/sample.sql

Dentro del contenedor conectarse al mysql con el comando: mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE

Y hacer una consultar: USE Samples; Describe Items; Select * from Items;

4. Desplegar un proyecto web:

  • El nombre del proyecto sera: dev0x-webserver
  • El nombre del aplicativo sera: webserver
  • Para la imagen y contenido utilizar: global httpd~http://github.com//wsopenshift#custom-global
  • Directorio de contenido: --context-dir global
  • Exponer el servicio con el hostname: webserver.apps.cluster.opennovalabs.pe
  • Validar el contenido con firefox://webserver.apps.cluster.opennovalabs.pe

5. Desplegar un aplicativo por el framework cackephp por la interfaz grafica

  • El nombre del proyecto sera: dev0X-cakphp
  • El nombre del aplicativo sera: myphp
  • Se creara este recurso utilizando el builder php
  • El repositorio github es: https://github.com/openshift/cakephp-ex.git
  • Publicarlo con el nombre: myphp.apps.cluster.opennovalabs.pe

Para la interfaz grafica sus credenciales son: usuario: alumno0X ( donde X es el numero de su usuario del 1 al 6) password: redhat

Laboratorio 03: Aplicaciones no persistentes

NOTA:

  • Las tareas a ejecutarse serán en la estación client0X.opennova.pe, donde X es el numero de usuario del 1 al 6 respectivamente.
  • En el caso de solicitar la creación de algún usuario nuevo utilizar userX donde X es el numero de usuario del 1 al 6 respectivamente y la contraseña será redhat.

Para resolver el siguiente laboratorio utilizar la documentación explicada en el día 03.


- Crear un proyecto nuev en openshift referenciando su numero de alumno
- Crear el usuario alumno10X en el git del salon http://192.168.10.190:3000
- Crear un repositorio llamado website y poblarlo con el archivo comprimido descargado desde el ftp del salon wget ftp://192.168.10.190/openshift/website.tar.gz`
- Desplegar con openshift un servidor php con la imagen de podman disponible en el ftp del salon ftp://192.168.10.190/openshift/php-70-rhel7.tar`

- Cree un nuevo proyecto para sus servidor de aplicaciones tomcat
- Despliegue y valide su aplicacion con el calendario como pagina default
- Ademas del proyecto calendar como default, el sistema debera mapear las aplicaciones /calendar /sample /listener

Laboratorio 04: Aplicaciones persistentes

NOTA:

  • Las tareas a ejecutarse serán en la estación client0X.opennova.pe, donde X es el numero de usuario del 1 al 6 respectivamente.
  • En el caso de solicitar la creación de algún usuario nuevo utilizar userX donde X es el numero de usuario del 1 al 6 respectivamente y la contraseña será redhat.

Para resolver el siguiente laboratorio utilizar la documentación explicada en el día 03.


- Cree los recursos necesarios para el template gogs usando los nfs que tenga disponibles, en caso de requerir nuevos nfs o depurar antiguos, solicitelo al instructor
- Despliegue su propio gogs persistente en un proyecto nuevo con un url personal gogs0X.apps.cluster.opennovalabs.pe
- Redespliegue el ejercicio 01 del laborarorio del dia 3 con su nuevo git llamado gogs0X.apps.cluster.opennovalabs.pe (migue la data)

- En un nuevo proyecto de openshift, vuelva a desplegar cualquier proyecto anterior que se base en http o php
- Borre la ruta default del proyecto y cree una nueva con conexion cifrada por certificado digital
- Escale este proyecto a 4 pods


⚠️ **GitHub.com Fallback** ⚠️