Génération de code pour Ansible

 Un organigramme avec plusieurs formes et symboles dont une bulle bleue, un point d’interrogation et une coche.
Génération de code pour Ansible

IBM watsonx Code Assistant (WCA) pour Red Hat Ansible Lightspeed (RHAL) démystifie le processus de création de protocoles Ansible grâce aux recommandations de contenu alimentées par l’IA. Conçu pour accélérer l’automatisation informatique, WCA for RHAL fournit des recommandations de contenu conformes aux bonnes pratiques, en réduisant les erreurs et en améliorant la cohérence des tâches, des rôles et des protocoles Ansible. WCA for RHAL peut également générer du contenu à l’aide de requêtes en langage naturel rédigées en anglais clair, ce qui permet de dimensionner et d’élargir l’accès à l’automatisation au sein de l’entreprise.

WCA for RHAL utilise un grand modèle de langage (LLM) IBM Granite entraîné sur de vastes jeux de données de protocoles Ansible. Le LLM peut être réglé en utilisant les données de l’entreprise pour comprendre les nuances de sa syntaxe et de sa structure d’automatisation. Les utilisateurs peuvent accepter les suggestions telles quelles, ou améliorer les recommandations de contenu en fonction de leurs besoins, ce qui réduit encore le délai de rentabilité de l’automatisation et accélère les cycles de développement grâce aux recommandations de contenu générées par l’IA.

 

Présentation de la solution

IBM watsonx Code Assistant (WCA) pour Red Hat Ansible Lightspeed (RHAL) démystifie le processus de création de protocoles Ansible grâce à la génération
Aperçu de la solution de génération de code Ansible montrant l’emplacement des principaux composants et leurs interconnexions.

WCA for RHAL comporte les composants suivants (illustrés dans le schéma ci-dessus) :

  1. Un protocole Ansible contient le code nécessaire pour exécuter des automatisations sur des nœuds et des points de terminaison gérés, par exemple des serveurs, des conteneurs, des périphériques réseau et des services cloud.

     

  2. La gestion du code source des protocoles (SCM) est l’endroit où toutes les branches de production et de développement des protocoles Ansible sont maintenues. Bien qu’il existe de nombreuses solutions SCM, les solutions basées sur Git sont les plus utilisées et sont donc prises en compte dans ce qui suit.

     

  3. La plateforme d’automatisation Ansible de Red Hat comprend le moteur central Ansible, le service de linting, les services de gestion du déploiement et l’interface utilisateur pour exécuter et dépanner les protocoles Ansible. En général, elle est configurée pour extraire les protocoles mis à jour à partir de SCM par fusion.

     

  4. Red Hat Ansible Lightspeed est une application IBM watsonx.ai qui lit les prompts en langage naturel et le contexte du code, et les envoie au service IBM watsonx Code Assistant pour l’appariement du modèle de fondation. Le contenu est généré, et les informations d’audit mises en correspondance sont renvoyées à VS Code.

     

  5. Le service IBM watsonx Code Assistant (WCA for RHAL) est une application IBM watsonx.ai qui reçoit des requêtes de prompt de Red Hat Ansible Lightspeed et effectue une mise en correspondance avec un grand modèle de langage (LLM). WCA for RHAL peut également entraîner le LLM avec des jeux de données supplémentaires issus des protocoles Ansible. IBM watsonx Code Assistant et Red Hat Ansible Lightspeed collaborent pour fournir des propositions de génération de contenu complètes et précises, suivant les bonnes pratiques.

     

  6. Le grand modèle de langage (LLM) de codage est un modèle de fondation pour la génération de contenu qui est basé sur le modèle IBM Granite pour Ansible. Il peut également être entraîné pour inclure du code de protocole supplémentaire généré par les fournisseurs ou par les utilisateurs professionnels.

     

    Utilisation et marche à suivre

IBM watsonx Code Assistant (WCA) pour Red Hat Ansible Lightspeed (RHAL) démystifie le processus de création de protocoles Ansible grâce à la génération Présentation de la solution montrant le flux de communication entre les composants pour la génération d’un nouveau code Ansible.

Le diagramme ci-dessus illustre la manière dont les composants de WCA for RHAL travaillent ensemble pour réduire le temps et améliorer la cohérence des protocoles Ansible.

  1. Le développeur extrait le dernier code Ansible Playbook d’un dépôt de code sur le SCM Playbook et l’ouvre dans VS Code.

  2. Le développeur ajoute une tâche Ansible sous la forme d’un prompt, par exemple, - nom : installe httpd.conf à l’aide d’un template.

  3. L’extension Ansible pour VS Code envoie une requête Lightspeed au service IBM watsonx Code Assistant.

  4. IBM watsonx Code Assistant génère une réponse au prompt en langage naturel. La réponse est fondée sur le contenu de son LLM, ainsi que sur tout le contexte qu’il peut glaner à partir de tout autre code existant, de variables et d’autres informations dans le fichier.

  5. IBM watsonx Code Assistant envoie la réponse au prompt en langage naturel sous forme de code Ansible (YAML). Un exemple du contenu généré apparaît ci-dessous. ansible.builtin.template:

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

  6. Le développeur accepte et/ou modifie la proposition de contenu générée par l’IA, valide la modification et transmet la validation au référentiel du SCM de protocole.

  7. Un projet Ansible configuré sur Red Hat Ansible Automation Platform détecte la mise à jour sur le SCM de protocole, télécharge le code mis à jour et exécute le playbook mis à jour sur les points de terminaison indiqués.

Prérequis

  • Microsoft Visual Studio Code pour macOS ou Linux
  • python3
  • ansible, ansible-lint
  • Extension Ansible pour VS Code
  • Red Hat Ansible Automation Platform
  • Compte sur RedHat.com ou GitHub.com
  • Connexion à IBM watsonx Code Assistant
  • Microsoft Visual Studio Code pour Windows
  • Services Windows pour Linux (WSL) version 2
  • Base de conteneurs Fedora 37, CentOS ou RHEL 8 pour WSL
  • python3, ansible et ansible-lint comme ci-dessus
Fonctionnalités uniques d’IBM watsonx Code Assistant
  • Génération de code : simplifie le processus de génération de protocoles Ansible en utilisant des entrées en langage naturel dans la description de la tâche Ansible.
  • Application des normes de codage : permet d’entraîner des contenus Ansible conformes aux principales pratiques publiques et professionnelles, afin de générer du code conforme à ces normes.
  • Amélioration de la productivité : intègre les recommandations de code générées par l’IA directement dans l’environnement de développement intégré (IDE).
Étapes suivantes

Échangez avec nos experts pour bien mettre en œuvre votre schéma de déploiement cloud hybride.

Contributeurs

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti

Mise à jour : 5 décembre 2023