金鱼哥RHCA回忆录:DO447构建高级作业工作流--作业调度和配置通知

举报
金鱼哥 发表于 2022/06/30 20:38:08 2022/06/30
【摘要】 第十章 构建高级作业工作流--作业调度和配置通

🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


📜官网:

https://docs.ansible.com/ansible-tower/3.8.1/html_zh/userguide/scheduling.html

https://docs.ansible.com/ansible-tower/3.8.1/html_zh/userguide/notifications.html


📜10.4.1 执行调度作业

有时您可能需要在特定时间或特定日程自动启动作业模板。Red Hat Ansible Tower允许您配置调度作业,它将在可定制的调度上启动作业模板。

如果在作业模板上具有Execute角色,则可以通过设置计划从该模板启动作业。若要配置预定作业,请在左侧导航栏中选择“模板”。单击待调度的Job Template,在右侧窗格中单击SCHEDULES。单击+按钮为该作业模板创建一个新计划。
在这里插入图片描述

输入所需的详细信息:

  • NAME:时间表的名称。

  • START DATE:作业计划应该开始的日期。

  • START TIME:启动关联作业的时间。

  • LOCAL TIME ZONE: tzselect命令行实用工具可用于确定此格式的本地时区。

  • REPEAT FREQUENCY:重复相关作业的频率。您可以选择“无(运行一次)”、“分、小时、日、周、月、年”

根据所选择的频率,您可能需要提供额外的信息(例如,每两天或每个月的第一个星期天启动一个作业)。

完成后,单击SAVE保存计划。您可以使用日程名称旁边的ON/OFF按钮来取消或激活日程。


📑暂时禁用时刻表

单击左侧导航栏中的“Schedules”,进入“Scheduled Jobs”页面。这个页面列出了所有已定义的时间表。在每个时间表名称的左边是一个ON/OFF按钮。将此设置为ON或OFF以分别激活或禁用计划。

可以从这个页面编辑或删除任何计划,假设有足够的权限这样做。


📑调度管理工作

默认情况下,Red Hat Ansible Tower有两个特殊的计划作业。这两个计划是用于内置的Management job的,它们通过清除Activity Stream的旧日志信息和历史作业执行,对Ansible Tower服务器本身执行定期维护。

Cleanup Job Schedule将删除历史作业的详细信息,以节省空间。它每周在周日运行一次,以删除缺省情况下超过120天的作业信息,但您可以通过编辑计划来更改运行时间和保留的数据量。

Cleanup Activity Schedule每周在周二运行一次,以从活动流中删除超过355天的信息。同样,您可以通过编辑计划来更改它运行的时间和保留的数据量。


📜10.4.2 报告作业执行结果

使用Ansible Tower管理企业的Ansible基础设施的好处之一是集中日志记录和审计。当作业执行时,有关作业执行的详细信息会记录在Ansible Tower数据库中。用户可以在以后的时间引用该数据库,以确定过去执行作业的历史结果。

历史作业执行细节有助于管理员确认计划的和委托的作业执行的成功和失败。检索历史作业执行细节的功能很有帮助,但是对于与关键功能相关的作业,管理员可能希望立即收到作业成功或失败的通知。

Red Hat Ansible Tower可以发送作业执行结果的即时警报。要使用此功能,管理员需要创建通知模板,用于定义发送通知的方式。Ansible Tower支持许多发送通知的机制。有些基于电子邮件和IRC等开放协议,有些基于HipChat和Slack等专有解决方案。


📑通知模板

通知模板在组织的上下文中定义。创建通知模板后,可以使用通知模板发送Ansible Tower为该组织运行的作业结果的通知。

通知模板定义了如何发送通知的机制。支持的机制包括:

• Email

• Slack

• Twilio

• PagerDuty

• HipChat

• Webhook

• IRC


📑创建通知模板

通知模板是通过Notifications界面创建的,可以从左侧导航栏访问。根据所选的通知机制,notification Template界面的TYPE DETAILS部分提示不同的用户输入
在这里插入图片描述

