🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥🎈支持我:可点赞👍、可收藏⭐️、可留言📝
📜官网:
https://docs.ansible.com/ansible-tower/3.8.1/html_zh/userguide/workflows.html
https://docs.ansible.com/ansible-tower/3.8.1/html_zh/userguide/workflow_templates.html
📜10.3.1 工作流作业模板
随着一个组织使用Ansible的增长,它拥有的Ansible剧本的数量也在增长。每个剧本通常执行一组与特定功能相关的任务。
您可能希望按顺序运行多个剧本,而不是编写一个大型剧本来自动化一个复杂的操作。例如,要供应服务器,您可能需要使用Networking团队的剧本为服务器分配一个IP地址并设置一个DNS记录,然后使用来自Operations团队的另一个剧本来安装和配置服务器的操作系统。最后,您将使用来自Development团队的剧本来部署应用程序。换句话说,要使流程成功,您需要遵循特定的工作流。
这可以在Ansible Tower中通过让用户按顺序手动启动多个作业来实现。但是作业必须按照您的工作流所定义的正确顺序执行,这样一切才能正常工作。
- 必须首先执行Networking作业。
- 只有成功完成Networking作业后,才会有Operations作业。
- 同样,只有成功地完成了Networking和Operations作业,Application Development 作业才会随之而来。
最后,如果其中一个剧本失败了,您可能希望运行其他剧本来恢复。
为了便于管理,Red Hat Ansible Tower支持工作流作业模板。工作流作业模板将多个作业模板连接到一个工作流中。启动时,工作流作业模板使用第一个作业模板启动作业,并根据作业模板的成功或失败确定下一步启动哪个作业模板。这允许启动一系列作业,并在作业失败时自动采取恢复步骤。
工作流程模板可以通过多种方式启动:手动,从Ansible Tower的web Ul;作为预定的工作;通过外部程序使用Ansible Tower API。
工作流作业模板不只是以串行方式运行作业模板。使用图形化工作流编辑器,工作流作业模板将多个作业模板链在一起,并根据前一个作业模板是成功还是失败运行不同的作业模板。
📜10.3.2 创建工作流作业模板
在定义和关联工作流之前,您需要创建工作流作业模板。它们可以与组织一起创建,也可以不与组织一起创建。在组织上下文中创建工作流作业模板要求用户具有组织的管理角色。
要创建不属于组织的工作流作业模板,需要单例系统管理员用户类型。
工作流作业模板以与作业模板类似的方式创建。
- 单击左侧导航中的“模板”,进入“模板”管理界面。
- 点击+按钮并选择Workflow Template。
- 在name字段中为工作流作业模板输入唯一的名称。可选地在EXTRA VARIABLES字段中输入任何想要的键值对。
- 单击SAVE创建工作流作业模板。创建工作流作业模板后,您可以使用工作流可视化工具来定义关联的工作流。
📑使用工作流可视化工具
创建工作流作业模板后,工作流可视化将在工作流作业模板编辑界面中激活。工作流编辑器将在一个新窗口中打开。Workflow Visualizer是一个图形界面,用于定义要合并到工作流中的作业模板以及决策树结构,决策树结构应该用于将作业模板链在一起。
当Workflow Visualizer启动时,它包含一个START节点,表示执行工作流的起点。单击START启动工作流编辑过程;Workflow Visualizer显示一个Ansible Tower资源列表,可以作为工作流的第一步添加。您可以选择所需的资源类型,具体的资源,然后单击select添加一个Ansible Tower资源作为工作流中的第一个节点。
除了作业模板之外,同步项目或清单的作业也可以合并到工作流中。这对于确保在使用依赖于它们的作业模板之前更新Project和Inventory资源非常有用。为了便于识别,Project Sync和Inventory Sync节点分别用节点左下方的P或I表示。工作流编辑器屏幕顶部的键可以解释此表示法。作业模板节点没有任何特殊的标记,因为它们是工作流中的主节点类型。
将资源添加为第一个工作流节点后,将鼠标悬停在它上面会出现两个按钮。红色按钮删除节点,绿色按钮添加后续节点。当添加后续节点时,RUN提示将出现在资源选择面板中,提示您在选择资源时进行其他输入。该提示提供了以下三个选项,用于指定新节点和前一个节点之间的关系。
RUN | 节点之间的关系 |
---|---|
On Success | 成功完成与前一个节点关联的操作后,将执行节点资源。 |
On Failure | 当与前一个节点关联的操作失败时,将执行节点资源。 |
Always | 无论与前一个节点关联的操作的结果如何,都将执行节点资源。 |
一个节点可以有多个子节点。例如,一个子节点可以添加父节点关联类型为On Success,另一个子节点可以添加关联类型为On Failure。例如,可以使用On Success关联类型将子节点添加到父节点。您可以使用On Failure关联类型向同一父节点添加第二个子节点。这在工作流结构中创建了一个分支,这样在一个操作成功时采取一个操作过程,在一个操作失败时采取另一个操作过程。
随着节点添加到工作流中,工作流编辑器中连接节点的不同颜色的线表示父节点和子节点之间的关系。绿色线表示父节点和子节点之间的On Success类型关系,红色线表示On Failure类型关系。蓝线表示Always类型关系。
在工作流编辑器中创建工作流的整个决策树结构后,单击SAVE保存工作流。
调查
工作流作业模板可以访问已经为作业模板讨论过的许多特性。与作业模板一样,工作流作业模板也可以添加调查,以允许用户交互式地设置额外的变量。
注意:当将问卷调查添加到工作流作业模板时,该工作流执行的每个作业都可以访问由此产生的额外变量。
📜10.3.3 启动工作流作业
与作业模板一样,用户需要工作流作业模板上的执行角色来执行它。当分配执行角色时,用户可以通过工作流作业模板启动作业,即使他们没有独立启动其使用的作业模板的权限。
启动工作流作业模板的过程与启动作业模板的过程类似
- 单击导航中的“模板”,进入“模板”管理界面。
- 单击工作流作业模板的火箭图标以启动作业。
📑评估工作流作业执行
启动工作流作业后,Ansible Tower web UIl将显示正在执行的作业的job Details页面。这个页面由两个窗格组成。DETAILS窗格显示工作流作业执行的详细信息。工作流进度窗格通过工作流中的步骤显示作业的进度
当每个步骤完成时,它的节点用绿色或红色标出,指示与工作流中该步骤相关联的操作的成功或失败。从一个步骤到另一个步骤的过程用彩色的线表示,这些线表示对过程负责的决策。绿色表示On Success进程,红色表示On Failure进程。蓝色表示Always进程。
可以在执行期间或执行之后显示工作流作业运行的详细信息。工作流图中表示当前运行作业或已完成作业的每个节点提供一个DETAILS链接。您可以单击此链接来显示作业运行的结果和标准输出。
📜10.3.4 课本练习
[student@workstation ~]$ lab project-workflow start
📑1. 以admin帐号和redhat密码登录Ansible Tower web。
📑2. 创建一个名为From Dev to Test的工作流作业模板。
📑3. 配置工作流作业模板。
3.1 工作流可视化工具会自动打开。
3.2 单击START添加第一个操作。这将在右侧面板中显示要执行的操作列表。
3.3 在右面板中,单击PROJECT SYNC以显示可用项目列表
3.4 选择My Webservers DEV并点击SELECT。在工作流可视化工具窗口中,用蓝线(总是执行)将START节点链接到项目的节点,My webservers DEV
3.5 将鼠标移到新节点上,点击绿色+按钮,在My webservers DEV的Project Sync后添加一个动作。这将在右面板中显示要执行的动作列表。
3.6 在右边的面板中,确保你在JOBS部分,并选择DEV webservers setup作业模板。
3.7 在下面的RUN部分中,选择On Success并单击select。这将My Webservers DEV项目的节点链接到一个新的节点,用于在工作流可视化工具窗口中的DEV Webservers setup作业模板。绿色链接表示,只有第一步成功后才会有进展
3.8 将鼠标移到新节点上,点击绿色+按钮,在DEV webservers setup作业模板后添加一个操作
3.9 在右面板中,单击PROJECT SYNC以显示可用项目列表。
3.10 选择My Webservers TEST。在下面的RUN部分中,选择On Success并单击select。
3.11 将鼠标移到新节点上,单击绿色的+按钮,在My webservers TEST的项目同步后添加一个操作。
3.12 在右边的面板中,确保你在JOBS部分并选择TEST webservers setup Job Template。在下面的RUN部分中。选择“On Success”,单击“select”。
3.13 单击SAVE保存工作流作业模板。
📑4. 使用工作流作业模板启动作业。
📑5. 验证操作。
[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.1 <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.1 <br>
[student@workstation ~]$ curl serverc
This is a test message RedHat 8.0 <br>
Current Memory: 821 <br>
Current Free Memory: 138 <br>
Current Host: serverc <br>
Server list: <br>
serverd.lab.example.com <br>
serverc.lab.example.com <br>
Deployment Version: v1.1 <br>
[student@workstation ~]$ curl serverd
This is a test message RedHat 8.0 <br>
Current Memory: 821 <br>
Current Free Memory: 134 <br>
Current Host: serverd <br>
Server list: <br>
serverd.lab.example.com <br>
serverc.lab.example.com <br>
Deployment Version: v1.1 <br>
📑6. 模拟失败。
关闭servera.lab.example.com并使用工作流作业模板启动一个作业。观察DEV webservers setup作业节点是如何失败的,这将导致整个工作流失败。
[student@workstation ~]$ ssh root@servera
[root@servera ~]# init 0
📑7. 启动servera。
💡总结
RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。
以上就是【金鱼哥】对 第十章 构建高级作业工作流--创建工作流作业模板并启动工作流作业 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!