CI/CD自动化运维实践
1、前言与介绍
1.1、技术预览
Semphore
Semaphore 是一个具有基本CI/CD的Ansible脚本的Web界面,用于运行 Ansible 剧本、Terraform/OpenTofu 和 Pulumi 代码。使用Semaphore可以完成代码构建、部署、回滚。管理Ansible HOSTS环境、存储库、秘钥等信息。响应式UI方便运维人员快速上手,并允许在移动设备上运行。当前已支持CRON模式执行剧本。随时查看任何剧本运行的详细日志等功能。在实际项目应用中,Semaphore可以实现一个具有基本能力的CI/CD流水线,来实现产品的持续快速交付与部署,通过自动执行重复性任务,改变IT专业人员的工作重心,用更多的思考能力来改进产品、排查问题,不必担心集成进度。
Ansible
Ansible是近年来越来越火的一款运维自动化工具,其主要功能是帮助运维实现IT工作的自动化、降低认为操作失误、提高业务自动化率、提升运维工作效率,常用于软件部署自动化、配置自动化、管理自动化、持续集成、零宕机平滑升级等。它丰富的内置模块(如ACL、commonand、shell、cron、yum、copy、file、user等多达接近2000个模块)和开发的APT接口。而Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可。
2、最佳实践
2.1、基于趣街的自动化运维实现
须知:所有支持自动化更新的应用,均已替换成运维自主编写的JAVA应用管理脚本。此脚本中涵盖了应用备份、应用检查、应用启停等功能,并对执行结果和信息输出均做了判断和控制。涉及技术有Semphore、Ansible、Shell,自动化运行的逻辑是使用了Semphore图形化管理工具远程调用Ansible命令,对主机实现批量化管理,Semphore图形化工具包含了对anslbie的日常管理和任务执行工作,所有上线自动化操作均通过Semphore来完成;
- 架构图