面向 Ansible 的代码生成

 包含多种形状与符号的流程图,其中有蓝色对话气泡、问号与对号
面向 Ansible 的代码生成

IBM watsonx Code Assistant (WCA) for Red Hat Ansible Lightspeed (RHAL) 通过由生成式 AI 驱动的内容推荐,揭开了 Ansible 运行手册创建过程的神秘面纱。专为加速 IT 自动化而构建,面向 RHAL 的 WCA 提供符合最佳实践的内容推荐,减少错误并提升 Ansible 任务、角色与运行手册的一致性。面向 RHAL 的 WCA 还可通过纯英文自然语言请求生成内容,助力企业扩大自动化覆盖范围与规模。

面向 RHAL 的 WCA 采用 IBM Granite 大语言模型 (LLM),该模型基于海量 Ansible 运行手册数据集进行训练。利用企业自身的数据来调整 LLM,以了解其自动化语法和结构的细微差别。用户可直接采纳建议,或根据自身实际需求优化内容推荐,进一步缩短自动化的价值实现时间,并通过 AI 生成的内容建议加速开发周期。

 

解决方案概述

面向 Red Het Ansible Lightspeed (RHAL) 的 IBM watsonx Code Assistant (WCA),通过代码生成简化 Ansible 运行手册的创建流程
Ansible 代码生成解决方案概览:展示主要组件的部署位置及其相互关联关系。

面向 RHAL 的 WCA 由以下组件组成(如上图所示):

  1. Ansible Playbook 包含在受管节点和终端(如服务器、容器、网络设备与云服务)上执行自动化所需的代码。

     

  2. Playbook 源代码管理 (SCM) 用于维护 Ansible 运行手册的所有生产分支与开发分支。虽然有许多可用的 SCM 解决方案,但基于 Git 的解决方案是最常用的,因此是下文讨论假定的解决方案。

     

  3. Red Hat 的 Ansible 自动化平台 包括 Ansible 核心引擎、Linting 服务、部署管理服务以及用于运行 Ansible 运行手册并对其进行故障排除的用户界面。通常,其配置为每次合并时从 SCM 拉取更新后的运行手册。

     

  4. Red Hat Ansible Lightspeed 是一个 IBM watsonx.ai 应用程序,它可读取自然语言提示和代码上下文,并将其发送到 IBM watsonx Code Assistant 服务进行基础模型匹配。它生成内容并匹配审计信息,然后将其返回至 VS Code。

     

  5. IBM watsonx Code Assistant Service (WCA for RHAL) 是一款 IBM watsonx.ai 应用程序,可接收来自 Red Hat Ansible Lightspeed 的提示请求,并根据大语言模型 (LLM) 执行匹配。WCA for RHAL 还可以使用额外的 Ansible 运行手册数据集来训练 LLM。IBM watsonx Code Assistant 和 Red Hat Ansible Lightspeed 协同工作,提供遵循最佳实践、完整且准确的内容生成建议。

     

  6. Code 大型语言模型 (LLM) 是基于 IBM Granite 模型、面向 Ansible 构建的内容生成基础模型。还可对其进行训练,使其纳入由厂商或企业用户生成的额外运行手册代码。

     

    使用方法和演示

面向 Red Het Ansible Lightspeed (RHAL) 的 IBM watsonx Code Assistant (WCA),通过代码生成简化 Ansible 运行手册的创建流程 该解决方案的演示流程,展示了在生成新 Ansible 代码时各组件之间的通信流程。

上图说明了 WCA for RHAL 的组件如何协同工作,以缩短编写时间并提升 Ansible 运行手册的一致性。

  1. 开发人员从运行手册源代码管理 (SCM) 的代码仓库中拉取最新的 Ansible 运行手册代码,并在 VS Code 中打开。

  2. 开发人员以自然语言提示的形式添加 Ansible 任务,例如:- name: Install httpd.conf using a template。

  3. Ansible Extension for VS Code 向 IBM watsonx Code Assistant 服务发送 Lightspeed 请求。

  4. IBM watsonx Code Assistant 对该自然语言提示生成响应。响应内容基于其大语言模型 (LLM),以及从文件中其他现有代码、变量和相关信息所提取的全部上下文。

  5. IBM watsonx Code Assistant 以 Ansible 代码 (YAML) 的形式发送对自然语言提示的响应。以下是生成内容的示例。ansible.builtin.template:

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

  6. 开发人员接受和/或修改 AI 生成的内容建议,提交更改,并将提交内容推送到运行手册源代码管理 (SCM) 的代码仓库中。

  7. 在 Red Hat Ansible Automation Platform 上配置的 Ansible 项目会检测到运行手册 SCM 上的更新,下载更新后的代码,并在指定的端点运行更新后的运行手册。

先决条件

  • 面向 MacOS 或 Linux 的 Microsoft Visual Studio Code
  • python3
  • ansible,ansible-lint
  • 面向 VS Code 的 Ansible 扩展
  • Red Hat Ansible Automation Platform
  • RedHat.com 或 GitHub.com 账户
  • 连接到 IBM watsonx Code Assistant
  • 面向 Windows 的 Microsoft Visual Studio Code
  • Windows Services for Linux (WSL) 版本 2
  • Fedora 37、CentOS 或 RHEL 8 容器基础(适用于 WSL)
  • python3、ansible 和 ansible-lint(如上)
IBM watsonx Code Assistant 的独特功能
  • 代码生成:通过在 Ansible 任务描述中使用自然语言输入,简化 Ansible 运行手册的生成流程。
  • 编码标准执行:支持对遵循主流公共及企业实践的 Ansible 内容进行训练,进而生成符合上述标准的代码。
  • 提高生产力:将 AI 生成的代码建议直接集成到集成开发环境 (IDE) 中。
后续步骤

与我们的专家探讨如何实施混合云部署模式。

内容添加者

Al Hamid、Pete NuwayserChris KirbyMihai Criveti

更新日期:2023 年 12 月 5 日