Ansible最佳实践之 AWX 作业创建和启动

简介: 写在前面分享一些 AWX 作业创建和启动的笔记博文内容涉及:创建作业模板涉及相关参数,作业模板角色配置介绍运行作业模板并测试的Demo食用方式: 需要了解 Ansible理解不足小伙伴帮忙指正

写在前面

  • 分享一些 AWX 作业创建和启动的笔记
  • 博文内容涉及:

    • 创建作业模板
    • 涉及相关参数,作业模板角色配置介绍
    • 运行作业模板并测试的Demo
  • 食用方式: 需要了解 Ansible
  • 理解不足小伙伴帮忙指正

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

创建作业模板和启动作业

作业模板、项目和清单

作业模板是一个用来启动运行 Playbook 的作业的模板。

创建了项目,这是时候,当前剧本只有项目,也就是要执行的剧本,执行剧本涉及的主机清单,变量等都没有,这里的项目类型于一个角色的 task 目录下的部分

作业模板将项目中的 Playbook主机清单、用于身份验证的凭据以及在启动 Ansible 作业以运行该 Playbook时使用的其他参数、变量相关联。

用户是否可以启动作业或创建具有特定项目和清单的作业模板取决于已为其分配的角色。当被授权 Use 角色时,用户可以使用作业模板将项目与清单关联。

作业模板定义了用于执行 Ansible 作业的参数。作业模板还必须定义将用于对受管主机进行身份验证的计算机凭据

创建作业模板

与其它 AWX 资源不同,作业模板不直接属于某一组织,而是属于某一组织的项目使用。作业模板与组织的关系由它所使用的项目决定。

由于必须使用清单、项目和计算机凭据定义作业模板,因此只有当用户被分配了这三个 AWX 资源中的⼀个或多个的 Use 角色时,它们才可创建作业模板

创建作业模板

可以设置超时,作业分片等

这里方便测试,使用之前手工创建的项目,下面为修改项目的执行剧本,这里我们使用 yum 模块来安装 htop 这个监控软件

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$kubectl exec -it awx-demo-65d9bf775b-hc58x -c awx-demo-task  -- bash
bash-5.1$ cat /var/lib/awx/projects/liruilong_manual/test.yaml
---
- name: awx demo
  hosts: all
  tasks:
    - name: yum htop
      yum:
        name: htop
        state: installed

bash-5.1$ exit
exit
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$

修改作业执行

作业模板具有其它配置,来调整启动模板时,下面问参数对应的描述:

  • 描述/DESCRIPTION:用于存储作业模板的可选描述。
  • 并行数/FORKS:控制在 Playbook 执行期间允许的并行进程数量。
  • 限制/LIMIT:限制由作业模板的清单提供的受管主机的列表。
  • 设置标签/JOB TAGS:接受在 Playbook 中存在以逗号分隔的标记列表。可以选择性的仅执行 Playbook 的特定部分。
  • 跳过标签/SKIP TAGS:接受在 Playbook 中存在以逗号分隔的标记列表。可以选择性的在 Playbook 执行期间条做其中的特定部分。
  • 标签/LABELS:标记是可以附加到作业模板来帮助分组或过滤作业模板的名称。
  • 提权/Enable Privilege Escalation:启用后,Playbook 将使用特权来执行。
  • 回调设置/Allow Provisioning Callbacks:启用后,会在 AWX 上创建回调 URL,供主机使用作业模板请求配置更新。
  • 是否并发执行/Enable Concurrent Job:启用后,将允许多次同时执行此作业模板。
  • 利用事实缓存/Use Fact Cache:启用后,将使用缓存的 Facts ,并将新发现的 Facts 存储在 AWX 上的 Facts缓存中。
  • 变量/EXTRA VARIABLES:与 ansible-playbook 命令的 -e 选项等效,用于将额外的命令行变量传递到作业执行的 Playbook。

提示输入作业参数

AWX 允许作业模板中的某些参数在作业执行时提示用户输⼊。这⼀ 启动时提示 选项适用于:

  • JOB TYPE
  • INVENTORY
  • CREDENTIAL
  • LIMIT
  • VERBOSITY
  • JOB TAGS
  • SKIP TAGS
  • EXTRA VARIABLES

在作业执行时能够灵活地更改作业参数有助于重复利用 Playbook。

作业模板角色

有三种角色可用于控制用户对作业模板的访问权限。

  • Admin:为用户提供了删除作业模板或编辑其属性的角色。
  • Execute:授予用户使用作业模板执行作业的权限。
  • Read:授予用户查看作业模板属性的只读访问权限。

管理作业模板访问权限

首次创建作业模板时,只能由创建它的用户或特定用户进行访问。

编辑作业模板访问权限

启动作业

创建作业模板后,需要使用具有 Excute 角色的用户来启动作业。启动作业过程

评估作业结果

从 AWX web 界面中的作业模板启动作业运行后,该用户会自动重定向到该作业的详细信息页面。

