Lee esto en otros idiomas*:
English, 日本語, Portugues do Brasil, Française, Español.
Un proyecto de ansible Tower Project es una colección lógica de Playbooks de Ansible. Puede administrar sus playbooks colocándolos en un sistema de administración de código fuente (SCM) compatible con Tower, incluidos Git, Subversion y Mercurial.
Este ejercicio cubre
Para esta demostración usaremos playbooks almacenados en un repositorio Git:
https://github.com/ansible/workshop-examples
Ya se ha confirmado un Playbook para instalar el servidor web Apache en el directorio rhel/apache, apache_install.yml
:
---
- name: Apache server installed
hosts: all
tasks:
- name: latest Apache version installed
yum:
name: httpd
state: latest
- name: latest firewalld version installed
yum:
name: firewalld
state: latest
- name: firewalld enabled and running
service:
name: firewalld
enabled: true
state: started
- name: firewalld permits http service
firewalld:
service: http
permanent: true
state: enabled
immediate: yes
- name: Apache enabled and running
service:
name: httpd
enabled: true
state: started
Consejo
Note la diferencia con otros Playbooks que podría haber escrito! Lo más importante es que no hay
become
yhosts
” se establece comoall
.
Para configurar y utilizar este repositorio como un Sistema de Control de Código Fuente (SCM) en Tower, debe crear un Project que utilice el repositorio
Parámetro | Valor |
---|---|
NAME | Workshop Project |
ORGANIZATION | Default |
SCM TYPE | Git |
Ahora necesita la dirección URL para acceder al repositorio. Vaya al repositorio de Github mencionado anteriormente, elija el botón verde Clone or download a la derecha, haga clic en Use https y copie la URL HTTPS.
Nota
Si no hay Use https para hacer clic, pero un Use SSH, usted está bien: simplemente copie la URL. Lo importante es que copie la dirección URL empezando por https.
Introduzca la dirección URL en la configuración del proyecto:
Parámetro | Valor |
---|---|
SCM URL | https://github.com/ansible/workshop-examples.git |
SCM UPDATE OPTIONS | Marque las tres primeras casillas para obtener siempre una copia nueva del repositorio y actualizar el repositorio al iniciar un trabajo |
El nuevo proyecto se sincronizará automáticamente después de la creación. Pero también puede hacerlo manualmente: Sincronice el proyecto de nuevo con el repositorio De Git yendo a la vista Projects y haciendo clic en la flecha circular Get latest SCM revision icono a la derecha del proyecto.
Después de iniciar el trabajo de sincronización, vaya a la vista Jobs: hay un nuevo trabajo para la actualización del repositorio de Git.
Una plantilla de trabajo es una definición y un conjunto de parámetros para ejecutar un trabajo Ansible. Las plantillas de trabajo son útiles para ejecutar el mismo trabajo muchas veces. Entonces, antes de ejecutar un Job Ansible desde Tower, debe crear un Job Template que reúna:
Inventario: ¿En qué hosts debe ejecutarse el trabajo?
Credenciales ¿Qué credenciales se necesitan para iniciar sesión en los hosts?
Proyecto: ¿Dónde está el Playbook?
¿Qué Playbook para usar?
Bien, vamos a hacer eso: Vaya a la vista Templates, haga clic en el y elija Job Template.
Consejo
Recuerde que a menudo puede hacer clic en la lupa para obtener una visión general de las opciones que puede elegir para rellenar los campos.
Okay, let’s just do that: Go to the Templates view, click the button and choose Job Template.
Parámetro | Valor |
---|---|
NAME | Install Apache |
JOB TYPE | Run |
INVENTORY | Workshop Inventory |
PROJECT | Workshop Project |
PLAYBOOK | rhel/apache/apache_install.yml |
CREDENTIAL | Workshop Credentials |
LIMIT | web |
OPTIONS | tasks need to run as root so check **Enable privilege escalation** |
Puede iniciar el trabajo haciendo clic directamente en el botón azul LAUNCH o haciendo clic en el cohete en la vista general de Job Templates. Después de iniciar la plantilla de trabajo, se re direccionará automáticamente a la descripción general del trabajo, donde puede seguir la ejecución del playbook en tiempo real:
Puesto que esto puede tomar algún tiempo, eche un vistazo más de cerca a todos los detalles proporcionados:
Se muestran todos los detalles de la plantilla de trabajo como inventario, proyecto, credenciales y playbook.
Además, la revisión real del playbook se registra aquí - esto hace que sea más fácil analizar las ejecuciones de trabajo más adelante.
También se registra el tiempo de ejecución con la hora de inicio y finalización, lo que le da una idea de cuánto tiempo toma realmente una ejecución de trabajo.
En el lado derecho, se muestra la salida de la ejecución del playbook. Haga clic en un nodo debajo de una tarea y vea que se proporciona información detallada para cada tarea de cada nodo.
Una vez que el trabajo haya terminado, vaya a la vista principal Jobs: todos los trabajos se enumeran aquí, debería ver directamente antes de que el Playbook se ejecute una actualización de SCM. Esta es la actualización de Git que configuramos para el Project en lanzamiento!
Es hora de un pequeño desafío:
Ya has pasado por todos los pasos necesarios, así que prueba esto por ti mismo.
Consejo
¿Qué pasa con ‘systemctl status httpd’?
Advertencia
Solución a continuación
Ir a Inventories → Workshop Inventory
En la vista HOSTS seleccione todos los hosts y haga clic en RUN COMMANDS
Rellene lo siguiente:
Parámetro | Valor |
---|---|
MODULE | command |
ARGUMENTS | systemctl status httpd |
MACHINE CREDENTIALS | Workshop Credentials |
Aquí está una lista de tareas:
Advertencia
Por favor, asegúrese de terminar estos pasos, ya que el siguiente capítulo depende de él!
Crear un nuevo inventario llamado Webserver
y hacer sólo node1
miembro del mismo.
Copiar la plantilla Install Apache
utilizando el icono de copia en la vista Templates
Cambiar el nombre a Install Apache Ask
Cambiar la configuración INVENTORY del proyecto para que solicite el inventario en el lanzamiento
GUARDAR
Inicie la plantilla Install Apache Ask
.
Ahora solicitará el inventario que se utilizará, elija el inventario del Webserver
y haga clic en LAUNCH
Espere hasta que el trabajo haya terminado y asegúrese de que se ejecuta sólo en node1
Consejo
El trabajo no cambió nada porque Apache ya estaba instalado en la última versión.
Navegación
Ejercicio anterior - Next Exercise
Haga clic aquí para volver al Taller Ansible for Red Hat Enterprise Linux