简介
什么是事件驱动的 Ansible (Event-Driven Ansible)?
事件驱动的 Ansible 是一种增强和扩展自动化能力的新方式。它在提高 IT 速度和敏捷性的同时,确保了的一致性和韧性。事件驱动的 Ansible 技术由 Red Hat 开发,目前以开发者预览版的形式提供。社区的反馈至关重要。由于我们正在构建一个旨在最佳满足您需求的解决方案,因此我们为您提供了为其需求发声的机会。
事件驱动的 Ansible 旨在实现简单性和灵活性。通过编写 Ansible Rulebook(类似于 Ansible Playbooks,但更倾向于“如果-那么”场景)并允许事件驱动的 Ansible 订阅事件监听源,您的团队可以更快速、更轻松地在整个组织中自动化各种任务。EDA 提供了一种将运维逻辑代码化的方法。
为什么需要事件驱动?
自动化使我们能够赋予系统和技术速度与敏捷性,同时最大限度地减少人为错误。然而,在面对故障工单和问题时,我们通常仍依赖传统的、且往往是手动的方法进行故障排除和信息收集。这在本质上降低了效率并中断了业务。我们需要收集信息,尝试常规的排障步骤,并与不同的团队进行确认。
事件驱动的 Ansible 的一个应用场景就是将这些运维知识代码化,以便近乎实时地修复技术问题,或者至少在支持团队处理其他问题时,触发故障排除和信息收集,从而尝试寻找停机的根本原因。
事件驱动的 Ansible 有潜力改变我们响应问题的方式,并开启许多新的自动化可能性。
它为更快速的问题解决和对环境更强大的自动化观测提供了可能。
为什么需要 Rulebooks?
事件驱动的 Ansible 包含一个使用 Drools 构建的决策框架。我们需要一个 rulebook 来告诉系统需要标记哪些事件以及如何响应这些事件。这些 rulebooks 同样使用 YAML 创建,且使用方式与传统的 Ansible Playbooks 类似,因此更容易理解并构建所需的 rulebooks。Playbooks 和 rulebooks 之间的一个关键区别是,rulebook 需要“如果-这样-那么-那样”的编码,以使事件驱动的自动化方法生效。
一个 rulebook 由三个主要组件组成:
Sources(源) 定义我们将使用哪个事件源。这些源来自为适配常见用例而构建的源插件。随着时间的推移,将有越来越多的源可用。目前已有一些可用的源插件,包括:webhooks、Kafka、Azure service bus、文件更改和 alertmanager。
Rules(规则) 定义我们要尝试从事件源中匹配的条件。如果满足条件,则可以触发一个动作。
Actions(动作) 触发在满足条件时需要发生的操作。目前的一些动作包括:run_playbook, run_module, set_fact, post_event, debug。
总结如下:
事件由规则引擎处理
规则基于条件触发,动作由规则引擎执行
规则被组织在 Ansible Rulebooks 中
Ansible 规则可应用于发生在特定主机或组上的事件
对事件执行动作的条件化管理
逻辑条件采用简单的 YAML 结构
事件可以触发不同类型的动作
运行 Ansible Playbooks
直接运行模块 (Modules)
向事件处理器发送新事件
类 YAML 格式的熟悉感
当前的 Ansible 用户可以快速学习并开始编写 Rulebook
入门指南
请参阅 入门指南
其他资源
无论您是刚开始自动化之旅还是资深专家,都有各种资源可以增强您的自动化知识
自学实验练习 - 我们提供交互式的浏览器内练习,帮助您开始使用事件驱动的 Ansible 和 ansible-rulebook。
为什么事件驱动至关重要 - 查看另一篇关于为什么事件驱动的 Ansible 至关重要的博客。
事件驱动 Rulebooks - 在我们的 YouTube 频道上观看另一个事件驱动 Ansible 的示例。
EDA 与 GitOps - 在我们的 YouTube 频道上观看另一个结合了 GitOps 的事件驱动 Ansible 示例。
在我们的办公时间 2022 年 12 月 14 日 了解更多关于事件驱动 Ansible 的信息。