Generazione di codice per Ansible

 Un diagramma di flusso con varie forme e simboli, tra cui una bolla blu, un punto interrogativo e un segno di spunta
Generazione di codice per Ansible

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) sfata i miti sul processo di creazione dei playbook di Ansible attraverso raccomandazioni di contenuti basati sull'AI generativa. Progettato appositamente per accelerare l’automazione IT, WCA for RHEL fornisce raccomandazioni sui contenuti conformi alle best practice, riducendo gli errori e migliorando la coerenza di attività, ruoli e playbook di Ansible. WCA per RHAL può inoltre generare contenuti utilizzando richieste in linguaggio naturale scritte in inglese semplice, supportando la scalabilità e l’ampliamento dell’accesso all’automazione all’interno dell’azienda.

WCA per RHAL utilizza un modello linguistico di grandi dimensioni (LLM) IBM Granite addestrato su ampi set di dati di playbook Ansible. Il modello LLM può essere ottimizzato utilizzando i dati dell’azienda per comprendere le sfumature della sintassi e della struttura della sua automazione. Gli utenti possono accettare i suggerimenti così come sono oppure perfezionare le raccomandazioni dei contenuti in base alle proprie esigenze, riducendo ulteriormente il time to value dell’automazione e accelerando i cicli di sviluppo grazie alle raccomandazioni di contenuti generate dall’AI.

 

Panoramica della soluzione

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) semplifica il processo di creazione dei playbook Ansible attraverso la generazione automatica
Una panoramica della soluzione di generazione del codice per Ansible che mostra la collocazione dei principali componenti e le loro interconnessioni.

WCA for RHAL include i seguenti componenti (mostrati nel diagramma precedente):

  1. Un Playbook Ansible contiene il codice necessario per eseguire l'automazione su nodi ed endpoint gestiti, ad esempio server, container, dispositivi di rete e servizi cloud.

     

  2. Il Playbook Source Code Management (SCM) è il luogo in cui vengono mantenuti tutti i rami di produzione e sviluppo dei playbook Ansible. Sebbene siano disponibili numerose soluzioni SCM, le soluzioni basate su Git sono quelle più comunemente utilizzate e sono quindi considerate nel seguito della discussione.

     

  3. La Ansible Automation Platform di Red Hat include il motore principale Ansible, il servizio linting, i servizi di gestione dell'implementazione e l'interfaccia utente per l'esecuzione e la risoluzione dei problemi dei playbook Ansible. In genere, è configurato per prelevare i playbook aggiornati dallo SCM a ogni operazione di merge.

     

  4. Red Hat Ansible Lightspeed è un'applicazione IBM watsonx.ai che legge prompt in linguaggio naturale e il contesto del codice e li invia al servizio IBM watsonx Code Assistant per il matching con i foundation model. Genera contenuti e corrisponde alle informazioni di controllo che invia a VS Code.

     

  5. IBM watsonx Code Assistant Service (WCA per RHAL) è un'applicazione IBM watsonx.ai che riceve richieste prompt da Red Hat Ansible Lightspeed e le confronta con un modello linguistico di grandi dimensioni (LLM). WCA for RHAL può anche addestrare gli LLM con set di dati aggiuntivi del playbook Ansible. IBM watsonx Code Assistant e Red Hat Ansible Lightspeed lavorano insieme per fornire proposte di generazione dei contenuti complete e precise, conformi alle best practice.

     

  6. Code Large Language Model (LLM) è un foundation model per la generazione di contenuti basato sul modello Granite di IBM per Ansible. Può inoltre essere addestrato per includere codice aggiuntivo dei playbook, generato dai fornitori o dagli utenti aziendali.

     

    Utilizzo e guida dettagliata

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) semplifica il processo di creazione dei playbook Ansible attraverso la generazione automatica Una guida dettagliata della soluzione che mostra il flusso di comunicazioni tra i componenti per la generazione di nuovo codice Ansible.

Il diagramma qui sopra illustra come i componenti di WCA for RHAL lavorano insieme per ridurre i tempi e migliorare la coerenza dei playbook Ansible.

  1. Uno sviluppatore preleva l’ultimo codice del Playbook Ansible da un repository sul Playbook SCM e lo apre in VS Code.

  2. The developer adds an Ansible task in the form of a natural language prompt, ad esempio: - name: Install httpd.conf using a template.

  3. L'estensione Ansible per VS Code invia una richiesta Lightspeed al servizio IBM watsonx Code Assistant.

  4. IBM watsonx Code Assistant genera una risposta al prompt in linguaggio naturale. La risposta si basa sul contenuto del suo LLM e su tutto il contesto che può ricavare da eventuali altri codici esistenti, variabili e altre informazioni presenti nel file.

  5. IBM Watsonx Code Assistant invia la risposta al prompt in linguaggio naturale sotto forma di codice Ansible (YAML). Di seguito è riportato un esempio del contenuto generato. ansible.builtin.template:

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

  6. Lo sviluppatore accetta e/o modifica la proposta di contenuto generata dall'AI, esegue il commit della modifica e spinge il commit nel repository sul Playbook SCM.

  7. Un progetto Ansible configurato su Red Hat Ansible Automation Platform rileva l'aggiornamento sullo SCM Playbook, scarica il codice aggiornato ed esegue il playbook aggiornato sugli endpoint indicati.

Prerequisiti

  • Microsoft Visual Studio Code per MacOS o Linux
  • python3
  • ansible, ansible-lint
  • Ansible Extension for VS Code
  • Piattaforma di automazione Red Hat Ansible
  • Account RedHat.com o GitHub.com
  • Connessione a IBM watsonx Code Assistant
  • Microsoft Visual Studio Code per Windows
  • Windows Services for Linux (WSL) versione 2
  • Fedora 37, CentOS o RHEL 8 Container Base for WSL
  • python3, ansible e ansible-lint come sopra
Caratteristiche uniche di IBM watsonx Code Assistant
  • Generazione di codice: semplifica il processo di generazione dei playbook Ansible utilizzando input in linguaggio naturale nella descrizione dell'attività Ansible.
  • Applicazione degli standard di codifica: consente l’addestramento di contenuti Ansible conformi alle best practice pubbliche e aziendali, generando a sua volta codice che rispetta tali standard.
  • Potenziamento della produttività: integra le raccomandazioni di codice generate dall’AI direttamente nell’ambiente di sviluppo integrato (IDE).
Prossimi passi

Contatta i nostri esperti per implementare un modello di distribuzione hybrid cloud.

Collaboratori

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti

Ultimo aggiornamento: 5 dicembre 2023