使用开源自动化工具委派常见任务

Rundeck 是一款开源软件,用于快速自动化手动任务。使用它可以创建由命令、脚本和 API 组成的工作流程。
5 位读者喜欢这篇文章。
Working on a team, busy worklife

opensource.com

站点可靠性工程 (SRE)、平台工程和 *Ops 团队 的一个关键原则是自动化非必要的苦工。将苦工视为为系统顺利运行而必须完成,但不直接影响功能的任何任务。诸如运行安全更新以及安装或升级软件包之类的任务都属于苦工类别。

当团队在创建自动化方面变得更加熟练时,为其他团队自动化变得更具吸引力。将任务委派给其他技术团队,以便他们可以自助服务,从而节省了工单请求双方的时间:请求团队可以在需要时完成任务,而实施团队不会被堆积如山的工单队列淹没,这些队列可能很简单,但需要正确完成。

自动化应解决三个差距以获得这些好处

  • 知识:任务可能包含许多步骤和数十种可能的选项。
  • 技能:现代生态系统由大量组件组成,这些组件具有特定的执行和配置要求。
  • 访问权限:出于安全和合规性原因,环境仅限于少数用户。

强大的自动化平台为团队提供了解决这三个差距的方案,提供了一个集中资源来创建、维护和授予对多种类型任务的自动化访问权限。这些工具不应向请求者提出过多要求,请求者可能只知道“我想要一个云帐户中的开发人员环境”,而不是“我想要一组使用此镜像构建的容器,以这种方式联网,并可以访问测试数据。”

Rundeck 是一款开源软件,用于快速自动化手动任务。使用它可以创建由命令、脚本和 API 组成的工作流程。这些工作流程可能包括软件管理、配置和计划事件。Rundeck 记录这些活动以实现透明度和故障排除。Rundeck 如何解决开发人员需要在组织云中获得环境的示例?请考虑以下几点。

捕获并分享您所知道的

创建“普通人”可以使用的自动化存在一些挑战。您组织中在其他团队工作的人员拥有自己的技能和专业知识,并且不同团队拥有不同的技能甚至他们感到舒适的平台或环境并不罕见。

管理员可以自动化各种各样的任务,供组织中的其他团队使用。常见的目标包括配置环境和部署新软件版本,但诸如服务重启和容量调整之类的运行时任务也很有帮助。这些任务可能包含多个步骤,需要访问各种系统、平台或仪表板,并且需要遵守机构要求。

脚本或其他工具代表团队对这些任务和其他任务的了解。解决方案可能是一个简单的 shell 脚本或更精细的 Python 或 Go 工具;它可以运行几个命令或一系列对第三方 API 的请求。系统管理员应该能够使用最适合这项工作的语言和平台编写自动化工具。Rundeck 支持各种工具和功能。

安全地委派

内部工具通常不是为一般消费而设计的,因此向其他团队开放访问权限可能具有挑战性。这些工具的设计和开发都考虑到了特定的人员角色——创建它们的人!如果您想将工作委派给其他人,则必须考虑他们带来的知识以及您可以利用这些知识做什么。

在开发人员想要新开发环境的示例中,您已经了解了关于开发人员的信息,例如他们的团队或部门以及他们可以访问的项目。您还了解这些团队或项目的工作方式。如果开发人员在 A 团队中,并且您已经有一个名为 build_dev_env_TeamA.sh 的脚本,那么您可以使用 Rundeck 等自动化平台将这项工作委派给开发人员。

借助 Rundeck,您团队中的专家可以使用他们已有的脚本来创建组织中其他人可以使用的作业和插件。当开发人员登录 Rundeck 服务器时,他们只会看到他们被授予访问权限的作业和资源。在本示例中,这可能是一个名为“构建开发人员环境 - A 团队”的作业。开发人员感到满意,您的专家可以继续他们不被打扰的工作。Rundeck 记录活动并将作业的执行包含在审计日志中。如果出现问题,可以找到并修复。

给每个人他们想要的:时间

团队从节省他们时间的自动化中获得最多的回报。像 Rundeck 这样专门构建的自动化平台可以为复杂任务的双方节省时间:请求者不再等待其他人为他们执行任务,专家们可以将时间用于其他项目。组织通过审计日志深入了解环境中运行的作业,并且一切都使用现有的授权解决方案和 Rundeck 的访问控制列表功能进行保护。

有关开源 Rundeck 平台的更多信息,请查看教程和文档,并立即下载

Headshot Mandi Walls
PagerDuty 的 DevOps 倡导者

评论已关闭。

© . All rights reserved.