可以看到剧本状态为 change ,说明运行成功

测试安装结果

我们可以使用 ad-hoc 的方式测试 命令是否存在

博文参考

《DO447 Advanced Automation Ansible Best Practices》

相关文章
|
存储 缓存 Linux
Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查
写在前面 分享一些 AWX 启用facts缓存和模板问卷调查的笔记 博文内容涉及: 启动facts缓存相关配置Demo 启用模板调查来设置变量demo 食用方式: 需要了解 Ansible 理解不足小伙伴帮忙指正
197 0
Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查
|
数据可视化 API 调度
Ansible最佳实践之 AWX 高级作业工作流的创建和调度
写在前面 分享一些 AWX 高级作业工作流的创建和调度的笔记 博文内容涉及: 创建和启动工作流模板 Demo 工作流调度和通知的相关介绍 食用方式: 需要了解 Ansible 理解不足小伙伴帮忙指正
355 0
Ansible最佳实践之 AWX 高级作业工作流的创建和调度
|
存储 JSON Devops
Ansible最佳实践之 AWX 使用 Ansible 与 API 通信
写在前面 分享一些 AWX 使用 Ansible 与 API 通信的笔记 博文内容涉及: curl 方式调用 AWX API 浏览器接口文档方式调用 AWX API 使用 API 调用方式启动 AWX 中 作业模板 Ansible 模块 uri 的简单介绍 Ansible 剧本方式 调用 API 启动作业模板 理解不足小伙伴帮忙指正
537 0
Ansible最佳实践之 AWX  使用 Ansible 与 API 通信
|
存储 Kubernetes 调度
Ansible最佳实践之 AWX 管理项目的一些笔记
写在前面 分享一些 AWX 创建管理项目的笔记 博文内容涉及: 容器化 AWX 手工创建项目Demo 通过 SCM 创建项目 Demo 项目角色,更新策略介绍,SCM 凭据的创建 食用方式: 需要了解 Ansible 理解不足小伙伴帮忙指正
602 0
Ansible最佳实践之 AWX 管理项目的一些笔记
|
运维 负载均衡 Kubernetes
Ansible最佳实践之委派任务和事实
写在前面 分享一些 Ansible 委派任务和事实委派 的笔记 博文内容涉及: Ploybook 任务委派 Demo Ploybook 事实委派 Demo 理解不足小伙伴帮忙指正
163 0
|
9天前
|
运维 安全 应用服务中间件
自动化运维的利剑:Ansible实战应用
【9月更文挑战第24天】在现代IT基础设施的快速迭代与扩展中,自动化运维成为提升效率、保障稳定性的关键。本文将深入探讨Ansible这一流行的自动化工具,通过实际案例分析其如何简化日常运维任务,优化工作流程,并提高系统的可靠性和安全性。我们将从Ansible的基础概念入手,逐步深入到高级应用技巧,旨在为读者提供一套完整的Ansible应用解决方案。
|
14天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:Ansible实战指南
【9月更文挑战第18天】在追求效率和稳定性的今天,自动化运维已成为IT领域的热门话题。本文将引导你通过实际案例学习如何使用Ansible进行自动化配置管理、任务执行和流程编排,从而提升你的工作效率并减少人为错误。我们将从基础概念出发,逐步深入到高级应用,让你能够轻松掌握这一强大的自动化工具。
|
4天前
|
运维 持续交付 开发工具
自动化运维工具:Ansible入门教程
【8月更文挑战第60天】在现代IT运维管理中,自动化工具的使用已成为提高生产效率、减少人为错误和确保环境一致性的重要手段。本文将介绍Ansible——一款流行的开源自动化运维工具,通过其简单易学的语法和强大的功能,帮助读者快速入门并实现自动化部署和管理。我们将从Ansible的基本概念讲起,逐步深入到实际的代码示例,展示如何利用Ansible简化日常的运维任务。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供实用的知识和技巧,让你轻松驾驭Ansible,开启自动化运维之旅。
|
4天前
|
存储 运维 Ubuntu
自动化运维:使用Ansible管理服务器
【8月更文挑战第61天】本文将介绍如何使用Ansible工具进行服务器的自动化管理。我们将从基础概念开始,逐步深入到实际的应用案例,最后通过代码示例展示如何实现自动化部署和配置管理。无论你是初学者还是有经验的运维工程师,这篇文章都会为你提供有价值的参考。
|
5天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible入门与实践
【9月更文挑战第28天】在追求高效、稳定的IT运维时代,自动化工具Ansible凭借其简洁性、易用性和强大的功能脱颖而出。本文旨在通过实际案例引导读者理解Ansible的核心概念和操作流程,并分享如何通过Ansible简化日常运维任务,提升工作效率。从基础安装到高级应用,我们将一步步揭开Ansible的神秘面纱,让初学者也能轻松掌握自动化运维的要诀。