在 2023 年红帽全球峰会和 AnsibleFest 上,我们发布了面向 Ansible 的全新生成式 AI 服务——通过 IBM Watson Code Assistant 使用的 Ansible Lightspeed。随后,我们于 2023 年 6 月发布了功能技术预览。今天,我们很高兴地宣布,通过 IBM Watson Code Assistant 使用 Ansible Lightspeed 现已作为红帽 Ansible 自动化平台的一项组件服务提供。 

通过 IBM Watson Code Assistant 使用的 Ansible Lightspeed 旨在帮助自动化团队更高效地创建、采用和维护 Ansible 内容。 

在本博客中,我们将分步介绍如何为您的企业设置和运行通过 IBM Watson Code Assistant 使用 Ansible Lightspeed。我们将讲解最终用户如何在 Visual Studio Code(VS Code)环境中设置此项服务。我们还将分享更多关于此项服务的体验和补充工具,帮助您借助基于透明度、准确性和选择性的生成式 AI 功能,加速您的 Ansible 创作之旅。 

此项服务是对 Ansible 自动化平台体验的一个令人兴奋的补充,让我们开始吧。

商业功能:红帽和 IBM 合作将 AI 引入 Ansible 内容创作

通过 IBM Watson Code Assistant 使用 Ansible Lightspeed 是红帽和 IBM 团队强强联手的结晶,旨在为 Ansible 内容创作打造一致的 AI 体验。它利用特定于自动化的 IBM watsonx 基础模型,将文本提示转换为 Ansible 内容片段,以用于创建 Ansible 内容。生成的内容遵循公认的 Ansible 最佳实践,与 Ansible 代码机器人功能结合使用时,可以让团队增强对自动化代码库的信心。

Red Hat Ansible Lightspeed with IBM watsonx Code Assistant

此项服务由三个组件组成:

  1. 开发人员界面 - 通过 Ansible 扩展,原生构建到 VS Code 扩展中,允许 Ansible 内容创建者在 Ansible Playbook 或任务文件中使用自然语言提示来生成 Ansible Lightspeed 单任务和多任务建议。
  2. 集成服务 - 充当开发人员接口和 watsonx.ai 服务之间的粘合剂或代理。它将 AI 的力量引入 Ansible 自动化平台,并通过后处理功能增强 AI 的响应。
  3. AI - IBM Watsonx Code Assistant 提供对特定于 Ansible 的 watsonx.ai 基础模型的访问,可生成 Ansible 内容推荐。这就是该解决方案的“AI 核心”。

在接下来的步骤中,我们将说明如何设置和开始通过 IBM Watson Code Assistant 使用 Ansible Lightspeed。

登录并配置 Red Hat Ansible Lightspeed,以连接 IBM watsonx Code Assistant

:本节内容仅适用于您所在企业内具有红帽客户门户账户的企业管理员特权的人员。如果您不具有该特权,请跳到下一节,了解如何在 VS Code 的 Ansible 扩展中进行连接。 

作为红帽客户门户管理员,您必须配置红帽 Ansible Lightspeed,以连接到您的 IBM watsonx Code Assistant 实例。此配置使红帽 Ansible Lightspeed 能够与您的 IBM watsonx Code Assistant 实例通信。

您需要以下 IBM watsonx Code Assistant 信息来连接红帽 Ansible Lightspeed:

  • IBM watsonx Code Assistant(WxCA)API 密钥
    • WxCA API 密钥会对从红帽 Ansible Lightspeed 向 IBM watsonx Code Assistant 发出的所有请求进行身份验证。拥有有效 Ansible 自动化平台订阅的每个红帽企业都必须配置有 WxCA API 密钥。当经过身份验证的红帽单点登录(SSO)用户向红帽 Ansible Lightspeed 发出查询时,与用户的红帽企业关联的 WxCA API 密钥会被用于对 IBM watsonx Code Assistant 的请求进行身份验证。 
  • 模型 ID
    • 具有唯一性的 WxCA 模型 ID 会标识您的 IBM Cloud 账户中的 IBM watsonx Code Assistant 模型。您在红帽 Ansible Lightspeed 管理员门户中配置的模型 ID 用作默认模型,因此它将用于为您的企业中分配了席位的所有用户从 Ansible Lightspeed 获取建议。这种单租户 IBM watsonx Granite 模型对您的企业具有唯一性,可帮助您实现数据隐私保护、合规和安全防护。这些模型由 IBM 提供、管理和维护。

重要信息:首次配置红帽 Ansible Lightspeed 时,您必须配置 WxCA API 密钥和模型 ID。

