Ansible最佳实践之 AWX 高级作业工作流的创建和调度

简介: 写在前面分享一些 AWX 高级作业工作流的创建和调度的笔记博文内容涉及:创建和启动工作流模板 Demo工作流调度和通知的相关介绍食用方式: 需要了解 Ansible理解不足小伙伴帮忙指正

写在前面

  • 分享一些 AWX 高级作业工作流的创建和调度的笔记
  • 博文内容涉及:

    • 创建和启动工作流模板 Demo
    • 工作流调度和通知的相关介绍
  • 食用方式: 需要了解 Ansible
  • 理解不足小伙伴帮忙指正

傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波


创建工作流作业模板和启动工作流作业

AWX 可以创建工作流作业模板,并以单个工作流的形式启动多个 Ansible 作业。

工作流作业模板

工作流作业模板将多个作业模板连接到工作流。启动后,工作流作业模板将使用第一个作业模板启动作业,并根据它是成功还是失败来确定要在下一步中启动的作业模板。这允许启动一系列作业,并在作业失败时自动执行恢复步骤。

工作流作业模板可以通过多种方式启动:

  • 从 AWX web UI 手动启动;
  • 作为计划的作业启动;
  • 使用 AWX API 通过外部程序启动。

⼯作流作业模板不只是以串行方式运行作业模板。使用图形工作流编辑器,工作流作业模板将多个作业模板链接
在一起,并根据上一个是成功还是失败来运行不同的作业模板。

创建工作流作业模板

需要先创建工作流作业模板,然后才能定义工作流并与之关联。

使用工作流可视化工具

工作流可视化工具是一种图形界面,用于定义工作流中要包含的作业模板,以及决策树结构,该结构应该用于将作业模板链接在一起:

当工作流可视化工具启动时,它包含一个 START 节点,代表工作流的执行起点。

单击 START 以启动工作流编辑流程;工作流可视化工具显示 AWX 资源的列表,可以将其作为工作流的第一步来添加。

除了作业模板之外,还可以将同步项目或清单的作业合并到工作流中。

在添加资源作为第一个工作流节点后,将⿏标悬停于其中即会显示两个按钮。

  • 红色 - 按钮将删除节点。
  • 绿色 + 按钮会添加一个后续节点。

添加后续节点时,资源选择面板中将显示 RUN 提示,在选择资源时提示输入其他内容。此提示提供以下三个选项,用于指定新节点和上一节点之间的关系:

一个节点可以有多个子节点。

当节点添加到工作流中时,工作流编辑器中连接节点的不同颜色行将指支父节点和子节点之间的关系。

  • 绿线表示父节点和子节点之间的 On Success 类型关系
  • 红线则表示 On Failure 类型关系
  • 蓝线表示 Always 类型关系

在工作流编辑器中创建了工作流的整个决策树结构后,单击 SAVE 以保存该工作流。

调查问卷

与作业模板⼀样,也可以向工作流作业模板添加调查,以允许⽤户以交互方式设置额外的变量。

启动工作流作业

与作业模板⼀样,⽤户需要对工作流作业模板的 execute 角色才能执行它。被分配了 execute 角色时,用户可以通过工作流作业模板启动作业,即使他们没有单独启动其使用的作业模板的权限。

评估工作流作业执行

启动工作流作业后, AWX web UI 将显示正在执行的作业的作业详情页面。

完成每个步骤后,其节点将以绿色或红色框出,表示工作流中与该步骤相关联的操作成功或失败。这里报错是因为我们设置了变量,但是没有启动调查问卷输入变量,所以报错了,

开启调查问卷

在执行的时候输入变量值

再次启动,运行通过

调度作业和配置通知

调度自动作业执行并配置作业完成通知

调度作业执行

红帽 AWX 允许配置调度的作业,按照可自定义的计划启动作业模板。默认情况下,系统会有一些默认的调度任务,用于清理历史数据等

如果对作业模板拥有 Execute 角色,可以通过设置计划来从该模板启动作业。

若要配置调度的作业,请先从左侧导航栏中选择 Templates 模板。单击要调度的作业模板,然后在右侧的窗格中,单击 SCHEDULES。

输入所需的详细信息:

  • NAME:计划的名称
  • START DATE:作业调度应开始的日期
  • START TIME:作业调度应开始的时间
  • LOCAL TIME ZONE:本地时区
  • REPEAT FREQUENCY:重复关联作业的频率

