运维自动化Ansible UI之semaphoreui

一 背景

Ansible 作为近几年比较流行的自动化运维工具,由于简单、无侵入性,受到许多运维甚至开发同学的喜爱。大多数情况下,运维人员是喜欢直接在终端命令行下编写和执行playbook/role。

但这样会有三个问题:一个是Playbook不好管理,二是任务定义不直观,三是不便于协作。有什么办法可以解决这些问题?下面就一起来看看四个Ansible Web UI,哪个是我们最想要的。

二 简介

Semaphore旨在提供一个简洁而高质量的代码库,并为用户提供一个直观的界面来管理和运行Ansible剧本。Ansible是一种自动化工具,用于对远程计算机进行配置、部署和编排。Semaphore通过提供一个易于使用的界面,简化了Ansible剧本的管理和执行过程。

作为一个开源项目,Semaphore允许用户根据自己的需求进行定制和扩展。您可以根据需要调整和修改代码,以适应特定的环境和工作流程。此外,Semaphore还提供了丰富的文档和社区支持,以帮助用户更好地理解和使用该工具。

三 特性

  • 构建、部署和轻松的实现回滚;
  • 对playbook进行以项目维度的分组;
  • 管理环境、清单列表、仓库、和访问密钥;
  • 在浏览器运行palybooks;
  • 周期性运行playbooks;
  • 任何时间查看playbook详细的日志;
  • 将playbook委托给其他用户;
  • 获取playbook运行的通知;

四 部署

shell 复制代码
# docker部署
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all && yum makecache fast
yum -y install docker-ce
systemctl start docker

	
docker run -p 3000:3000 --name semaphore     -e SEMAPHORE_DB_DIALECT=bolt     -e SEMAPHORE_ADMIN=admin     -e SEMAPHORE_ADMIN_PASSWORD=WWWxxxxxcom     -e SEMAPHORE_ADMIN_NAME=Admin     -e SEMAPHORE_ADMIN_EMAIL=admin@localhost     -d semaphoreui/semaphore:latest

五 使用

5.1 项目

项目是分离管理活动的地方。所有活动都发生在项目的上下文中。项目彼此独立,因此您可以使用它们在单个信号量安装中组织不相关的系统。这对于管理不同的团队、基础设施、环境或应用程序非常有用。

5.2 任务模版

模板定义了如何运行Ansible Playbook。模板允许您指定以下参数:

  • Playbook repository
  • Playbook filename
  • Inventory
  • Environment
  • Vault password file
  • Extra CLI arguments
  • and much more

5.3 task

任务是启动一个Ansible剧本的实例。您可以通过单击所需模板的Run/Build/Deploy按钮,从task Template创建任务。

Deploy任务类型允许您指定与任务关联的构建版本。默认情况下,它是最新的构建版本。

当任务正在运行或已完成时,您可以查看任务状态和运行日志。

5.4 密钥存储

Semaphore中的Key Store用于存储访问远程存储库、访问远程主机、sudo凭据和Ansible保险库密码的凭据。 在设置其他资源(如库存、存储库和任务模板)之前配置所有必需的访问键是很有帮助的,这样您以后就不必编辑它们了。

有ssh/用户名密码/PAT模式等。

六 实战

由于semaphoreui需要clone ansible代码,代码存储在github,因此利用香港服务器部署semapphoreui

6.1 存储role 的仓库

6.2 创建

6.2.1 创建环境

环境对应着ansible 中不同的inventory,也就是部署的目标主机,可以对目标主机进行分组。

6.2.2 环境配置

额外的变量

6.2.3 密钥库

密钥库对应拉取git 仓库或登陆目标主机使用的用户名密码验证,抑或是密钥验证

6.2.4 存储库

存储库为存储ansible role的代码仓库地址

6.2.5 任务模版

git仓库:github.com/semaphoreui...

  • ping 模版
  • build
  • deploy

6.3 添加免密钥并执行

在semaphoreui主机上进行登陆,输入yes后保存主机指纹,或者修改ansible 配置文件,添加 host_key_checking = False

总结

利用Semaphoreui可以轻松的实现 ansible gitops中playbook的快速分发部署,可以管理git仓库及目标服务器登陆密钥或密码,可以配置多环境多视图实现自动化管理。

参考链接

相关推荐
洗荡千万春2 小时前
Docker与K8s,大兵与将军
后端·kubernetes·自动化运维
EMQX5 小时前
EMQX + DeepSeek:使用 LLM 构建可观测性数据智能分析工具
人工智能·自动化运维
楠奕21 小时前
国产ARM主机安装Ansible
arm开发·ansible
辜月十1 天前
Docker安装Jenkins
自动化运维
pyliumy1 天前
在基于Arm架构的华为鲲鹏服务器上,针对openEuler 20.03 LTS操作系统, 安装Ansible 和MySQL
服务器·架构·ansible
刘大猫262 天前
二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)
操作系统·自动化运维·设计
刘大猫264 天前
三、MyBatis核心配置文件详解
人工智能·智能合约·自动化运维
SkyWalking中文站4 天前
SkyWalking Ruby 快速开始与原理介绍
监控·自动化运维
神秘的土鸡7 天前
Linux中WgCloud的服务器与客户端监控系统(完整部署教程)
linux·运维·nginx·adb·监控·自动化运维
星辰大海的精灵8 天前
分布式系统中使用OTEL、Jaeger和Prometheus监控服务
后端·架构·自动化运维