前提条件

  • 您拥有红帽客户门户的企业管理员特权,且具有有效的 Ansible 自动化平台订阅。
  • 您已获取了要在红帽 Ansible Lightspeed 中使用的 IBM Watsonx Code Assistant 的 WxCA API 密钥和模型 ID。 

有关如何从 IBM watsonx Code Assistant 获取 WxCA API 密钥和模型 ID 的信息,请参阅 IBM Watsonx Code Assistant 文档。 

流程步骤

  1. 以企业管理员身份登录 Ansible Lightspeed 门户
  2. 点击 Log in(登录) > Log in with Red Hat(使用红帽账户登录)。 
  3. 输入您的红帽账户用户名和密码。 
    • 红帽 Ansible Lightspeed 服务会使用红帽单点登录(SSO)进行身份验证。 
    • 作为身份验证过程的一部分,红帽 Ansible Lightspeed 服务会检查您是否是企业管理员,以及您的企业是否具有有效的 Ansible 自动化平台订阅。身份验证成功后,将显示登录屏幕,以及您的用户名和分配的用户角色。 
  4. 在登录屏幕中,点击 Admin Portal(管理员门户)。 
    • 您将被重定向到通过 IBM Watson Code Assistant 使用 Ansible Lightspeed 的管理员门户,您可以通过该门户将红帽 Ansible Lightspeed 连接到 IBM Watsonx Code Assistant 实例。
  5. 指定 IBM Watsonx Code Assistant 实例的 API 密钥,然后点击 Save(保存)。
    • 可选:点击 Test(测试)以验证 API 密钥
  6. 指定您要使用的模型的模型 ID,然后点击 Save(保存)。
    • 可选:点击 Test(保存)以验证模型 ID。
  7. 成功验证了 WxCA API 密钥和模型 ID 后,红帽 Ansible Lightspeed 会连接到您的 IBM Watsonx Code Assistant 实例。

分配和删除席位许可证

:本节内容仅适用于您所在企业内具有红帽客户门户账户的企业管理员特权的人员。如果您不具有该特权,请跳到下一节,了解如何在 VS Code 的 Ansible 扩展中进行连接。

将红帽 Ansible Lightspeed 连接到 IBM Watsonx Code Assistant 实例后,红帽客户门户企业管理员可以将席位许可证分配给所在企业中的 Ansible 自动化平台用户。席位分配功能允许企业中的部分 Ansible 自动化平台用户访问和使用红帽 Ansible Lightspeed。 

您的 Ansible 自动化平台订阅包括特定数量的红帽 Ansible Lightspeed 指定席位,具体取决于您的企业购买的订阅数量。红帽 Ansible Lightspeed 使用红帽单点登录(SSO)对用户进行身份验证,并验证用户是否具有分配的席位许可证。

分配席位许可证

您可以将红帽 Ansible Lightspeed 席位许可证授予企业中的选定用户。  

前提条件

流程步骤

  1. 前往红帽混合云控制台上的 Ansible 自动化平台。
  2. 在导航面板中,选择 Ansible Lightspeed with IBM watsonx Code Assistant > Seat Management(席位管理)。 
  3. 点击 Assign users(分配用户)。
  4. 输入您要分配席位许可证的用户的用户名。
  5. 点击 Assign(分配),然后在验证消息上点击 Ok 进行确认。

就像这样,分配的席位用户现在可以访问通过 IBM Watson Code Assistant 使用 Ansible Lightspeed 的服务了。

建立连接:安装和配置

前提条件

  • 工作站上安装了 Visual Studio Code 和 Ansible
  • 红帽客户门户账户(已关联到您的企业)
  • 红帽门户企业管理员分配给您的账户的席位,用于访问红帽 Ansible Lightspeed 服务。

流程步骤

您可以根据自己的偏好,在“用户”或“工作区”设置中启用红帽 Ansible Lightspeed。有关 VS Code 用户和工作区设置的更多信息,请参见 VS Code 文档

Installing the Ansible Visual Studio Code extension

安装 Ansible Visual Studio Code 扩展

  • 点击编辑器左侧 VS Code 活动栏中的 Ansible“A”,以打开扩展。
  • 点击“连接”,再按照提示使用您的凭据登录您的红帽账户。
  • 接下来,点击“Authorize”(授权),授权 Ansible Lightspeed 用于 VS Code。
  • 按照浏览器提示操作,重定向回 VS Code,最后在 VS Code 确认对话框中点击“Open”(打开)。
Log in using your Red Hat credentials

