Workshop - Conclusión

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

Tabla de contenidos

Objetivos

Este es el desafío final en el que tratamos de juntar la mayor parte de lo que han aprendido.

Guía

Vamos a preparar el escenario

A su equipo de operaciones y a su equipo de desarrollo de aplicaciones le gusta lo que ven en Ansible Tower. Para realmente usarlo en su entorno, armaron estos requisitos:

El Repositorio de Git

Todo el código ya está en su lugar - este es un laboratorio Tower después de todo. Echa un vistazo al repositorio git Workshop Project en https://github.com/ansible/workshop-examples**. Allí encontrará el playbook webcontent.yml, que llama el role role_webcontent.

En comparación con el role de instalación de Apache anterior, hay una diferencia importante: ahora hay dos versiones de una plantilla index.html y una tarea que implementa el archivo de plantilla que tiene una variable como parte del nombre del archivo de origen:

dev_index.html.j2

<body>
<h1>This is a development webserver, have fun!</h1>
{{ dev_content }}
</body>

prod_index.html.j2

<body>
<h1>This is a production webserver, take care!</h1>
{{ prod_content }}
</body>

main.yml

[...]
- name: Deploy index.html from template
  template:
    src: "{{ stage }}_index.html.j2"
    dest: /var/www/html/index.html
  notify: apache-restart

Preparar el inventario

Por supuesto, hay más de una manera de lograr esto, pero esto es lo que debe hacer:

Consejo

Asegúrese de mantener los tres guiones que marcan el inicio del YAML y la línea ansible_host en su lugar!

Crear la plantilla

Verificar los resultados

Esta vez utilizamos el poder de Ansible para comprobar los resultados: ejecute curl para obtener el contenido web de cada nodo, orquestado por un comando ad hoc en la línea de comandos de su host de control de Tower:

Consejo

Estamos utilizando la variable ansible_host en la DIRECCIÓN URL para acceder a todos los nodos del grupo de inventario.

[student<X>@ansible ~]$ ansible web -m command -a "curl -s http://{{ ansible_host }}"
 [WARNING]: Consider using the get_url or uri module rather than running 'curl'.  If you need to use command because get_url or uri is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.

node2 | CHANGED | rc=0 >>
<body>
<h1>This is a production webserver, take care!</h1>
prod wweb
</body>

node1 | CHANGED | rc=0 >>
<body>
<h1>This is a development webserver, have fun!</h1>
dev wweb
</body>

node3 | CHANGED | rc=0 >>
<body>
<h1>This is a development webserver, have fun!</h1>
dev wweb
</body>

Observe la advertencia en la primera línea sobre no utilizar curl a través del módulo command ya que hay mejores módulos justo dentro de Ansible. Volveremos a eso en la siguiente parte.

Adicionar encuestas

Compruebe los resultados de nuevo desde el host de control del Tower. Puesto que recibimos una advertencia la última vez usando curl a través del módulo command, esta vez usaremos el módulo uri dedicado. Como argumentos, necesita la dirección URL real y una bandera para generar el cuerpo en los resultados.

[student<X>ansible ~]$ ansible web -m uri -a "url=http://{{ ansible_host }}/ return_content=yes"
node3 | SUCCESS => {
    "accept_ranges": "bytes",
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "connection": "close",
    "content": "<body>\n<h1>This is a development webserver, have fun!</h1>\nwerners dev content\n</body>\n",                                                                                         
    "content_length": "87",
    "content_type": "text/html; charset=UTF-8",
    "cookies": {},
    "cookies_string": "",
    "date": "Tue, 29 Oct 2019 11:14:24 GMT",
    "elapsed": 0,
    "etag": "\"57-5960ab74fc401\"",
    "last_modified": "Tue, 29 Oct 2019 11:14:12 GMT",
    "msg": "OK (87 bytes)",
    "redirected": false,
    "server": "Apache/2.4.6 (Red Hat Enterprise Linux)",
    "status": 200,
    "url": "http://18.205.236.208"
}
[...]

Solución

Advertencia

Solución NO a continuación

Usted ha hecho todos los pasos de configuración requeridos en el laboratorio ya. Si no está seguro, consulte los capítulos respectivos.

El Fin

¡Felicidades, terminaste tus laboratorios! Esperamos que haya disfrutado de su primer encuentro con Ansible Tower tanto como nosotros disfrutamos creando los laboratorios.


Navegación
Ejercicio anterior

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