说明以下步骤创建“邮件类型通知模板”。

  1. 在NOTIFICATIONS界面中,单击+按钮创建一个新的Notification Template

  2. 在name字段中为通知模板输入唯一的名称

  3. 在“组织”字段中,指定要在其中创建通知模板的组织。

  4. 在TYPE列表中,选择Email作为Notification Template用来生成通知的机制。选择通知类型之后,type DETAILS部分下会显示特定于类型的用户输入字段。

  5. 在SENDER EMAIL字段中,指定在编写通知电子邮件时使用的发件人的电子邮件地址

  6. 在收件人列表字段中。指定通知邮件的收件人的电子邮件地址,每行一个。

  7. 在PORT字段中,指定SMTP中继主机上要连接的端口。

  8. 您可以完成配置SMTP身份验证和启用安全传输的字段,但这些字段是可选的。

  9. 单击“保存”,保存通知模板。


📑启用作业结果通知

创建通知模板后,就可以使用它了作为通知模板组织的一部分的Ansible Tower资源,如作业模板,项目,或者工作流。
在这里插入图片描述

以下步骤为作业模板启用通知。

  1. 单击左侧导航栏的“模板”,显示模板列表。

  2. 单击所需作业模板的名称,然后单击NOTIFICATIONS。

  3. 通知界面显示组织的通知模板列表。

  4. 列出的每个通知模板都有用于切换成功和失败通知的控件。设置SUCCESS和FAILURE控件,以实现作业模板所需的通知配置


注意:还可以使用通知模板来启用由Project和Inventory资源触发的系统作业的通知,以同步它们的数据。


📜10.4.3 课本练习

[student@workstation ~]$ lab project-notification start

📑1. 以admin帐号和redhat密码登录Ansible Tower web。


📑2. 添加通知模板到DEV webservers setup作业模板。

在这里插入图片描述
在这里插入图片描述


📑3. 验证通知模板。

在这里插入图片描述


📑4. 配置DEV webservers setup作业模板,当它的作业成功或失败时通知你。

使用任务成功和失败通知模板上的通知。
在这里插入图片描述


📑5. 验证DEV webservers setup作业模板在作业完成后触发通知电子邮件。

[student@workstation ~]$ ssh tower
[student@tower ~]$ tail -f /var/mail/student
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: Tower Notification Test 1 https://tower.lab.example.com
From: system@tower.lab.example.com
To: student@localhost
Date: Tue, 11 May 2021 07:49:24 -0000
Message-ID: <20210511074924.1619.55169@tower.lab.example.com>

Ansible Tower Test Notification 1 https://tower.lab.example.com

输入以1.2版本启动作业
在这里插入图片描述
在这里插入图片描述

收到日志信息

From system@tower.lab.example.com  Tue May 11 15:58:37 2021
Return-Path: <system@tower.lab.example.com>
X-Original-To: student@localhost
Delivered-To: student@localhost
Received: from tower.lab.example.com (localhost [IPv6:::1])
	by tower.lab.example.com (Postfix) with ESMTP id 5902914418BA
	for <student@localhost>; Tue, 11 May 2021 15:58:37 +0800 (CST)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: Job #60 'DEV webservers setup' succeeded:
 https://tower.lab.example.com/#/jobs/playbook/60
From: system@tower.lab.example.com
To: student@localhost
Date: Tue, 11 May 2021 07:58:37 -0000
Message-ID: <20210511075837.1621.46959@tower.lab.example.com>

Job #60 had status successful, view details at https://tower.lab.example.com/#/jobs/playbook/60

{
    "id": 60,
    "name": "DEV webservers setup",
    "url": "https://tower.lab.example.com/#/jobs/playbook/60",
    "created_by": "admin",
    "started": "2021-05-11T07:58:20.210889+00:00",
    "finished": "2021-05-11T07:58:36.261403+00:00",
    "status": "successful",
    "traceback": "",
    "inventory": "Dev",
    "project": "My Webservers DEV",
    "playbook": "apache-setup.yml",
    "credential": "Developers",
    "limit": "",
    "extra_vars": "{\"deployment_version\": \"v1.2\"}",
    "hosts": {
        "servera.lab.example.com": {
            "failed": false,
            "changed": 1,
            "dark": 0,
            "failures": 0,
            "ok": 6,
            "processed": 1,
            "skipped": 0
        },
        "serverb.lab.example.com": {
            "failed": false,
            "changed": 1,
            "dark": 0,
            "failures": 0,
            "ok": 6,
            "processed": 1,
            "skipped": 0
        }
    },
    "friendly_name": "Job"
}

