运维自动化Ansible UI之semaphoreui

举报
kaliarch 发表于 2024/08/06 22:48:13 2024/08/06
【摘要】 一 背景Ansible 作为近几年比较流行的自动化运维工具,由于简单、无侵入性,受到许多运维甚至开发同学的喜爱。大多数情况下,运维人员是喜欢直接在终端命令行下编写和执行playbook/role。但这样会有三个问题:一个是Playbook不好管理,二是任务定义不直观,三是不便于协作。有什么办法可以解决这些问题?下面就一起来看看四个Ansible Web UI,哪个是我们最想要的。二 简介Se...

一 背景

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

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

二 简介

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

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

三 特性

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

四 部署

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

参考链接

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。