选择完成,点击保存

临时禁用计划

单击左侧导航栏中的 Schedules,以显示 Scheduled Jobs 页面。页面中列出了所有定义的计划。在每个计划名称的左侧有一个 ON/OFF 按钮。将此设置为 ON 或 OFF ,以分别激活或停用计划。

调度的管理作业

默认情况下,红帽 AWX 附带几个特殊的调度作业。适用于内置的管理作业,它们通过清理活动流和历史作业执行的旧日志信息,在 AWX 服务器本身上执行定期维护。

  • Cleanup Job Schedule :将删除历史作业的详细信息,以节省空间。默认每周星期日允许一次,来删除超过120天的作业信息。
  • Cleanup Activity Schedule :在每周的星期二运行一次,以从活动流中删除超过 355 天的信息。
  • Cleanup Expired Sessions :清理过期的浏览器会话
  • Cleanup Expired OAuth 2 Tokens: 清理过期的OAuth 2令牌

报告作业执行结果

使用 AWX 管理企业的 Ansible 基础架构的一个好处是集中式日志记录和审计。
执行作业时,有关作业执行的详细信息记录在 AWX 数据库中。用户稍后可以引用此数据库来确定过去作业执行的历史结果。

红帽 AWX 可以立即发送作业执行结果的警报。 AWX 支持多种发送通知的机制。⼀些机制基于开放协议(如电子邮件和 IRC),另一些则基于专有解决方案(如 HipChat 和 Slack)。

通知模板

通知模板可用于发送由 AWX 为该组织运行的作业结果的通知。通知模板定义发送通知的机制。支持的机制包括:电⼦邮件,Slack,Twilio,PagerDuty,HipChat,Webhook,IRC。

创建通知

创建通知后可以和模板绑定,指定通知事件

博文参考

《DO447 Advanced Automation Ansible Best Practices》

相关文章
|
存储 网络安全 API
【2023】ansible-高级任务控制
【2023】ansible-高级任务控制
141 0
|
存储 缓存 Linux
Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查
写在前面 分享一些 AWX 启用facts缓存和模板问卷调查的笔记 博文内容涉及: 启动facts缓存相关配置Demo 启用模板调查来设置变量demo 食用方式: 需要了解 Ansible 理解不足小伙伴帮忙指正
213 0
Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查
|
存储 JSON Devops
Ansible最佳实践之 AWX 使用 Ansible 与 API 通信
写在前面 分享一些 AWX 使用 Ansible 与 API 通信的笔记 博文内容涉及: curl 方式调用 AWX API 浏览器接口文档方式调用 AWX API 使用 API 调用方式启动 AWX 中 作业模板 Ansible 模块 uri 的简单介绍 Ansible 剧本方式 调用 API 启动作业模板 理解不足小伙伴帮忙指正
571 0
Ansible最佳实践之 AWX  使用 Ansible 与 API 通信
|
存储 缓存 监控
Ansible最佳实践之 AWX 作业创建和启动
写在前面 分享一些 AWX 作业创建和启动的笔记 博文内容涉及: 创建作业模板 涉及相关参数,作业模板角色配置介绍 运行作业模板并测试的Demo 食用方式: 需要了解 Ansible 理解不足小伙伴帮忙指正
362 0
Ansible最佳实践之 AWX 作业创建和启动
|
运维 负载均衡 Kubernetes
Ansible最佳实践之委派任务和事实
写在前面 分享一些 Ansible 委派任务和事实委派 的笔记 博文内容涉及: Ploybook 任务委派 Demo Ploybook 事实委派 Demo 理解不足小伙伴帮忙指正
180 0
|
1月前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
1月前
|
运维 应用服务中间件 Linux
自动化运维的利器:Ansible在配置管理中的应用
【10月更文挑战第39天】本文旨在通过深入浅出的方式,向读者展示如何利用Ansible这一强大的自动化工具来优化日常的运维工作。我们将从基础概念讲起,逐步深入到实战操作,不仅涵盖Ansible的核心功能,还会分享一些高级技巧和最佳实践。无论你是初学者还是有经验的运维人员,这篇文章都会为你提供有价值的信息,帮助你提升工作效率。
|
19天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
|
17天前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。