Skip to content

Latest commit

 

History

History
312 lines (240 loc) · 10.2 KB

File metadata and controls

312 lines (240 loc) · 10.2 KB

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:

  • si la plantilla de trabajo A se realiza correctamente, la plantilla de trabajo B se ejecuta automáticamente después

  • pero en caso de error, se ejecutará la plantilla de trabajo C.

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:

  • El equipo de operaciones web que está desarrollando playbooks en su propia rama git llamado webops

  • El equipo de desarrolladores web que está desarrollando playbooks en su propia rama Git llamado webdev.

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

Equipo de operaciones web:

  • node.js necesita ser instalado, el firewall necesita abrir puertos y node.js debe iniciarse.

Equipo de desarrolladores web

  • Es necesario implementar la versión más reciente de la aplicación 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
  • Clic en SAVE

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
  • Clic en SAVE

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
  • Clic en SAVE

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
  • Clic en SAVE

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

  • Vaya a la vista Templates y haga clic en el + del botón verde. Esta vez elija Workflow Template
NAME Deploy Webapp Server
ORGANIZATION Default
  • Clic en SAVE

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.

  • Haga clic en el botón START, se abre un nuevo nodo. A la derecha puede asignar una acción al nodo, puede elegir entre JOBS, PROJECT SYNC, INVENTORY SYNC y APPROVAL.

  • En este laboratorio enlazaremos nuestros dos trabajos juntos, así que seleccione el trabajo Web App Deploy y haga clic en SELECT.

  • El nodo se anota con el nombre del trabajo. Pase el puntero del ratón sobre el nodo, y verá un rojo x, un verde + y un símbolodecadenasímbolo azul

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.

  • Haga clic en el signo verde +

  • Elija Node.js Deploy como el siguiente trabajo (es posible que tenga que cambiar a la página siguiente)

  • Deje Type establecido en On Success

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.

  • Haga clic en SELECT

  • Haga clic en SAVE en la vista WORKFLOW VISUALIZER

  • Haga clic en SAVE en la vista Workflow Template

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.

  • Haga clic en el botón azul LAUNCH directamente o vaya a la vista Templates e inicie el flujo de trabajo Deploy Webapp Server haciendo clic en el icono del cohete.

    launch

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