如果您已经开始自动化 F5application服务,那么您可能熟悉使用 Ansible 等自动化工具。 目前, F5 有 115 个 Ansible 模块,可让您自动化和管理各种 F5 活动和配置,例如许可、负载平衡、全局可用性、流量和安全策略等。 根据客户要求,这些 Ansible 模块由 F5构建和支持。 为了支持更多用例并简化application服务部署,F5 发布了application服务 3 (AS3) 作为F5 自动化工具链的一部分(有关更多背景信息,请参阅AS3 用户指南)。
在与客户讨论使用 Ansible 实现 F5 自动化时,我们发现一些自动化资深人士正在寻找使现有自动化更具可持续性、稳定性和可移植性的方法。 经常听到的一个问题是这样的: “我使用 Ansible 来自动化我的大部分应用基础设施,现在我听说了 AS3。 看起来,AS3 与 Ansible 一样,可以在 F5 BIG-IP 上配置application服务。 这些解决方案能达到同样的效果吗? 有没有我应该采取的建议方法?”
无需选择其中一种,适合您的方法实际上取决于您要解决的问题,在某些情况下,还取决于您的公司政策。 这里的目标是尝试用一些周围的背景来回答这个问题,并提出关于这两个工具如何互补的想法。 感兴趣的? 继续阅读…
AS3 是 BIG-IP API 扩展,它使用 JSON 文档通过单个声明式接口配置 BIG-IP 上的第 4-7 层application服务。 AS3 计划按月交付,通常在每月初,并且已经由 F5 支持 TMOS 12.1.x 及更高版本。
最简单的来说,AS3 和 Ansible 之间的选择取决于您对命令式和声明式配置方法的偏好。 AS3 允许您以声明性方式(而非命令性方式)进行 F5 配置。 将 AS3 与 Ansible 结合使用可以在其声明中使用行业标准术语(例如WAF )来抽象和模板化您的配置。 此外,随着 AS3 配备的新功能,您可以更轻松地将这些功能添加到application配置中。 这是因为,当您发展 AS3 声明时,您不必按照特定顺序对任务进行排序;AS3 将为您找出操作的步骤和顺序。
总体而言,当您想要使用声明式接口通过 JSON 模板化整个 BIG-IP 配置时,AS3 是一个不错的选择。 当您想要继续使用命令式方法或以临时操作和任务为主导时,Ansible 模块是一个不错的选择。 没有正确或错误的方法。 这完全取决于您的自动化策略的要求、需求和限制。
如果您已经在整个数据中心使用 Ansible 并且正在利用 Ansible 的生态系统,那么您现在有 2 个选择:
这意味着如果您想使用开源 Ansible 项目实现自动化,您将拥有额外的灵活性: 使用离散 BIG-IP 模块自动执行任务的方法,现在使用 AS3 的模板化方法。
要使用 Ansible 和 AS3 配置 F5application服务,您可以使用 F5 内置的bigip_appsvcs_extension 模块或Ansible 的 URI 模块。
要使用 Ansible 模块配置 F5 应用服务,您可以使用作为 Ansible 开源发行版的一部分分发的内置模块。
那么现在您如何使自动化的 F5 环境运作起来? 如何使您的自动化解决方案同时得到 F5 和 Red Hat 的支持? 您是否有一个分布式团队,需要高级自动化功能(例如 RBAC、计划自动化运行或 RESTful API)来集成到其他更大的工作流程中? 使用Red Hat Ansible Tower可以找到答案。 F5 客户可以增强 Red Hat Ansible Tower 的功能,以驱动更高效的 CI/CD 管道。
Red Hat Ansible Tower 利用了 Ansible Playbook 开发的自由,但增加了网络运营商可能需要的安全功能,特别是如果他们不是自动化专家的话。 借助 Red Hat Ansible Tower,团队现在可以灵活地自动化其 F5 环境(通过 AS3 或 F5 Ansible 模块),但可以持续应用和验证配置。
为了帮助您入门,这里有一个关于 AS3 和沙盒Ansible 环境的 2 分钟视频概述,重点介绍了使用自动化工具时抽象的好处。 一旦你熟悉了这个概念,也可以尝试一下Galaxy 上的 F5 Ansible 角色。