102: IA generativa para código con IBM watsonx Code Assistant (WCA) para Red Hat Ansible Lightspeed
¡Aviso! ¡El material del cuestionario se marcará así!
Objetivo
El objetivo de este laboratorio es experimentar con tres de las capacidades clave de IBM watsonx Code Assistant (WCA) para Red Hat Ansible Lightspeed en Visual Studio (VS) Code:
- Recomendaciones de código generadas por IA
- Coincidencia y atribución de fuentes de contenidos
- Posprocesamiento del código generado por IA para garantizar el cumplimiento de las mejores prácticas.
Recomendaciones de código generadas por IA
Tareas Ansible Una tarea Ansible es una declaración en el script de automatización de Ansible (los Playbooks basados en YAML con los que hemos estado trabajando) que declara una única acción a ejecutar. Puede ser instalar un paquete, copiar un archivo o cerrar un servicio en una máquina remota. Cada tarea representa una operación idempotente (una acción que puede repetirse varias veces y ofrecer el mismo resultado cada vez) que alinea el nodo gestionado remoto con el estado especificado, garantizando la coherencia entre varias ejecuciones.
El proceso de creación de recomendaciones de código generadas por IA es tan sencillo como modificar las descripciones de Tareas en lenguaje natural (inglés sencillo) de una acción que se va a ejecutar, que siempre empiezan por - name:
y van seguidas de alguna descripción de la tarea que se va a realizar. Las Tareas Ansible a menudo van precedidas de algunos #
comentarios o documentación - particularmente dentro de los activos de Technical Preview. Una vez que se ha establecido la descripción en lenguaje natural de la Tarea de automatización, la IA Generativa se encarga del resto.
- En la barra lateral izquierda de VS Code, haga clic en el icono Explorador (como se muestra en la captura de pantalla siguiente) para abrir la vista Explorador y ver su directorio de trabajo actual.