使用您的红帽凭据登录

恭喜!您已在 VS Code 中成功配置了 Ansible Lightspeed with watsonx Code Assistant。

您可以通过检查编辑器窗口底部的 VS Code 状态栏,确认 Red Hat Ansible Lightspeed 已启用。

VS Code status bar showing that Ansible Lightspeed is enabled

请确保已选择 Python 环境,并且您的 Ansible YAML 文件已与 Ansible 语言关联。有关 VS Code 语言的更多信息,请参见 VS Code 文档

使用红帽 Ansible Lightspeed 进行创建

现在,您已连接到 Ansible Lightspeed with watsonx Code Assistant,是时候体验它的 AI 增强型内容创建功能了。

我们使用 示例 Playbook 来演练如何向红帽 Ansible Lightspeed 询问 AI 生成的任务建议,同时重点介绍您可以从商业功能中获得的一些好处。示例 playbook 将在数据库主机组的所有计算机上安装和配置 PostgreSQL

:在我们持续改进此项服务的过程中,IBM 和红帽将不断推送更新,以提高 AI 建议的质量。因此,以下示例中的 Ansible 任务建议可能与您自己操作时看到的有所不同。

如何生成红帽 Ansible Lightspeed 建议?

我们使用 configure_postgres.yml 示例 Playbook 中的第一个 Playbook 任务来演示如何向 Ansible Lightspeed with watsonx Code Assistant 请求 AI 建议。

  • 将光标移到“- name: Install postgresql-server”任务描述的末尾。
  • 按“ENTER”以生成建议。
  • 按“TAB”接受建议。
Generating an Ansible task

生成 Ansible 任务

在此建议中,我们要求此项服务安装“postgresql-server”软件包,此建议使用了完全限定集合名称(FQCN)- ansible.buildin.package 来引用 Ansible 模块,从而管理通用操作系统软件包。

使用 FQCN 是推荐的最佳实践 ,也是我们在红帽 Ansible Lightspeed 服务中融入的许多独特后处理功能之一。

我们继续执行后续任务。

如何生成多个任务建议?

现在,我们已从此项服务获得了“Install postgresql-server”的建议,接下来我们需要向此项服务询问更多建议来配置 PostgreSQL,例如

  • 运行 postgresql-setup 命令
  • 开始并启用 postgresql 服务
  • 允许 postgres 流量通过防火墙

一种方法是遵循单任务机制来获取每个任务的建议,就像我们在上一节中所做的那样。

Ansible Lightspeed with watsonx Code Assistant 的一个令人兴奋的新商业功能是多任务生成。作为实现完整 Playbook 生成的路线图上的一个步骤,多任务生成允许您使用单个提示条目生成多个任务,方法是在任务级别使用 YAML 注释中的“与”(&)符号串联多个任务描述。

我们使用同一个 Playbook 示例,演示如何向此项服务请求多任务建议。我们已在此文件中创建了 YAML 注释。如果您仔细查看第 12 行,会发现我们在任务级别的 YAML 注释中使用 & 符号串联了不同的任务来配置 PostgreSQL。

  • 将光标移到“# Run postresql-setup command & Start and enable postgresql service & Allow the traffic”这一行的末尾,这是 YAML 注释。
  • 按“ENTER”以生成包含多个任务的建议。
  • 按“TAB”接受建议。
Generating multiple Ansible tasks

生成多个 Ansible 任务

这次,我们在同一个 Playbook 中,询问了关于“运行 postgresql-command”、“开始并启用 postgresql 服务”和“允许流量”的多个建议。这一次在建议中返回了三个 Ansible 任务。

生成具有上下文感知的准确 Ansible 内容建议可以节省您的时间,帮助您提高创作效率。红帽 Ansible Lightspeed 的超能力之一就是上下文环境。最后一个任务只是要求“允许流量”,这似乎不像是常见的 AI“询问”,但红帽 Ansible Lightspeed 服务能感知到它正在其中工作的 Ansible Playbook,并建议打开一个端口,对应于 PostgreSQL 的默认端口(5432)。 

:这只是一个示例,旨在向读者展示 Ansible Lightspeed with watsonx Code Assistant 的功能。在编写 Ansible 内容时,我们建议使用明确的任务名称,以便任何人都能轻松理解您的 Ansible 内容。

我们来看看下一个特性。

基于内置的透明度放心采用:内容来源匹配

Ansible Lightspeed with watsonx Code Assistant 的另一个关键特性是内容来源匹配所带来的透明度和开放性。我们透明地共享用于 AI 建议的训练数据的潜在来源、作者和内容许可。在社区中建立信任并支持作者和贡献者之间的关系是红帽一贯秉持的理念

