Workshop - Flujos de trabajo

Lee esto en otros idiomas:
uk English, japan日本語, brazil Portugues do Brasil, france Française, Español Español.

Tabla de contenidos

Objetivos

La idea básica de un flujo de trabajo es vincular varias plantillas de trabajo juntas. Pueden o no compartir inventario, playbooks o incluso permisos. Los enlaces pueden ser condicionales:

Y los flujos de trabajo ni siquiera se limitan a plantillas de trabajo, sino que también pueden incluir actualizaciones de proyectos o inventarios.

Esto permite nuevas aplicaciones para Ansible Tower: diferentes plantillas de trabajo pueden construirse unas sobre otras. Por ejemplo, el equipo de redes crea playbooks con su propio contenido, en su propio repositorio Git e incluso se dirige a su propio inventario, mientras que el equipo de operaciones también tiene sus propios repositorios, playbooks e inventario.

En este laboratorio aprenderá a configurar un flujo de trabajo.

Guía

Escenario de laboratorio

Tiene dos departamentos en su organización:

Cuando hay un nuevo servidor Node.js para implementar, dos cosas deben suceder:

Equipo de operaciones web:

Equipo de desarrolladores web


Para hacer las cosas un poco más fáciles para usted, todo lo necesario ya existe en un repositorio Github: Playbooks, Arhivos JSP, etc. Sólo necesitas copiarlo y pegarlo.

Nota

En este ejemplo utilizamos dos ramas diferentes del mismo repositorio para el contenido de los equipos separados. En realidad, la estructura de los repositorios de SCM depende de muchos factores y podría ser diferente.

Configurar Proyectos

En primer lugar, debe configurar el repositorio de Git como lo haría normalmente.

Advertencia

Si aun se encuentra logueado como usuario wweb, cierre la sesión e inicie sesión como usuario admin de nuevo.**

Cree el proyecto para el equipo de operaciones web. En la vista Projects, haga clic en el + del botón verde y rellénelo de la siguiente manera:

Parámetro Valor
NAME Webops Git Repo
ORGANIZATION Default
SCM TYPE Git
SCM URL https://github.com/ansible/workshop-examples.git
SCM BRANCH/TAG/COMMIT webops
SCM UPDATE OPTIONS
  • ✓ CLEAN
  • ✓ DELETE ON UPDATE
  • ✓ UPDATE REVISION ON LAUNCH

Cree el proyecto para el equipo de desarrolladores web. En la vista Projects, haga clic en el + del botón verde y rellénelo de la siguiente manera:

Parámetro Valor
NAME Webdev Git Repo
ORGANIZATION Default
SCM TYPE Git
SCM URL https://github.com/ansible/workshop-examples.git
SCM BRANCH/TAG/COMMIT webdev
SCM UPDATE OPTIONS
  • ✓ CLEAN
  • ✓ DELETE ON UPDATE
  • ✓ UPDATE REVISION ON LAUNCH

Configurar Plantillas de trabajo

Ahora tienes que crear dos plantillas de trabajo como lo harías para los trabajos “normal”.

Vaya a la vista Templates, haga clic en + del botón verde y elija Job Template:

Parámetro Valor
NAME Web App Deploy
JOB TYPE Run
INVENTORY Workshop Inventory
PROJECT Webops Git Repo
PLAYBOOK rhel/webops/web_infrastructure.yml
CREDENTIAL Workshop Credentials
LIMIT web
OPTIONS ✓ ENABLE PRIVILEGE ESCALATION

Vaya a la vista Templates, haga clic en el + del botón verde y elija Job Template:

Parámetro Valor
NAME Node.js Deploy
JOB TYPE Run
INVENTORY Workshop Inventory
PROJECT Webdev Git Repo
PLAYBOOK rhel/webdev/install_node_app.yml
CREDENTIAL Workshop Credentials
LIMIT web
OPTIONS ✓ ENABLE PRIVILEGE ESCALATION

Consejo

Si quieres saber cómo son los Playbooks de Ansible, echa un vistazo a la URL de Github y cambia a las ramas adecuadas.

Configurar el Flujos de trabajo

Configure el flujo de trabajo. Los flujos de trabajo se configuran en la vista Templates, es posible que haya notado que puede elegir entre Job Template y Workflow Template al agregar una plantilla.

workflow add

NAME Deploy Webapp Server
ORGANIZATION Default

Después de guardar la plantilla, se abre el Workflow Visualizer para permitirle crear un flujo de trabajo. Más adelante puede abrir el Workflow Visualizer de nuevo mediante el botón de la página de detalles de la plantilla.

workflow node

Consejo

El uso de la red “x” le permite eliminar el nodo, el signo más verde le permite agregar el siguiente nodo y los vínculos de símbolo de cadena a otro nodo.

Consejo

El tipo permite flujos de trabajo más complejos. Podría diseñar diferentes rutas de ejecución para ejecuciones exitosas y fallidas del playbook.

Consejo

El Workflow Visualizer tiene opciones para configurar flujos de trabajo más avanzados, consulte la documentación.

Iniciar flujo de trabajo

Su flujo de trabajo está listo para iniciarse, ejecútelo.

Observe cómo se muestra la ejecución del flujo de trabajo en la vista de trabajo. A diferencia de una ejecución de trabajo de plantilla de trabajo normal esta vez, no hay ninguna salida de playbooks a la derecha, sino una representación visual de los diferentes pasos del flujo de trabajo. Si quieres ver los playbooks reales detrás de eso, haz clic en DETAILS en cada paso. Si desea volver de una vista de detalles al flujo de trabajo correspondiente, haga clic en el archivo w-button en la línea JOB TEMPLATE de la parte DETAILS en el lado izquierdo de la descripción general del trabajo.

jobs view of workflow

Una vez finalizado el trabajo, compruebe si todo ha funcionado bien: inicie sesión en node1, node2 o node3 desde el host de control y ejecute:

$ curl http://localhost/nodejs

También puede ejecutar curl en el host de control, apuntando hacia los nodos y consultar la ruta de acceso nodejs, también debe mostrar la aplicación nodejs simple.


Navegación
Ejercicio anterior - Próximo Ejercicio

Haga clic aquí para volver al Taller Ansible for Red Hat Enterprise Linux