你公司的IT运营正飞速增长,超出你所能支持的范围,你会发现,在这种情况,保持继续增长的唯一选择是自动化。幸运的是,现在有很多开源自动化工具可用帮助你实现自动化。
当然,如何自动执行任务取决于其原有部署,这可能是容器部署,或者是通过第三方专有工具完成的任务,或者是通过开源软件内部构建的任务。
无论你的自动化要求是什么或现有的工具是什么,下面四个开源选项都可以帮助你成功实现自动化。
Jenkins用于任务编排
Jenkins是持续集成/持续交付自动化工具。对于利用Kubernetes和Docker部署应用程序和服务的人员来说,这是至关重要的工具。Jenkins让你可以为自动化的应用程序以及服务的构建和部署创建提示符。
作为一种开源自动化工具,Jenkins可以与很多版本控制系统集成,例如AccuRev、Concurrent Versions System、Apache Subversion、Git、Mercurial、Perforce Software、TD / OMS、Rational ClearCase和Rational Team Concert。这样做意味着Jenkins可以与存储库同步,并基于自动触发器自动运行软件版本。
你可以设置Jenkins,以便它在检测到存储库中的任何更改时都会触发代码构建。Jenkins还包括很多插件,让你可启用自动通知等功能,该功能会提醒你构建失败、不稳定或成功。
Jenkins使用任务架构来执行自动化任务。可创建的任务类型为自由式项目、管道、多配置项目、文件夹、GitHub组织和Multibranch Pipeline。
你可以在大多数Linux操作系统中安装Jenkins,包括Debian、Fedora、Red Hat Enterprise Linux(RHEL)和Ubuntu。
通过Cockpit简化软件更新
Cockpit是基于Web的GUI,可用于Linux服务器管理各个方面。通过使用此开源自动化工具,你可以处理用户管理和软件安装等任务,以及设置自动软件升级。
通过Cockpit,你还可以自动执行所有更新或仅执行安全更新。你也可以定义何时进行更新。
但是,当自动更新时,服务器也会自动重启。鉴于此,你需要在允许服务器重新启动的情况下配置该流程。
Cockpit可安装在大多数Linux操作系统上,但它会自动安装在CentOS / RHEL 8上。
为容器部署Kubernetes
尽管Kubernetes本身不是自动化工具,但是如果你使用容器自动化,则Kubernetes很重要。Kubernetes让你可以将GitOps开发管道集成到IT运营中,其中部署容器的几乎每个方面都是自动化。 想象一下,一个构建过程,通过将代码添加到Git存储库中而自动启动。
但这不只是一个简单的构建过程。通过Kubernetes,你可以对工具进行分层(例如Flagger、Flux、Helm、Prometheus和Terraform),使自动化工作流程更加直观和灵活。
通过在Kubernetes上使用正确的软件组合,你可以设置自动化,从而为所有基础架构提供一致的工作流程,确保群集配置始终与Git存储库配置匹配,并以高度的安全性和可靠性管理你的容器映像。
如果没有Kubernetes,容器编排和自动化将更具挑战性,并且需要更多的手动编码。
通过Ansible解决应用程序部署
Ansible是Red Hat开放源代码自动化软件,它使用简单的脚本语言使你能够轻松处理网络中所有机器的自动化和配置。
Ansible在控制器和节点上工作,但是与其他选项不同,它不需要你在节点上安装客户端。 Ansible通过Secure Shell与节点通信。它使你可以将任务变成可重复的使用手册,甚至推出企业范围的协议。
通过Ansible实现自动化可帮助你部署应用程序、简化工作流程编排、配置系统、管理系统配置,并将重复的任务转变为自动化作业以节省时间。
Ansible的局限性在于它无法配置裸机或虚拟机。如果你不想使用命令行,则可以使用可以运行Ansible手册的第三方GUI(例如Rundeck)。