Ansible Lightspeed Content Source Matching

Ansible Lightspeed 内容来源匹配

基于 Ansible 最佳实践和更高的准确性放心采用

红帽 Ansible Lightspeed 专注于自动化,提供精简且准确的生成式 AI 体验,由 IT 自动化团队自己量身定制和获取建议。借助遵循公认最佳实践的后处理功能,自动化团队可以对所接受的建议内容充满信心。

红帽 Ansible Lightspeed 的后处理功能根据最佳实践,增强了 IBM watsonx Code Assistant 给出的 Ansible 内容建议。例如,使用 FQCN、执行数据匿名化处理和变量替换等。

上面“如何生成建议”一节中的示例演示了使用 FQCN 生成的建议,作为此项服务的一种后处理功能。

维护:Ansible 代码机器人(服务预览)

客户经常会问,“我们有了内容,但下一步是什么”?如何摆脱孤立的自动化?如何构建分享实践的社区?

我们的答案是从构建文化开始,将基础架构工作流视为软件资产,促进企业级自动化所需的协作方式。 

不过,这可能需要学习新的技能,如版本控制、自动化测试和代码审查。Ansible 代码机器人的目标是将 Ansible 内容质量改进操作从创建环节扩展到整个工作流。

Ansible 代码机器人会扫描 GitHub 存储库中托管的现有 Ansible 内容集、角色和 Playbook,并在有最佳实践或质量改进建议时主动创建拉取请求。机器人自动向存储库提交拉取请求,这会主动提醒存储库所有者查看对其内容的更改建议。您可以配置 Ansible 代码机器人来扫描现有的 Git 存储库(公共存储库和私有存储库)。

Ansible 代码机器人使用 Ansible lint 来建议 Ansible 内容质量改进。它旨在推广经过验证的实践、模式和行为,同时避免容易导致错误或使内容难以维护的常见错误。Ansible 代码机器人会根据配置的规则扫描您的内容,以确保您的内容符合 Ansible 最佳实践。

前提条件

  • 红帽客户门户账户(已关联到您的企业)。
  • 您的企业应当具有已启用的 Ansible Lightspeed with watsonx Code Assistant 订阅。

流程步骤

  1. 使用与您的企业关联的账户登录您的 GitHub。
  2. 为您所属的企业安装 GitHub 应用。 
  3. 前往 Ansible 代码机器人 GitHub 应用:
  4. 选择要在哪个存储库上安装 Ansible 代码机器人。
  5. 点击 Install & Authorize(安装和授权)。
  6. 出现提示时,登录您的红帽 SSO 账户。
Ansible Code bot in action

实际使用中的 Ansible 代码机器人

为您选择的 Git 存储库安装了 Ansible 代码机器人后,您可以配置计划以定期扫描 Git 存储库。如果您尚未给 Ansible 代码机器人设置扫描计划,或者您不想等待下一次计划扫描,还可以通过在您的存储库中添加一个名为“ansible-code-bot-scan”的主题来手动扫描您的 Git 存储库。

:服务预览是云服务的初始发布“阶段”。服务预览可供选定的内部和外部客户使用,以收集有关服务的初步反馈,但不适用于生产用途。此外,处于现场试用、有限可用性或一般可用性阶段的个别云服务功能可能被记录为服务预览,这意味着该功能不可用于生产用途。

总结

恭喜!您已成功为您的企业配置了通过 IBM Watson Code Assistant 使用的 Ansible Lightspeed。您还可以通过几个简单的步骤,将一些令人兴奋的新生成式 AI 功能投入使用。

我们建议您加入 Ansible Lightspeed Matrix 讨论室,在这里您可以分享反馈、获取最新消息,并获取自动化同行和红帽团队的解答。  

后续步骤 + 资源

有关后续步骤的更多信息,请查看红帽 Ansible Lightspeed 主页,其中为现有红帽客户和有兴趣试用 Ansible 自动化平台的客户提供了链接。 

助您探索 Ansible 和生成式 AI 的其他资源:

随着这项服务的发展,我们将不断提供博客、视频和其他资源,帮助您在 Ansible 中充分利用生成式 AI。 

感谢阅读,祝您的自动化之旅一切顺利。


关于作者

Anshul is a Principal Marketing Manager at Red Hat, where he brings his software development and QE experience to increase Ansible Automation Platform's adoption experience for customers by producing technical content on all aspects of the product.

Read full bio