金鱼哥RHCA回忆录:DO447构建高级作业工作流--作业调度和配置通知
🎹 个人简介:大家好,我是 金鱼哥,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为该组织运行的作业结果的通知。
通知模板定义了如何发送通知的机制。支持的机制包括:
• Slack
• Twilio
• PagerDuty
• HipChat
• Webhook
• IRC
📑创建通知模板
通知模板是通过Notifications界面创建的,可以从左侧导航栏访问。根据所选的通知机制,notification Template界面的TYPE DETAILS部分提示不同的用户输入
说明以下步骤创建“邮件类型通知模板”。
-
在NOTIFICATIONS界面中,单击+按钮创建一个新的Notification Template
-
在name字段中为通知模板输入唯一的名称
-
在“组织”字段中,指定要在其中创建通知模板的组织。
-
在TYPE列表中,选择Email作为Notification Template用来生成通知的机制。选择通知类型之后,type DETAILS部分下会显示特定于类型的用户输入字段。
-
在SENDER EMAIL字段中,指定在编写通知电子邮件时使用的发件人的电子邮件地址
-
在收件人列表字段中。指定通知邮件的收件人的电子邮件地址,每行一个。
-
在PORT字段中,指定SMTP中继主机上要连接的端口。
-
您可以完成配置SMTP身份验证和启用安全传输的字段,但这些字段是可选的。
-
单击“保存”,保存通知模板。
📑启用作业结果通知
创建通知模板后,就可以使用它了作为通知模板组织的一部分的Ansible Tower资源,如作业模板,项目,或者工作流。
以下步骤为作业模板启用通知。
-
单击左侧导航栏的“模板”,显示模板列表。
-
单击所需作业模板的名称,然后单击NOTIFICATIONS。
-
通知界面显示组织的通知模板列表。
-
列出的每个通知模板都有用于切换成功和失败通知的控件。设置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 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!
- 点赞
- 收藏
- 关注作者
评论(0)