Generación de código para Ansible

 Un diagrama de flujo con varias formas y símbolos, incluyendo una burbuja de diálogo azul, un signo de interrogación y una marca de verificación
Generación de código para Ansible

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmitifica el proceso de creación del playbook de Ansible a través de recomendaciones de contenido impulsadas por IA generativa. Diseñado específicamente para acelerar la automatización de TI, WCA for RHAL ofrece recomendaciones de contenido que se adhieren a las prácticas líderes, lo que reduce los errores y mejora la congruencia de las tareas, roles y playbooks de Ansible. WCA for RHAL también puede generar contenido mediante solicitudes en lenguaje natural escritas en texto en inglés sencillo, ayudando a ampliar a escala el acceso a la automatización dentro de la empresa.

WCA for RHAL utiliza un modelo de lenguaje grande de IBM Granite que se entrena en conjuntos de datos amplios de playbooks de Ansible. El LLM se puede ajustar utilizando los propios datos de una empresa para comprender los matices de su sintaxis y estructura de automatización. Los usuarios pueden aceptar sugerencias tal cual o mejorar las recomendaciones de contenido según sus necesidades exactas, lo que reduce aún más el tiempo de creación de valor para la automatización y acelera los ciclos de desarrollo a través de recomendaciones de contenido generadas por IA.

 

Descripción general de la solución

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmitifica el proceso de creación del playbook de Ansible a través de la generación
Descripción general de la solución de generación de código de Ansible, en la que se muestra la ubicación de los componentes principales y sus interconexiones.

WCA for RHAL consta de los siguientes componentes (que se muestran en el diagrama anterior):

  1. Un playbook de Ansible contiene el código necesario para ejecutar la automatización en nodos gestionados y endpoints; por ejemplo, servidores, contenedores, dispositivos de red y servicios en la nube.

     

  2. Playbook Source Code Management es donde se mantienen todas las ramas de producción y desarrollo de los playbooks de Ansible. Si bien hay muchas soluciones SCM disponibles, las soluciones basadas en Git son las más utilizadas y, por lo tanto, se asumen en el debate que sigue.

     

  3. La plataforma de automatización de Ansible de Red Hat incluye el motor principal de Ansible, el servicio de linting, los servicios de gestión de despliegue y la interfaz de usuario para ejecutar y solucionar problemas de los playbooks de Ansible. Por lo general, está configurado para extraer playbooks actualizados de SCM por cada fusión.

     

  4. Red Hat Ansible Lightspeed es una aplicación de IBM watsonx que lee instrucciones en lenguaje natural y el contexto del código, y las envía al servicio IBM watsonx Code Assistant para el emparejamiento de modelos fundacionales. Genera contenido y coteja información de auditoría que envía a VS Code.

     

  5. IBM watsonx Code Assistant Service (WCA for RHAL) es una aplicación IBM watsonx.ai que recibe solicitudes de instrucción de Red Hat Ansible Lightspeed y realiza comparaciones con un modelo de lenguaje grande (LLM). WCA for RHAL también puede entrenar el LLM con conjuntos de datos adicionales del playbook de Ansible. IBM watsonx Code Assistant y Red Hat Ansible Lightspeed trabajan juntos para proporcionar propuestas de generación de contenido completas y precisas que sigan las prácticas principales.

     

  6. Un modelo de lenguaje grande (LLM) de código es un modelo fundacional para la generación de contenido que se basa en el modelo Granite de IBM para Ansible. También se puede entrenar para incluir código de playbook adicional generado por proveedores o usuarios empresariales.

     

    Uso y recorrido

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmitifica el proceso de creación del playbook de Ansible a través de la generación Un recorrido por la solución que muestra el flujo de comunicaciones entre los componentes para la generación de nuevo código Ansible.

El diagrama anterior ilustra cómo los componentes de WCA for RHAL trabajan juntos para reducir el tiempo y mejorar la coherencia de los playbooks de Ansible.

  1. Un desarrollador extrae el código más reciente del playbook de Ansible de un repositorio de código en Playbook SCM y lo abre en VS Code.

  2. El desarrollador agrega una tarea de Ansible en forma de instrucción en lenguaje natural, por ejemplo, - name: Install httpd.conf using a template.

  3. La extensión Ansible para VS Code envía una solicitud Lightspeed al servicio IBM watsonx Code Assistant.

  4. IBM watsonx Code Assistant genera una respuesta a la instrucción en lenguaje natural. La respuesta se basa en el contenido de su LLM, así como en todo el contexto que puede obtener de cualquier otro código existente, variables y otra información en el archivo.

  5. IBM watsonx Code Assistant envía la respuesta a la instrucción en lenguaje natural en forma de código Ansible (YAML). A continuación, se muestra un ejemplo del contenido generado. ansible.builtin.template:

      src:httpd.conf.j2
      dest:/etc/httpd/conf/httpd.conf
      mode:“0644”
      owner:root
      group:root

  6. El desarrollador acepta o modifica la propuesta de contenido generado por IA, confirma el cambio y envía la confirmación al repositorio en el Playbook SCM.

  7. Un proyecto Ansible configurado en Red Hat Ansible Automation Platform detecta la actualización en el Playbook SCM, descarga el código actualizado y ejecuta el playbook actualizado en los endpoints indicados.

Requisitos previos

  • Microsoft Visual Studio Code para MacOS o Linux
  • python3
  • ansible, ansible-lint
  • Extensión de Ansible para VS Code
  • Red Hat Ansible Automation Platform
  • Cuenta de RedHat.com o GitHub.com
  • Conexión con IBM watsonx Code Assistant
  • Microsoft Visual Studio Code para Windows
  • Windows Services for Linux (WSL) versión 2
  • Fedora 37, CentOS, or RHEL 8 Container Base for WSL
  • python3, ansible y ansible-lint como se mencionó anteriormente
Características únicas de IBM watsonx Code Assistant
  • Generación de código: simplifica el proceso de generación de playbooks de Ansible mediante el uso de entradas de lenguaje natural en la descripción de la tarea de Ansible.
  • Aplicación de estándares de programación: permite el entrenamiento de contenido de Ansible que sigue las prácticas líderes públicas y empresariales, lo que a su vez genera código que cumple dichos estándares.
  • Mejora de la productividad: integra recomendaciones de código generadas por IA directamente en el entorno de desarrollo integrado (IDE).
Siguientes pasos

Hable con nuestros expertos sobre la implementación de un patrón de despliegue de nube híbrida.

Colaboradores

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti

Actualizado: 5 de diciembre de 2023