Codegenerierung für Ansible

 Ein Flussdiagramm mit verschiedenen Formen und Symbolen, darunter eine blaue Sprechblase, ein Fragezeichen und ein Häkchen
Codegenerierung für Ansible

Der IBM watsonx Code Assistant (WCA) für Red Hat Ansible Lightspeed (RHAL) entmystifiziert den Prozess der Erstellung von Ansible-Playbooks mit Inhaltsempfehlungen, die auf generativer KI basieren. WCA für RHAL wurde speziell zur Beschleunigung der Automatisierung entwickelt und liefert Inhaltsempfehlungen, die gängigen Praktiken entsprechen, Fehler reduzieren und die Konstanz der Aufgaben, Rollen und Playbooks von Ansible verbessern. WCA für RHAL kann auch Inhalte auf Basis von natürlichsprachlichen Anfragen in einfachem Englisch generieren und so den Zugriff auf Automatisierungen im Unternehmen skalieren und erweitern.

WCA für RHAL verwendet ein IBM Granite Large Language Model (LLM), das auf umfangreichen Datensätzen von Ansible-Playbooks trainiert wurde. Das LLM kann anhand von unternehmensinternen Daten angepasst werden, um die Feinheiten der Syntax und Struktur der Automatisierung zu verstehen. Benutzer können Vorschläge unverändert annehmen oder die Inhaltsempfehlungen genau an ihre Bedürfnisse anpassen, was die Time-to-Value für Automatisierung weiter verringert und Entwicklungszyklen durch KI-generierte Inhaltsempfehlungen beschleunigt.

 

Lösungsübersicht

IBM watsonx Code Assistant (WCA) für Red Hat Ansible Lightspeed (RHAL) vereinfacht die Erstellung von Ansible Playbooks durch Generierung
Ein Überblick über die Codegenerierung der Ansible-Lösung mit der Platzierung der Komponenten und ihrer Verbindungen.

WCA für RHAL besteht aus folgenden Komponenten (siehe obiges Diagramm):

  1. Ein Ansible Playbook enthält den Code, der benötigt wird, um Automatisierungen auf verwalteten Knoten und Endgeräten auszuführen, z. B. Servern, Containern, Netzwerkgeräten und Cloud-Diensten.

     

  2. Das Playbook Source Code Management (SCM) ist der Ort, an dem alle Produktions- und Entwicklungszweige der Ansible-Playbooks verwaltet werden. Es gibt zwar viele SCM-Lösungen, aber auf Git basierende Lösungen werden am häufigsten verwendet und daher in der folgenden Diskussion vorausgesetzt.

     

  3. Die Ansible Automatisierungsplattform von Red Hat umfasst die Ansible Core Engine, Linting-Service, Management-Dienste zur Bereitstellung und Benutzeroberflächen zum Ausführen und Troubleshooting von Ansible Playbooks. Es ist so konfiguriert, dass aktualisierte Playbooks per Zusammenführung aus SCM abgerufen werden.

     

  4. Red Hat Ansible Lightspeed ist eine IBM watsonx.ai Anwendung, die natürliche Spracheingaben und Codekontext liest und diese an den IBM watsonx Code Assistant Service zum Abgleich mit dem Foundation Model sendet. Sie generiert Informationen zur Inhalts- und Übereinstimmungsprüfung, die es an VS Code zurücksendet.

     

  5. IBM watsonx Code Assistant Service (WCA für RHAL) ist eine IBM watsonx.ai Anwendung, die Promptanfragen von Red Hat Ansible Lightspeed erhält und einen Abgleich mit einem Large Language Model (LLM) durchführt. WCA für RHAL kann das LLM auch mit zusätzlichen Ansible Playbook-Datensätzen trainieren. IBM watsonx Code Assistant und Red Hat Ansible Lightspeed arbeiten zusammen, um vollständige und präzise Vorschläge zur Inhaltserstellung bereitzustellen, die führenden Praktiken entsprechen.

     

  6. Das Code Large Language Model (LLM) ist ein Foundation Model für die Inhaltserstellung, das auf dem Granite-Modell für Ansible von IBM basiert. Es kann so trainiert werden, dass es zusätzlichen Playbook-Code enthält, der von Anbietern oder Unternehmensanwendern erstellt wurde.

     

    Nutzung und Durchgang

