os05 - gpulido-redhat/workshopclaro GitHub Wiki
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
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.
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:
- Crear un espacio de trabajo: ~/custom-apache2
- Descargar el archivo de contendor al espacio de trabajo: wget ftp://classroom.opennova.pe/openshift/podman/Containerfile
- Modificar dentro del archivo Containerfile la variable PORT de 8080 a 8081
- Crear un directorio src dentro de ~/custom-apache2
- Dentro de src clonar el proyecto global: git clone https://github.com/workshopopennova/global.git
- Construir la imagen con el nombre workshop/custom-apache2
- Correr la imagen construirda publicando los puertos 8081:8081
- Validar con el comando curl -si http://localhost:8081 y firefox http://localhost:8081
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.
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
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.
- 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
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.
- 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