📑6. 验证访问。

[student@workstation ~]$ curl servera
This is a test message RedHat 8.0 <br>
Current Host: servera <br>
Server list: <br>
serverb.lab.example.com <br>
servera.lab.example.com <br>
Deployment Version: v1.2 <br>

[student@workstation ~]$ curl serverb
This is a test message RedHat 8.0 <br>
Current Host: serverb <br>
Server list: <br>
serverb.lab.example.com <br>
servera.lab.example.com <br>
Deployment Version: v1.2 <br>

📑7. 基于DEV webservers setup作业模板,在当前时间三分钟后安排一个新的作业。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


📜10.5 章节实验

[student@workstation ~]$ lab project-review start


📑1. 以admin帐号和redhat密码登录Ansible Tower web。


📑2. 按要求启用事实缓存。

在这里插入图片描述
在这里插入图片描述


📑3. 按要求创建工作流模板。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


📑4. 创建工作流。

在这里插入图片描述


📑5. 设置问卷。

在这里插入图片描述
在这里插入图片描述


📑6. 设置通知。

在这里插入图片描述


📑7. 启动作业。

在这里插入图片描述


📑8. 查看通知。

[root@tower ~]# tail -f /var/mail/student
From system@tower.lab.example.com  Tue May 11 16:39:38 2021
Return-Path: <system@tower.lab.example.com>
X-Original-To: student@localhost
Delivered-To: student@localhost
Received: from tower.lab.example.com (localhost [IPv6:::1])
	by tower.lab.example.com (Postfix) with ESMTP id 80EC814418BA
	for <student@localhost>; Tue, 11 May 2021 16:39:38 +0800 (CST)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: Workflow Job #67 'From Test to Prod' succeeded:
 https://tower.lab.example.com/#/workflows/67
From: system@tower.lab.example.com
To: student@localhost
Date: Tue, 11 May 2021 08:39:38 -0000
Message-ID: <20210511083938.1622.60936@tower.lab.example.com>

Workflow job summary:

- node #9 spawns job #68, "My Webservers TEST", which finished with status successful.
- node #10 spawns job #69, "TEST webservers setup", which finished with status successful.
- node #11 spawns job #71, "My Webservers PROD", which finished with status successful.
- node #12 spawns job #72, "PROD webservers setup", which finished with status successful.

📑9. 访问验证。

[student@workstation ~]$ curl serverc
This is a test message RedHat 8.0 <br>
Current Memory: 821 <br>
Current Free Memory: 134 <br>
Current Host: serverc <br>
Server list: <br>
serverc.lab.example.com <br>
serverd.lab.example.com <br>
Deployment Version: v1.3 <br>

[student@workstation ~]$ curl serverd
This is a test message RedHat 8.0 <br>
Current Memory: 821 <br>
Current Free Memory: 132 <br>
Current Host: serverd <br>
Server list: <br>
serverc.lab.example.com <br>
serverd.lab.example.com <br>
Deployment Version: v1.3 <br>

[student@workstation ~]$ curl servere
This is a test message RedHat 8.0 <br>
Current Host: servere <br>
Server list: <br>
serverf.lab.example.com <br>
servere.lab.example.com <br>
Deployment Version: v1.3 <br>

[student@workstation ~]$ curl serverf
This is a test message RedHat 8.0 <br>
Current Host: serverf <br>
Server list: <br>
serverf.lab.example.com <br>
servere.lab.example.com <br>
Deployment Version: v1.3 <br>

📑10. 脚本评分。

[student@workstation ~]$ lab project-review grade

💡总结

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第十章 构建高级作业工作流–作业调度和配置通 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。