-
Desde el directorio de trabajo actual en el Explorador, navegue y abra el Playbook de Ansible en el siguiente directorio:
lightspeed-demos-main/playbooks/infra/install_cockpit/demo_install_cockpit.yml
El código de Playbook en
demo_install_cockpit.yml
merece algunas explicaciones antes de continuar con las modificaciones:- La línea 2 esencialmente marca el comienzo de las instrucciones de Playbook, cuyo propósito es automatizar el proceso de instalación y configuración de Cockpit para Red Hat Ansible. Cockpit es una interfaz interactiva de administración de servidores que proporciona una visión gráfica de las estadísticas y configuraciones de un sistema o sistemas dentro de una red.
- Las líneas 3-4 definen variables que permanecerán estáticas durante el resto del Playbook. Más adelante, las sugerencias de código generadas por la IA harán referencia a estas variables. Esta es una capacidad clave de la oferta y sobre la que entrarás en detalles más adelante.
- Las líneas 6-9 son variables que se han comentado y, por lo tanto, son invisibles para la ejecución del script de Ansible y no son examinadas por WCA en busca de contexto al generar recomendaciones de código. Experimentarás cómo la eliminación de los bloques de comentarios
#
afecta a las recomendaciones de código de bloques de tareas. "Descomentar" estas líneas de código las hará viables para la ejecución y estas líneas serán consideradas posteriormente como "contexto" válido del Playbook para la generación de código AI.
-
Localice la TAREA 1 en la línea 15 del archivo YAML, que se encarga de la instalación de Cockpit para Ansible.
# - name: Install cockpit package
yamlPreste atención a la sangría y a los caracteres utilizados en la línea 15, que en secuencia de izquierda a derecha son los siguientes:
- comienza con una sangría
TAB
- un carácter
#
para "comentar" el contenido de la línea - un espacio en blanco carácter
SPACE
- -
- name:
que significa el inicio de la definición de una Tarea - y, por último, la descripción en lenguaje natural de la Tarea
- comienza con una sangría
-
Para generar código para la Tarea utilizando WCA, primero descomente la Tarea 1 en la Línea 15 (elimine los caracteres
#
del inicio de una línea). Resalte la línea de código que desea descomentar y pulseCTRL
+/
. Consejo: las líneas de código comentadas en VS Code aparecerán como texto verde.
Niveles de sangría y espacios en blanco Al igual que Python, Ansible y los Playbooks YAML son muy sensibles a los espacios en blanco y a la sangría. Las sangrías (como el
TAB
en este ejemplo) denotan diferentes jerarquías y niveles de anidamiento de código dentro de la estructura YAML. Puedes usar espacios en blanco en lugar deTAB
si lo prefieres, pero asegúrate de mantener tus sangrías consistentes: sigue usando TAB o espacios en blanco para sangrar líneas de código, pero no mezcles los dos.
A continuación, la línea 15 debería tener el siguiente aspecto - comenzando con una sola sangría TAB:
- name: Install cockpit package
yaml
Hay preguntas de prueba relacionadas con la generación de código para tareas usando WCA
-
Ahora está listo para empezar a generar código. Coloque el cursor al final de la línea 15 y pulse
Return
. Espere a que WCA se active y genere los bloques de código sugeridos (en gris, texto en cursiva) para ejecutar la tarea.Esta sugerencia de código temporal es generada enteramente por la IA. Como usuario, tienes la opción de aceptar la recomendación de código pulsando
TAB
en tu teclado O puedes modificar el código recomendado resaltando y reemplazando el texto en cursiva. -
Pulse
TAB
para aceptar el código sugerido y compárelo con la solución que aparece a continuación:# TASK 1 - name: Install cockpit package ansible.builtin.package: name: cockpit state: present
yamlLa sugerencia de código generado por la IA invocaba el nombre de colección totalmente cualificado (FQCN) -
ansible.builtin.package
. Utilizar FQCN siempre que sea posible es una buena práctica recomendada y es un buen ejemplo de las muchas formas en que la oferta infunde capacidades de posprocesamiento en el código generado por IA producido por WCA. -
En la siguiente Tarea 2 (Línea 25) se pueden encontrar ejemplos adicionales de cómo infundir las mejores prácticas en las recomendaciones de código generadas por la IA. Genere el bloque de código de la tarea como lo hizo anteriormente, acepte el código sugerido por la IA utilizando
TAB
y, una vez más, compare sus resultados con la solución que se muestra a continuación:# TASK 2 - name: Copy cockpit.conf.j2 to /etc/cockpit ansible.builtin.template: src: cockpit.conf.j2 dest: /etc/cockpit/cockpit.conf owner: root group: root mode: '0644'
yamlLa recomendación de código generada por la IA copiará
cockpit.conf
en el host de destino.Tenga en cuenta el hecho de que la recomendación incluye el argumento
mode:
y establece los permisos de archivo de Linux en0644
, ninguna de las cuales eran cosas solicitadas explícitamente en la descripción Task- name
, pero ambas son adiciones que se adhieren a las mejores prácticas en torno a la definición de tareas autómatas de Ansible. Establecer un permiso de archivo a0644
especifica los permisos de lectura y escritura para los niveles de usuario y grupo dentro del sistema operativo Linux, y proporciona sólo permisos de lectura a todos los demás.Estas recomendaciones adicionales se derivan de un ejemplo sólido de configuración de permisos de archivo para el módulo
ansible.builtin.template
template, una mejor práctica recomendada por las comunidades Ansible Galaxy y Red Hat que Lightspeed llevó también a esta recomendación de código generada por IA.
Correspondencia de fuentes de contenidos
Una potente función de WCA es la correspondencia de fuentes de contenido (a menudo denominada "explicabilidad del código"), que intenta hacer corresponder las sugerencias de código generadas por la IA con los datos de formación y las fuentes que se utilizaron para generar el código de tarea sugerido.
Estas sugerencias de atribución de código se crean mediante un algoritmo k-NN(K-Nearest Neighbors) que examina Ansible Galaxy y los repositorios de datos de formación en busca del contenido relacionado más cercano a las sugerencias de código generadas por la IA.
- Para habilitar las capacidades de Content Source Matching dentro de WCA, navegue a la barra de menú principal (en la parte superior de su pantalla) para VS Code y vaya a View > Open View... como se muestra a continuación.

- La consola situada en la parte superior de la interfaz de VS Code está ahora activada y a la espera de una pregunta. Introduzca
view Lightspeed Training Matches
y pulse la teclaReturn
para confirmar la selección.

En este punto, todas las futuras tareas de IA generativa (como pedir a WCA que genere el código para una Tarea) abrirán ahora un panel en la parte inferior de la interfaz de VS Code mostrando una variedad de opciones: Problemas, Salida, Consola de Depuración, Terminal, Puertos, Comentarios, y lo más importante Ansible:Lightspeed Training Matches.
- Vamos a experimentar generando algunas líneas de código e inspeccionando la pestaña Ansible:Lightspeed Training Matches para observar esta característica de explicabilidad del código en acción. Abre el Playbook de Ansible en el siguiente directorio:
lightspeed-demos-main/playbooks/infra/install_pgsql_and_pgadmin/demo_install_pgsql.yml
. - Dentro de su entorno VS Code, intente generar código para la tarea de la Línea 7. El código resultante debería ser como el siguiente:
- name: Install postgresql-server
ansible.builtin.package:
name: postgresql-server
state: present
yaml
Preste atención a los detalles de atribución de código asociados a esta recomendación, que aparecerán en el panel de la parte inferior de la interfaz de VS Code una vez finalizada la recomendación de código.
- Acepte las sugerencias de código generadas por la IA (con la tecla
TAB
) para rellenar la pestaña de coincidencia de fuentes de contenido con detalles sobre los orígenes del código.

