一、前言
因某集成商管理的客户资源涉及4A接入管控要求,其中密码必须3个月更新一次,随着纳管主机的数量增多,手动去修改密码变得不现实,考虑无侵入性和资源耗用,便捷性等因素,首先选用Ansible作为此需求的首要解决方案,ansible是agentless的且仅需依靠ssh就能管理目标,这减少了开销和安全漏洞,但因Ansible主要还是一个命令行工具,这种命令行操作,剧本编写不是特别直观,导致Ansible在项目的应用推广并不十分顺利,故此,特采用一个可视化web图形界面来改善Ansible的易用性,本文对此记录以作参考。
相关资源 :ansible Wiki、playbooks、Ansible Community、Vagrant
二、产品对比和说明
2.1、Ansible常用可视化图形界面
Ansible Web UI目前主流有:Redhat官方商业版Tower、官方开源版AWX 和 开源版semaphore。
1)Ansible Tower
Ansible官方Web UI,支持docker-compose部署,Tower 是 Red Hat 提供的企业级Ansible自动化平台,提供了高级功能,如角色基础的访问控制、详细的审计日志和集成支持。
关联资源 : 文档、安装包下载、Ansible Web UI Guide、社区驱动的Ansible角色库
2)Ansible AWX
AWX是由Red Hat赞助的Ansible Tower的免费开源版本,也支持docker-compose部署,它是Red Hat Ansible Tower产品最终衍生的上游项目,提供了一个完整的Web界面来管理Ansible任务、库存、项目和作业,支持REST API,允许你自动化和扩展Ansible的自动化功能。AWX是一个基于Docker容器的可视化平台,它提供了Web界面和REST API,可以帮助用户更加方便地管理Ansible playbook和任务。在AWX的Web界面中,用户可以方便地创建、编辑和运行Ansible playbook。还可以查看任务的执行结果、日志和报告。此外,AWX还支持团队和项目的管理,可以方便地与团队成员协作,并将任务和playbook组织起来。
关联资源 :GitHub、软件下载、ansible-ui、Ansible automation controller advanced、wx-operator-2.19.1.tgz、ansible-hub-ui
Ansible AWX服务部署在容器内,因此需要先将Docker安装在部署AWX的服务器机器上,还需要Python 3。
3)semaphore
它是一个基于GO语言编写的开源 Ansible-Web UI系统,也支持docker-compose部署。它提供了一个优雅的web界面,用于执行Ansible剧本、Terraform、OpenTofu、Pulumi代码和Bash脚本。Ansible Semaphore易于安装和配置,比较友好。
关联资源 :GitHub、安装文档、semaphoreui官网、
4)ManageIQ(redhat)
ManageIQ 实际是一个开源的混合云管理平台,采用 Apache-2.0 license授权,用Ruby编写,并使用Ruby on Rails框架。但它提供了对Ansible的集成,允许通过Web界面执行Ansible任务。它支持容器、虚拟机、网络及存储的全面监控与控制。通过集成工作负载管理、编排、事件控制台、配置管理数据库(CMDB)、规则基础自动化(RBA)和Web服务,ManageIQ使IT团队更高效执行策略,确保合规性,并实现资源优化。
官网了解到,ManageIQ 部署过程中以appliance部署到云平台或其他平台,部署配置相对较复杂,不适合上述简单场景。ManageIQ更侧重做一个强大的开源云管理平台 ,管理虚拟基础设施,包括混合公共云和私有云。其中,可使用ManageIQ自动化(自动化模型)功能,您创建可自动扩展的云应用程序,在配置虚拟机和云实例时消除手动决策和操作,并管理完整的虚拟机生命周期。
5)Ansible-Web
Ansible-Web 是一个基于Django构建的简单 Web 应用程序,用于运行 Ansible 剧本。它提供了一个基本的Web界面来管理Ansible作业。
相关资源:ansibleguy、ansible web ui、Ansible Web方案、/ansible-webui、轻量级ansible UI
6)Rundeck
Rundeck社区版为用户提供了在UI中执行剧本所需的基本功能,就像Ansible Semaphore一样,它非常易于安装、启动和运行。Rundeck是一个通用的自动化工具,因此我们不仅仅可执行ansible剧本,但仪表板并不像ansible Semaphore那样易于使用,而且视觉上也不那么吸引人。Rundeck CE的一些功能包括创建多步骤作业、运行shell命令和执行本地命令。虽然社区版拥有许多功能,而不仅仅是运行Ansible剧本,但最受欢迎的功能,如高可用性和经过认证的企业插件,是为企业版或云版保留的。
7)自开发的web UI
如果想为UI提供一些利基功能,比如"还原操作",可以撤消之前运行的剧本或显示正在进行的作业的完成百分比,那么自定义UI可能是你最好的选择。然而,与其他选项相比,这种方法需要付出巨大的努力。我们研究的一种方法是为后端服务和在同一主机上运行的web前端构建一个运行在可响应的远程主机上的健壮REST API。然后,应用程序的两个组件可以使用HTTP请求进行通信,并在服务器上本地运行和/或修改相关文件。
相关资源:ansible的web管理平台