IBM watsonx Code Assistant (WCA) für Red Hat Ansible Lightspeed (RHAL) vereinfacht die Erstellung von Ansible Playbooks durch Generierung Ein Rundgang durch die Lösung, der den Kommunikationsfluss zwischen Komponenten zur Generierung von neuem Ansible-Code zeigt.

Das obige Diagramm veranschaulicht, wie die Komponenten von WCA für RHAL zusammenarbeiten, um Zeit zu sparen und die Konstanz von Ansible Playbooks zu verbessern.

  1. Ein Entwickler lädt den neuesten Ansible Playbook-Code aus einem Code-Repository auf dem Playbook SCM herunter und öffnet ihn in VS Code.

  2. Der Entwickler fügt eine Ansible-Aufgabe in Form eines natürlichen Sprachprompts hinzu, z. B. - name: httpd.conf mit einer Vorlage installieren.

  3. Die Ansible-Erweiterung für VS Code sendet eine Lightspeed-Anfrage an den IBM watsonx Code Assistant Service.

  4. Der IBM watsonx Code Assistant generiert eine Antwort auf den Prompt in natürlicher Sprache. Die Antwort basiert auf dem Inhalt des LLM sowie auf dem gesamten Kontext, den er aus jedem anderen vorhandenen Code, Variablen und anderen Informationen in der Datei entnehmen kann.

  5. IBM watsonx Code Assistant sendet die Antwort auf den Prompt in natürlicher Sprache in Form von Ansible-Code (YAML). Ein Beispiel für den generierten Inhalt sehen Sie unten. ansible.builtin.template:

      src:httpd.conf.j2
    dest:/etc/httpd/conf/httpd.conf
    Modus:“0644”
    Besitzer:root
    Gruppe:root

  6. Der Entwickler akzeptiert und/oder ändert den KI-generierten Inhaltsvorschlag, nimmt die Änderung vor und verschiebt den Commit ins Repository auf dem Playbook-SCM.

  7. Ein auf der Red Hat Ansible Automation Platform konfiguriertes Ansible-Projekt erkennt die Aktualisierung im Playbook SCM, lädt den aktualisierten Code herunter und führt das aktualisierte Playbook auf den Endgeräten aus.

Voraussetzungen

  • Microsoft Visual Studio Code für MacOS oder Linux
  • python3
  • ansible, ansible-lint
  • Ansible Erweiterung für VS Code
  • Red Hat Ansible Automation Platform
  • RedHat.com- oder GitHub.com-Konto
  • Verbindung zu IBM watsonx Code Assistant
  • Microsoft Visual Studio Code für Windows
  • Windows Services für Linux (WSL) Version 2
  • Fedora 37, CentOS oder RHEL 8 Container Base für WSL
  • python3, ansible und ansible-lint wie oben beschrieben
Einzigartige Funktionen von IBM watsonx Code Assistant
  • Codegenerierung: Vereinfacht den Prozess der Erstellung von Playbooks, indem natürliche Eingaben in der Ansible-Aufgabenbeschreibung verwendet werden.
  • Durchsetzung von Codierungsstandards: Ermöglicht das Training von Ansible Inhalten, die führenden öffentlichen und unternehmensweiten Praktiken entsprechen, wodurch wiederum Code generiert wird, der diesen Standards entspricht.
  • Produktivitätssteigerung: Integriert KI-generierte Code-Empfehlungen direkt in die integrierte Entwicklungsumgebung (IDE).
Nächste Schritte

Sprechen Sie mit unseren Experten über die Implementierung eines Hybrid Cloud-Bereitstellungsmodells.

Beitragende

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti

Aktualisiert: 5. Dezember 2023