Geração de código para o Ansible

 Fluxograma com várias formas e símbolos, incluindo um balão de diálogo azul, um ponto de interrogação e uma marca de seleção
Geração de código para o Ansible

O IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmistifica o processo de criação do playbook do Ansible por meio de recomendações de conteúdo impulsionadas por IA generativa. Desenvolvido especificamente para acelerar a automação de TI, o WCA for RHAL fornece recomendações de conteúdo que seguem as principais práticas, reduzindo erros e melhorando a consistência de tarefas, funções e playbooks do Ansible. O WCA para RHAL também pode gerar conteúdo usando solicitações de linguagem natural escritas em texto simples em inglês, ajudando a escalar e expandir o acesso à automação dentro da empresa.

O WCA for RHAL usa um grande modelo de linguagem (LLM) IBM Granite que é treinado em conjuntos de dados expansivos de playbook do Ansible. O LLM pode ser ajustado usando os dados da própria empresa para entender as nuances de sua sintaxe e estrutura de automação. Os usuários podem aceitar sugestões como estão ou melhorar as recomendações de conteúdo para suas necessidades exatas, diminuindo ainda mais o time to value para automação e acelerando os ciclos de desenvolvimento por meio de recomendações de conteúdo geradas por IA.

 

Visão geral da solução

O IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmistifica o processo de criação de playbooks do Ansible por meio da geração
Uma visão geral da solução de geração de código do Ansible mostrando o posicionamento dos principais componentes e suas interconexões.

O WCA for RHAL é composto pelos seguintes componentes (mostrados no diagrama acima):

  1. Um playbook do Ansible contém o código necessário para executar a automação em nós e endpoints, por exemplo, servidores, contêineres, dispositivos de rede e serviços de nuvem.

     

  2. O Playbook Source Code Management (SCM) é onde todos os ramos de produção e desenvolvimento dos playbooks do Ansible são mantidos. Embora existam muitas soluções de SCM disponíveis, as soluções baseadas no Git são as mais comumente utilizadas e, portanto, são assumidas na discussão a seguir.

     

  3. O Ansible Automation Platform da Red Hat inclui o mecanismo central do Ansible, o serviço de linting, os serviços de gerenciamento de implementação e a interface do usuário para executar e solucionar problemas dos playbooks do Ansible. Normalmente, é configurado para extrair playbooks atualizados do SCM por meio de mesclagem.

     

  4. O Red Hat Ansible Lightspeed é uma aplicação do IBM watsonx.ai que lê prompts de linguagem natural e contexto de código e os envia para o serviço IBM watsonx Code Assistant para correspondência de modelos de base. Ele gera informações de auditoria de conteúdo e correspondências que envia de volta para o VS Code.

     

  5. O IBM watsonx Code Assistant Service (WCA for RHAL) é uma aplicação do IBM watsonx que recebe prompts do Red Hat Ansible Lightspeed e realiza a correspondência com um grande modelo de linguagem (LLM). O WCA for RHAL também pode treinar o LLM com datasets adicionais de playbook do Ansible. O IBM watsonx Code Assistant e o Red Hat Ansible Lightspeed trabalham juntos para fornecer propostas completas e precisas de geração de conteúdo que seguem as principais práticas.

     

  6. Um grande modelos de linguagem (LLM) é um modelo de base para a geração de conteúdo baseado no Granite da IBM para o Ansible. Também pode ser treinado para incluir código de playbooks adicionais gerado por fornecedores ou por usuários corporativos.

     

    Uso e passo a passo

O IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) desmistifica o processo de criação de playbooks do Ansible por meio da geração Um passo a passo da solução mostrando o fluxo de comunicação entre os componentes para a geração de um novo código do Ansible.

O diagrama acima ilustra como os componentes do WCA for RHAL trabalham juntos para reduzir o tempo e melhorar a consistência dos playbooks do Ansible.

  1. Um desenvolvedor extrai o código mais recente do playbook do Ansible de um repositório de código no Playbook SCM e abre no VS Code.

  2. O desenvolvedor adiciona uma tarefa do Ansible na forma de um prompt de linguagem natural; por exemplo, - name: Install httpd.conf usando um modelo.

  3. A extensão Ansible para VS Code envia uma solicitação Lightspeed ao IBM watsonx Code Assistant Service.

  4. O IBM watsonx Code Assistant gera uma resposta ao prompt de linguagem natural. A resposta se baseia no conteúdo de seu LLM, bem como em todo o contexto que pode obter de qualquer outro código existente, variáveis e outras informações no arquivo.

  5. O IBM watsonx Code Assistant envia a resposta ao prompt de linguagem natural na forma de código do Ansible (YAML). Um exemplo do conteúdo gerado aparece abaixo. ansible.builtin.template:

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

  6. O desenvolvedor aceita e/ou modifica a proposta de conteúdo gerada por IA, confirma a alteração e envia a confirmação para o repositório no SCM do Playbook.

  7. Um projeto Ansible configurado na Red Hat Ansible Automation Platform detecta a atualização no SCM do playbook, baixa o código atualizado e executa o playbook atualizado nos endpoints indicados.

Pré-requisitos

  • Microsoft Visual Studio Code for MacOS ou Linux
  • python3
  • ansible, ansible-lint
  • Extensão Ansible para VS Code
  • Plataforma de automação Red Hat Ansible
  • Conta RedHat.com ou GitHub.com
  • Conexão com o IBM watsonx Code Assistant
  • Microsoft Visual Studio Code for Windows
  • Windows Services for Linux (WSL) versão 2
  • Fedora 37, CentOS ou RHEL 8 Container Base for WSL
  • python3, ansible e ansible-lint conforme acima
Funcionalidades exclusivas do IBM watsonx Code Assistant
  • Geração de código: simplifica o processo de geração de playbooks do Ansible usando entradas na descrição da tarefa do Ansible.
  • Imposição de padrões de programação: permite o treinamento de conteúdo do Ansible que segue as principais práticas públicas e empresariais, o que, por sua vez, gera códigos que seguem esses padrões.
  • Aprimoramento da produtividade: integra recomendações de código geradas por IA diretamente ao ambiente de desenvolvimento integrado (IDE).
Próximas etapas

Fale com nossos especialistas sobre como implementar um padrão de implementação de nuvem híbrida.

Colaboradores

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti

Atualizado em: 5 de dezembro de 2023