DEFENSA OLIVER BERJANO - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
se me da fatal esto voy a ver si voy a ver si encuentro la opción aquí de compartir
00:00:00
los más acciones no me sale la opción ver atajos configuración estadística
00:01:07
antes ya sí sí sí estaba mirando en otro lado al auto ser windows permitir pantalla
00:01:16
Permitid pantalla completa
00:01:28
Ahora lo ves, ¿no?
00:01:31
Vale
00:01:35
No sé si hay algún inconveniente, Pilar
00:01:35
Tengo aquí algunas notas aquí sobre la mesa
00:01:40
Porque me pongo muy nervioso
00:01:43
Y si no me voy a liar
00:01:44
Y no sé que diga cosas que no deba
00:01:47
Vale, perfecto
00:01:49
Se me escucha bien, ¿no?
00:01:53
Vale, genial
00:01:56
Voy a abrir la presentación
00:01:57
Vale, voy a poner también mi temporizador
00:01:59
que también me ayuda a saber por dónde voy, pues muchísimas gracias Pilar.
00:02:04
Pues en principio, buenos días, quería presentaros mi proyecto,
00:02:17
mi defensa de proyecto de un sistema de configuración y aprovisionamiento automatizado con Ansible.
00:02:23
En principio este proyecto propone un sistema automatizado de configuración y aprovisionamiento de servidores
00:02:30
en entornos mixtos cuyo objetivo es eliminar tareas repetitivas y manuales, reducir errores
00:02:38
y mejorar la eficiencia operativa. Como sabemos en entornos empresariales esta solución puede
00:02:45
permitir acelerar el despliegue de infraestructuras y garantizar sobre todo las configuraciones sean
00:02:52
consistentes entre los diferentes entornos. En el siguiente capítulo vamos a analizar cuáles son
00:02:57
los motivos del porqué automatizar. Es un hecho real que muchas organizaciones aún
00:03:04
dependen de procesos manuales para configurar servidores, implementar aplicaciones o gestionar
00:03:10
infraestructuras. Esto conlleva algunos inconvenientes como que son propensos a errores, son procesos
00:03:15
también que son muy lentos y sobre todo una de las cosas que más se mira a día de hoy
00:03:23
que es que tienen poca escalabilidad los procesos manuales.
00:03:27
La automatización se ha convertido en un pilar fundamental en la administración de sistemas modernos,
00:03:34
especialmente en los sistemas más complejos, y con ello permite eliminar tareas manuales repetitivas,
00:03:39
garantizar la consistencia en entornos de servidores y acelerar el despliegue de infraestructuras.
00:03:45
Para ello se emplean herramientas de automatización, como en el ejemplo del proyecto se ha usado Ansible.
00:03:50
Ansible puede resolver problemas reales mediante la automatización a través de una sola herramienta, pero veamos qué realmente es Ansible.
00:03:57
Ansible es un software, es una aplicación libre de OpenShift que permite aprovisionar sistemas.
00:04:08
Entendemos por aprovisionar sistemas desde preparar y configurar un servidor o una máquina para que esté listo para su uso,
00:04:16
desde instalar una máquina virtual, instalar paquetes de software, así como configurar servicios o permisos, etc.
00:04:24
Por otro lado, Ansible cuenta con una serie de complementos que se les denomina módulos que sirven para provisionar servicios.
00:04:33
Estos módulos son componentes reutilizables que realizan tareas muy específicas, como por ejemplo, puede ser copiar archivos,
00:04:43
instalar paquetes o gestionar servicios. Además, Ansible, a diferencia de los scripts de BaaS,
00:04:50
que son herramientas imperativas, Ansible es una herramienta declarativa, se describe el final,
00:04:58
el objetivo final del propósito. ¿Esto qué quiere decir? Pues que se le indica cuál es el estado deseado,
00:05:03
se le indica, por ejemplo, que quiero instalar Apache, que lo quiero habilitar e incluso decirles que lo inicie.
00:05:10
Por otro lado, cumple con el principio de indepotencia, lo que significa que se puede ejecutar una tarea de forma indefinida sin afectar al sistema, aplicando solamente los cambios que difieren con el estado final.
00:05:16
Por ejemplo, si tengo instalado Apache y tengo puesto que esté habilitado, pero en la siguiente ejecución, en la próxima interacción le digo que se inicie, pues ese va a ser el único cambio que va a efectuar.
00:05:29
Y por último, es abstracto de la complejidad. Esto significa que no es necesario escribir comandos específicos, porque para ello se utilizan los módulos, como por ejemplo hay un módulo que se llama apt o el módulo service.
00:05:41
Por último, veamos, uy, perdón, lo siguiente es simplemente indicar que a diferencia de otras herramientas de automatización, Ansible no requiere de instalar o configurar agentes remotos en los nodos.
00:05:53
Ahora sí, veamos un ejemplo de cómo funciona Ansible.
00:06:06
Por un lado tenemos un servidor con un Ubuntu en el cual está instalado Ansible
00:06:12
y hay un fichero de inventario donde se declaran las máquinas, los servidores
00:06:16
y por otro lado están los playbooks, que son esos archivos
00:06:20
donde van a tener todas las instrucciones que se van a ejecutar en los nodos.
00:06:24
Este nodo se le denomina el nodo de control, donde está Ansible instalado.
00:06:28
Por otro lado vamos a tener los nodos gestionados
00:06:32
que pueden ser un Ubuntu o puede ser un Windows perfectamente, cuya comunicación con el nodo de control
00:06:35
se va a realizar a través de los protocolos SSH y Windows Remote.
00:06:41
A continuación veamos que el objetivo del proyecto en general es la automatización,
00:06:50
automatizar la gestión de servidores, en este caso heterogéneos, para mejorar la eficiencia, la consistencia y la escabilidad.
00:06:56
Y por otro lado tenemos los objetivos específicos que son reducir los tiempos de despliegue,
00:07:03
también eliminar inconsistencia en las configuraciones, facilitar la replicación entre los diferentes entornos
00:07:08
y por último, para facilitar esa labor, se va a centralizar la gestión a través de Semáforo UI
00:07:15
que simplemente es una interfaz gráfica diseñada para el uso de Ansible.
00:07:20
Este proyecto es un desarrollo con un enfoque destinado a DevOps, permitiendo adaptar el desarrollo a posibles cambios
00:07:29
y entregando un valor de manera rápida a través de iteraciones, ¿vale?
00:07:40
En un proyecto ágil que avanza de forma interactiva.
00:07:45
Esto nos va a permitir que...
00:07:49
Uy, perdón, esto no...
00:07:52
Al final este desarrollo ágil se va a realizar a través de una metodología Scrum
00:07:53
con esplenificación en Spring.
00:07:59
Scrum es una metodología ágil de gestión de proyectos
00:08:01
que se suele usar de forma habitual en las empresas
00:08:04
destinadas a desarrollo de software.
00:08:08
Y por otro lado, para la gestión de estas tareas,
00:08:12
se va a realizar a través de la aplicación Jira,
00:08:16
que permite, pues eso, es una herramienta para gestionar proyectos, tareas
00:08:19
y principalmente también equipos.
00:08:23
El objetivo final con estas iteraciones, con estas fases del proyecto,
00:08:26
son entregables que sean funcionables de playbooks validados,
00:08:33
y dados, resultados que podamos documentar, que el inventario esté actualizado, el inventario
00:08:36
de máquinas esté actualizado, realizar pruebas de indepotencia y sobre todo tener un control
00:08:41
en las versiones de los cambios que se realicen en los playbook.
00:08:46
Veamos a continuación cuál es la estructura técnica de la solución que se ha llevado
00:08:50
a cabo en el proyecto.
00:08:55
Y por un lado tenemos un J-Anfitrion, que en este caso he utilizado un macOS, al cual
00:08:58
se le ha instalado un VMWare Fusion para virtualizar máquinas virtuales, tenemos un nodo de control
00:09:04
que es el nodo con Ubuntu, con Ansible y Semáforo UI y por otro lado tenemos los nodos administrados
00:09:11
por el nodo de control que en este caso es un Ubuntu y un Windows. La comunicación entre
00:09:17
estos nodos, entre el nodo de control y el nodo administrado se realiza a través de
00:09:25
una red personalizada ad hoc creada en vmware fusion y como vimos anteriormente la comunicación
00:09:28
entre los nodos se realiza a través de los protocolos ssh y windows remote veamos ahora
00:09:34
que hasta el momento hemos hablado de la solución de la estructura técnica de la solución hablemos
00:09:43
ahora cuál ha sido el stack tecnológico y en rasgos generales incluye pues los sistemas
00:09:49
operativos utilizados ha sido macOS, Ubuntu Desktop y Microsoft Windows. En cuanto a software
00:09:54
de virtualización, VMware Fusion. Herramientas para automatización, Ansible y Semáforo UI como
00:10:00
interfaz gráfica. Por otro lado, como gestor de base de datos se ha utilizado MariaDB para el
00:10:07
caso de Semáforo UI, que es necesario para archivar toda la información de los usuarios. Y por otro
00:10:14
lado en cuanto al lenguaje se ha utilizado principalmente Python y PowerShell y gestión
00:10:19
de paquetes se ha utilizado APT para Linux y Chocolatey que es una solución para Windows
00:10:26
que funciona similar a APT. Por último simplemente indicar que se ha priorizado el uso de software
00:10:31
libre en la medida que ha sido posible. Hablemos ahora a continuación de los recursos humanos
00:10:37
que han sido necesarios para implementar esta solución. Por un lado un administrador de
00:10:47
sistemas encargados para la creación y la configuración inicial de servidores. Por otro
00:10:51
lado, un desarrollador al cual se le ha consultado para determinar el software y las herramientas
00:10:55
específicas necesarias y sin duda la figura más relevante un DevOps para la creación y
00:11:00
mantenimiento y ejecución de los playbook. Hablemos de la planificación que ha sido dividida en tres
00:11:05
sprint o fases basado en entregas establecidas por el proyecto. Un primer sprint que contenía
00:11:11
la planificación y los objetivos y la selección de herramientas, un segundo sprint que comprende
00:11:18
el grosso del proyecto que ha sido la instalación, la configuración de entornos y el desarrollo
00:11:25
de playbooks y las pruebas y un último y tercer sprint que principalmente se ha enfocado
00:11:29
en la documentación y en la preparación de la presentación. Esto nos ha llevado a
00:11:35
una entrega del proyecto que fue el 5 de mayo del 2025 y se ha invertido un total aproximado
00:11:42
de 52 horas. El resultado final del proyecto ha supuesto una infraestructura mínima pero
00:11:47
completamente funcional con fines demostrativos en la que se ha utilizado Semáforo UI para
00:11:54
poder gestionar los playbooks, se han instalado utilidades y herramientas en los nodos administrados
00:11:59
tanto Linux como Windows, por otro lado se ha instalado un servidor web con Apache, MariaDB
00:12:05
y php al cual también se ha instalado un cms tipo wordpress por otro lado se ha gestionado
00:12:11
los servidores windows mediante windows remote además se ha instalado chocolate y para la gestión
00:12:18
de paquetes similar a cómo funciona pete en linux y por último se ha instalado un entorno
00:12:25
de desarrollo basado en punto net para ejecución de proyectos veamos a un ejemplo de ejecución de
00:12:29
ansible dura un minuto aquí lo que estamos viendo ahora mismo es verificar que en el servidor web
00:12:36
server estamos comprobando que apache no está instalado antes de ejecutar la tarea programada
00:12:43
tras ejecutar la tarea en semáforo y vemos cómo va pasando por todos los procesos que han sido
00:12:49
configurados en el playbook desde actualizar apt instalar maría debe instalar apache e instalar
00:12:57
todos los módulos necesarios para poder levantar un servidor web con wordpress con permiso de ver
00:13:05
agua aquí estamos viendo como todas esas configuraciones que se han metido a través
00:13:20
de los playbook están aquí referenciadas desde el usuario y todas las configuraciones correspondientes
00:13:42
en la siguiente captura podemos ver un resumen general de semáforo y donde se ven todas las
00:13:47
tareas y las ejecuciones realizadas llegando al fin a través de la automatización comprobamos que
00:13:54
A través de la automatización comprobamos, este proyecto es aplicable principalmente en entornos de administración de infraestructuras de empresa y mediana y gran escala,
00:14:03
centros de datos y proveedores de servicio, por otro lado también es aplicable a equipos de devos o sistemas
00:14:15
y por último se podría aplicar por ejemplo a unas entidades públicas que requieran estandarización o automatización.
00:14:21
A través de la automatización comprobamos que a través de la gestión de los servidores se vuelve mucho más rápida, uniforme y segura. Además, las configuraciones se aplican de forma consistente entre los entornos y la solución se adapta a un crecimiento de la infraestructura, es decir, es escalable.
00:14:27
El uso de Ansible no solo es útil para la automatización actual
00:14:45
sino que también abre puertas a vías futuras
00:14:49
como por ejemplo una de las medidas que se pueden implementar en Ansible
00:14:51
es el uso de roles y reutilizar funcionalidades
00:14:55
el uso de Ansible Vault para cifrar y proteger datos sensibles
00:14:57
y por ejemplo integrar con JIT para la gestión de versiones
00:15:01
y poder trabajar de forma colaborativa
00:15:05
y también integrar con Terraform y Jenkins
00:15:08
Y hasta aquí, aunque no es el final porque hay una despedida
00:15:11
Te cedo el testigo y quedo a tu disposición ante cualquier pregunta
00:15:14
Sí, por supuesto
00:15:19
Simplemente comentar que cuando os hablaba del capítulo de metodología
00:16:05
Lo primero que me vino a la mente es utilizar Scrum
00:16:10
Porque al final los playbooks no es más que un desarrollo de software
00:16:13
Y por otro lado utilicé Jira para la gestión de todas las tareas
00:16:17
Que iban a estar involucradas a lo largo del proyecto
00:16:20
¿Por qué he utilizado esta metodología?
00:16:25
simplemente porque actualmente trabajo en un departamento de DevOps desde hace un año
00:16:27
y es algo que utilizamos y estamos obligados a utilizar la metodología Scrum y utilizamos Jira como herramienta.
00:16:31
Entonces te cuento que es un poco Jira, Jira como he comentado un poco brevemente anteriormente
00:16:38
es una herramienta que te permite gestionar el backlog, el backlog no es más que un listado de tareas
00:16:42
que previamente se han definido y que los operarios, los activos van resolviendo a medida que se van necesitando.
00:16:48
Se organizan a través de Spring de forma que puedas hacer una entrega de forma rápida y ágil
00:16:55
Cambios en las versiones, pues por ejemplo, ahora mismo se ha hecho una solución
00:17:01
Que es esta, la que se ha expuesto y se ha realizado en 3Spring
00:17:06
Pero ahora viene una siguiente fase que se podría ampliar este proyecto
00:17:11
Y empezar a hacer nuevas integraciones o añadir nuevas funcionalidades a Ansible
00:17:15
Y eso requeriría un nuevo Spring, por lo tanto habría que añadir nuevas tareas al backlog
00:17:21
que se gestionarían a través de la herramienta Jira a la cual se le pueden indicar una estimación de tiempo que se puede determinar por puntos o por tiempo real en minutos o en horas como hice en mi caso y me quedé en blanco y creo que no sé si te ha resuelto la duda pero básicamente es una herramienta de pago pero Jira tiene una versión gratuita que es la que he utilizado yo
00:17:25
que tiene como un máximo de 10 usuarios que la pueden utilizar de forma gratuita
00:17:55
y es completamente funcional.
00:17:59
Aunque hay algunas cosas que difieren un poco de la versión de pago,
00:18:01
pero me las tuve que apañar para poder, eso es, para poder producirlo para este proyecto
00:18:04
y ajustarlo un poco.
00:18:10
Pues, por ejemplo, no me dejaba utilizar tareas y dentro de una tarea no me dejaba asociar subtareas
00:18:11
para luego asignarlas a una historia.
00:18:18
Sin embargo, en la versión de pago sí que me deja seguir la nomenclatura,
00:18:20
seguir el esquema principal que es una épica, una épica engloba historias, esas historias engloba tareas
00:18:22
y una tarea puede estar subdividida en varias subtareas, pues eso en la versión gratuita no me deja
00:18:28
entonces solamente tuve que jugar con épicas que es el grosso principal del proyecto
00:18:34
que en este caso es el proyecto de Ansible, luego dividirlo en historias que serían los hitos principales
00:18:40
y luego lo tuve que dividir en subtareas que ya eran todas las tareas desde instalación, preparar los playbooks
00:18:45
hacer las pruebas de potencia, etcétera. No sé si resuelve eso la duda planteada.
00:18:52
Muchas gracias. Sí, mira, por ejemplo, una de las tareas que se pueden automatizar,
00:19:01
por ejemplo, es una de las cosas que hemos visto es la instalación de Apache.
00:19:17
La instalación de Apache de una forma muy completamente sencilla, como había comentado durante la presentación,
00:19:22
Es una herramienta declarativa y uno de los principios que cuenta esta herramienta es que es completamente abstracta de la complejidad.
00:19:27
No necesito, por ejemplo, si yo quiero instalar Apache, no tengo que indicar a Ansible sudo apt install apache2.
00:19:37
Solamente utilizas un módulo, que en el caso de instalación de unos componentes es apt,
00:19:45
Por debajo, Ansible ya sabe que el comando es sudo apt install y solamente le tenemos que indicar cuál es el servicio que quiere instalar, en este caso Apache 2.
00:19:52
Así funciona el despliegue con Ansible de cualquier aplicación.
00:20:02
Ansible cuenta, como he comentado, con diferentes módulos.
00:20:08
He puesto un ejemplo anterior, que por ejemplo es el módulo de APT, que son los más sencillos de entender, y el de Service, para poder cambiar el estado de un servicio, desde ponerlo a Stop, a Enable o a Start, y en base con los módulos puede jugar.
00:20:11
Ahí Ansible prácticamente integra todos los módulos existentes. Incluso una persona puede generar sus propios módulos ad hoc si lo ve correspondiente y los puede integrar perfectamente en Ansible. Pero a día de hoy la comunidad de Ansible es tan sumamente grande que es raro no encontrar un módulo que ya exista.
00:20:26
Y si existe, lo podéis integrar en Ansible si ya no lo trae por defecto. Por ejemplo, yo para poder conectar con las máquinas de Windows, tuve que instalar un módulo de Python, que es PIP, y eso lo que me permitía era conectar con nodos Windows a través de Windows Remote.
00:20:47
Sí, muchísimas gracias. No hay problema. Y si me permites, simplemente por último quería dar las gracias a la institución y al profesorado del Instituto de Ignacio de Ayacuría por vuestro tiempo y la dedicación y el seguimiento en este proyecto.
00:21:07
os lo agradezco enormemente
00:21:48
os dejo aquí en la parte inferior
00:21:50
mi nombre
00:21:52
bueno, mi contacto
00:21:54
y un repositorio de GitHub
00:21:56
donde está publicado el proyecto
00:21:58
de Ansible, está publicado
00:22:00
para la comunidad por si alguien lo quiere reutilizar
00:22:02
y
00:22:04
exacto
00:22:05
pues muchísimas gracias y hasta aquí
00:22:21
ya sí que he terminado, muchísimas gracias
00:22:27
Pilar y espero que haya sido
00:22:29
de tu agrado
00:22:31
muchísimas gracias, hasta luego Pilar
00:22:32
- Materias:
- Administración de Sistemas Informáticos en Red
- Etiquetas:
- Gestión de proyectos
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- M.pilar P.
- Licencia:
- Reconocimiento - No comercial - Sin obra derivada
- Visualizaciones:
- 1
- Fecha:
- 13 de mayo de 2025 - 12:10
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 22′ 40″
- Relación de aspecto:
- 1.88:1
- Resolución:
- 1920x1020 píxeles
- Tamaño:
- 1.44