运维自动化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 天前
jmeter结合ansible分布式压测--3压测执行
分布式·jmeter·ansible
紫晓宁3 天前
jmeter结合ansible分布式压测--1数据准备
分布式·jmeter·ansible
紫晓宁3 天前
jmeter结合ansible分布式压测--2jmter环境准备
分布式·jmeter·ansible
帅儿二郎5 天前
ELK:日志监控平台部署-基于elastic stack 8版本
linux·运维·elk·自动化运维·elastic·日志监控平台·日志分析平台
SG.xf7 天前
ansible中的任务执行控制
ansible
赶紧回家去9 天前
Ansible基本使用
运维·ansible
我就是全世界10 天前
ansible详细介绍和具体步骤
ansible
福大大架构师每日一题10 天前
27.9 调用go-ansible执行playbook拷贝json文件重载采集器
golang·json·ansible·prometheus
SG.xf10 天前
Ansible
运维·ansible
避凉闲庭10 天前
ansible开局配置-openEuler
linux·运维·ansible·脚本·openeuler·免密登录·批量化