Code Generation de Ansible

 Un diagrama de flujo con varias formas y símbolos, incluido un globo de diálogo azul, un signo de interrogación y una marca de verificación
Code Generation de Ansible

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmitifica el proceso de creación de guías de estrategias de Ansible a través de recomendaciones de contenido con 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 coherencia de las tareas, roles y guías de estrategias de Ansible. WCA for RHAL también puede generar contenido utilizando solicitudes de lenguaje natural escritas en texto plano en inglés, lo que ayuda a escalar y ampliar el acceso a la automatización dentro de la empresa.

WCA for RHAL utiliza un modelo de lenguaje de gran tamaño (LLM) de IBM Granite que se entrena con conjuntos de datos de guías de estrategias de Ansible. El LLM se puede ajustar con los datos de la propia empresa para entender los matices de la sintaxis y la estructura de la automatización. Los usuarios pueden aceptar sugerencias tal cual o mejorar las recomendaciones de contenido según sus necesidades exactas, reduciendo aún más el tiempo de obtención de valor para la automatización y acelerando los ciclos de desarrollo mediante recomendaciones de contenido generado 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 de guías de estrategias de Ansible mediante la generación
Una descripción general de la solución Code Generation de Ansible que muestra la colocació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 Ansible Playbook contiene el código necesario para ejecutar la automatización en los nodos y endpoints gestionados, por ejemplo, servidores, contenedores, dispositivos de red y servicios en la nube.

     

  2. La Playbook Source Code Management (SCM) es donde se mantienen todas las ramas de producción y desarrollo de las guías de estrategias de Ansible. Aunque existen muchas soluciones de SCM disponibles, las soluciones basadas en Git son las más utilizadas y, por lo tanto, se dan por sentadas en el análisis que sigue a continuación.

     

  3. La Ansible Automation Platform de Red Hat incluye el motor central de Ansible, el servicio de linting, los servicios de gestión de implementación y la interfaz de usuario para ejecutar y solucionar problemas de guías de estrategias de Ansible. Normalmente, está configurado para extraer guías de estrategias actualizadas de SCM en cada fusión.

     

  4. Red Hat Ansible Lightspeed es una aplicación de IBM watsonx.ai que lee las instrucciones en lenguaje natural y el contexto del código y los envía al servicio IBM watsonx Code Assistant para la coincidencia del modelo fundacional. Genera contenido y coincide con la información de auditoría que envía a VS Code.

     

  5. IBM watsonx Code Assistant Service (WCA for RHAL) es una aplicación de IBM watsonx.ai que recibe instrucciones de Red Hat Ansible Lightspeed y las coteja con un modelo de lenguaje de gran tamaño (LLM). WCA for RHAL también puede entrenar el LLM con conjuntos de datos adicionales de guías de estrategias 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 líderes.

     

  6. Code Large Language Model (LLM) es un modelo fundacional para la generación de contenido que se basa en el modelo Granite de IBM para Ansible. También puede estar capacitado para incluir código de guía de estrategias adicional generado por proveedores o por usuarios de la empresa.

     

    Uso y tutorial

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmitifica el proceso de creación de guías de estrategias de Ansible mediante la generación Un tutorial 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 consistencia de las guías de estrategias de Ansible.

  1. Un desarrollador extrae el último código de Ansible Playbook de un repositorio de código en el Playbook SCM y lo abre en VS Code.

  2. El desarrollador añade una tarea de Ansible en forma de instrucción en lenguaje natural, por ejemplo, - name: Install httpd.conf usando una plantilla.

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

  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 pueda deducir de cualquier otro código existente, variables y otra información del 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 y/o modifica la propuesta de contenido generada por la IA, confirma el cambio y envía la confirmación al repositorio en el Playbook SCM.

  7. Un proyecto de Ansible configurado en Red Hat Ansible Automation Platform detecta la actualización en el Playbook SCM, descarga el código actualizado y ejecuta la guía de estrategias actualizada 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
  • Servicios de Windows para Linux (WSL) versión 2
  • Fedora 37, CentOS o RHEL 8 Container Base para WSL
  • python3, ansible y ansible-lint como arriba
Características únicas de IBM watsonx Code Assistant
  • Code Generation: simplifica el proceso de generación de guías de estrategias de Ansible mediante el uso de entradas en lenguaje natural en la descripción de las tareas de Ansible.
  • Coding Standards Enforcement: permite entrenar el contenido de Ansible que sigue las principales prácticas públicas y empresariales, lo que a su vez genera código que sigue dichos estándares.
  • Productivity Enhancement: integra las recomendaciones de código generadas por la IA directamente en el entorno de desarrollo integrado (IDE).
Próximos pasos

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

Colaboradores

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti

Actualizado: 5 de diciembre de 2023