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

参考链接

相关推荐
云攀登者-望正茂19 小时前
使用 Ansible 在 Windows 服务器上安装 SSL 证书
ansible
tianyuanwo2 天前
Ansible自动化运维全解析:从设计哲学到实战演进
运维·自动化·ansible
哆啦A梦15882 天前
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/[email protected] 更换为 go-ansible/@v1.1.7
开发语言·golang·ansible
用户7785371836963 天前
技术分享:主流GUI自动化框架的窗口置顶机制实现对比
自动化运维
lifeng43213 天前
在 CentOS 上将 Ansible 项目推送到 GitHub 的完整指南
centos·github·ansible
北京_宏哥4 天前
🔥《刚刚问世》系列初窥篇-Java+Playwright自动化测试-16- iframe操作-监听事件和执行js脚本 (详细教程)
java·前端·自动化运维
数据智能老司机7 天前
理解 Argo CD
git·kubernetes·自动化运维
运维成长记8 天前
ansible-playbook 进阶 接上一章内容
linux·服务器·ansible
半桶水专家9 天前
Ansible 配置Playbook文件格式、关键字和语法详解
ansible
遇见火星10 天前
Ansible模块——Ansible配置文件!
linux·git·ansible