运维自动化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仓库及目标服务器登陆密钥或密码,可以配置多环境多视图实现自动化管理。

参考链接

相关推荐
承渊政道5 小时前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
Helix2502 天前
Ansible混合环境自动化:Windows与Linux统一配置管理实战
windows·自动化·ansible·playbook·配置管理·winrm·混合环境
梯度下降者2 天前
二、自动化运维架构师的三大核心能力
ci/cd·架构师·自动化运维·iac·平台工程
迪康软件zz3 天前
从 PHP 高危漏洞看纵深防御:资产盘点、补丁管理与端点防护实践
运维·安全·自动化运维
智能运维指南3 天前
企业 IT 管理软件如何选型?先理清监控、服务管理、配置与自动化能力
运维·自动化·自动化运维·嘉为蓝鲸
垚垚学技术_聚焦云原生3 天前
Ansible 变量体系详解:主机变量、组变量、全局变量优先级实战
ansible·自动化运维·devops·变量优先级
智能运维指南4 天前
企业 IT 运维自动化平台怎么选?从场景匹配到 POC 验证的完整评估框架
运维·自动化·自动化运维·嘉为蓝鲸
喵个咪5 天前
GoWind Ops 拆解:不引入分布式锁的多副本协调
后端·go·自动化运维
喵个咪5 天前
GoWind Ops 深度拆解:纯出站 Agent + MQTT 信令,把「管机器、跑项目、发脚本、构建分发」做扎实
后端·go·自动化运维
考虑考虑6 天前
nginx路由重写
运维·后端·自动化运维