Las tres fuentes de contenido más probables utilizadas en el entrenamiento del modelo IBM watsonx Code Assistant for Red Hat Ansible Lightspeed - que produjo las recomendaciones de código generadas por IA - se listan dentro de la pestaña Ansible: Lightspeed Training Matches.
Al hacer clic en el icono de la flecha situado a la izquierda de cada atribución, se ampliarán los detalles sobre la fuente. La información sobre la URL, la ruta, la fuente de datos, la licencia, el tipo de Ansible y la puntuación se muestran (si están disponibles) bajo cada listado. Las colecciones certificadas y mantenidas por Red Hat, así como los contribuyentes a proyectos de código abierto en Ansible Galaxy, son las fuentes principales para el entrenamiento del modelo Ansible Lightspeed y son las fuentes de contenido que es más probable que vea emparejadas con las recomendaciones de código generadas por la IA.
Si profundiza en el campo URL, su navegador web se redirigirá a las colecciones y fuentes precisas de Ansible Galaxy de las que se derivan las recomendaciones de código. Aquí puedes obtener detalles mucho más detallados sobre el estado del proyecto, los repositorios de código abierto asociados (como GitHub), las contribuciones y actividades en curso con la base de código, los autores implicados y muchas más complejidades.
Postprocesamiento del código generado por IA
Otro elemento de la generación de código en el que destaca WCA es la comprensión del contexto dentro del Playbook contra el que se está ejecutando. Si una variable o atributo se ha definido anteriormente dentro de ese Playbook, se recordará y se hará referencia a ella - cuando tenga sentido hacerlo - en la generación de las siguientes líneas de código.
Sin embargo, una forma de hacer que esta función sea bastante obvia es tomar un bloque de código de Tarea generado previamente, actualizar el valor asignado a una variable con nombre anteriormente en el Playbook y, a continuación, volver a generar el bloque de código de Tarea. En teoría, el bloque de Tarea recién generado utilizará el nombre actualizado de la variable (y diferirá de cómo se generó originalmente el bloque de código).
-
Para ver esto en acción, abre el Playbook de Ansible en el siguiente directorio:
lightspeed-demos-main/playbooks/cloud/aws/demo_provision_ec2_instance.yml
. Examine la Línea 26 y la Línea 33. Las Tareas 1 (línea 26) y Tareas 2 (línea 33) se encargan de recopilar información sobre una subred de red que se va a aprovisionar y, a continuación, de crear una definición de nube privada virtual (VPC) basada en esos detalles. -
Genera un bloque de código sugerido por AI para la Tarea 1(Línea 26) des-comentando la línea, colocando el cursor al final de la línea, pulsando
RETURN
y confirmando conTAB
. Después, genera un bloque de código sugerido por AI para la Tarea 2 pero no pulsesTAB
para confirmar el bloque de código.La primera ronda de código generado por la IA para la Tarea 1 produce un bloque de código con una línea
register: subnet_info
- cuyo resultado es asignar esta definición VPC a una variablesubnet_info
.El código generado por la IA que sigue para la Tarea 2 recomienda un bloque de código con
vpc_subnet_id: "{ { subnet_info.subnets[0].subnet_id } }"
como valor asociado al ID de subred de la VPC. De forma crítica, la variablesubnet_info
que se generó en la tarea anterior también se menciona en la segunda tarea. Esto demuestra el conocimiento contextual de WCA en acción.

- Ahora cambie el nombre de la variable que se generó en la Tarea 1 de
subnet_info
asubnet_name
. Observe cómo se altera el bloque de la Tarea 2 después de borrar el contenido de la Tarea 2 generado previamente y vuelva a generar el bloque de código pulsandoRETURN
al final de la línea de la Tarea 2.
Notará inmediatamente que el nuevo bloque de código de la tarea hace referencia a la variable subnet_name
que fue modificada hace un momento. Una vez más, WCA ha generado sugerencias de código que tienen en cuenta el contexto alterado y las variables del Playbook.

IBM watsonx Code Assistant para Red Hat Ansible Lightspeed L3 Course Quiz
¡Enhorabuena! Ha completado los laboratorios necesarios para completar el cuestionario del curso IBM watsonx Code Assistant for Red Hat Ansible Lightspeed L3. El cuestionario se puede encontrar aquí.
Nota: No es necesario que vea los vídeos, ya que los laboratorios han cubierto todo el contenido del curso excepto el cuestionario. Usted puede hacer clic a través de las lecciones y tomar la prueba.
Enhorabuena, ha llegado al final del laboratorio 102.
Haga clic en, IBM watsonx Code Assistant para Red Hat Ansible Lightspeed para ir a la página de inicio de IBM watsonx Code Assistant para Red Hat Ansible Lightspeed.