ansible可视化自动化平台-semaphore

1、简介

Semaphore UI 是一个开源的CI/CD工具,专注于简化和自动化软件交付流程,可轻松管理和运行 Ansible playbook,提供了一个直观的 Web 用户界面(UI),帮助DevOps团队轻松管理任务、部署和流水线。

官网地址:https://semaphoreui.com/zh

2、部署教程

创建一个目录来存放 docker-compose.yml 文件和相关数据:

mkdir semaphore

cd semaphore-docker

vim docker-compose.yml

bash 复制代码
services:
  semaphore:
    user: root
    ports:
      - 3000:3000
    image: semaphoreui/semaphore:latest
    environment:
      SEMAPHORE_DB_DIALECT: bolt
      SEMAPHORE_ADMIN_PASSWORD: Admin@123
      SEMAPHORE_ADMIN_NAME: admin
      SEMAPHORE_ADMIN_EMAIL: admin@localhost
      SEMAPHORE_ADMIN: admin
      TZ: Asia/Shanghai
    volumes:
      - ./semaphore/etc:/etc/semaphore
      - ./semaphore/data:/var/lib/semaphore

运行 Docker Compose

在项目目录下运行docker-compose.yaml

docker-compose up -d

验证服务是否运行

docker-compose ps

3、使用教程

一、基础环境准备

  1. 确保Semaphore已部署
    根据历史对话,您已通过Docker部署Semaphore,访问 http://<服务器IP>:3000,使用默认账号 admin 和密码登录(若未修改需按配置调整)。
  2. 配置SSH免密登录
    确保Semaphore服务器能通过SSH免密登录到目标主机(参考历史对话中的密钥配置步骤)。

二、创建Ansible项目

  1. 创建存储库(Repository)
    • 方式一:Git仓库
      在Semaphore中关联您的Ansible剧本Git仓库(支持HTTP/HTTPS/SSH协议),填写仓库地址、分支及SSH密钥(需提前配置)。
    • 方式二:本地存储库
      直接上传本地Ansible剧本文件到Semaphore的存储目录(默认路径为 /tmp/semaphore)。
  2. 配置库存文件(Inventory)
    • 在Semaphore的"Inventory"页面中定义目标主机清单,包括IP地址、用户名、SSH密钥或密码。
    • 支持动态库存(如通过脚本生成),需在库存配置中启用。

三、关联Ansible Playbook

  1. 创建任务模板(Task Template)
    • 在项目中选择要运行的Playbook文件(如 playbook.yml),指定库存文件和执行参数(如变量、环境变量)。
    • 支持定时任务(Cron)和触发器(如Git提交后自动执行)。
  2. 高级配置选项
    • 并行执行:设置并发任务数以优化大规模部署效率。
    • 超时设置:定义任务执行的最大时长,防止长时间阻塞。

四、执行与监控

  1. 运行任务
    • 在任务模板页面点击"Run Task",启动Ansible Playbook执行。
    • 支持手动触发或通过API调用(适用于CI/CD集成)。
  2. 查看执行状态
    • 在"Jobs"页面实时监控任务进度,查看标准输出和错误日志。
    • 任务失败时,Semaphore会通过邮件或Slack发送通知(需提前配置通知渠道)。

五、高级功能与优化

  1. 多用户协作与权限管理
    • 通过角色(Role)分配不同用户的操作权限(如仅允许查看日志或执行任务)。
    • 支持LDAP/Active Directory集成,实现企业级身份认证。
  2. 集成其他工具
    • 与Jenkins、GitLab CI/CD联动,构建自动化流水线。
    • 支持Terraform、Bash脚本等多工具任务混合执行。
  3. 日志与审计
    • 所有任务执行记录均保存,支持按时间、用户、项目筛选。
    • 导出日志为JSON或CSV格式,用于后续分析。

六、常见问题解决

  • Playbook执行失败
    检查库存文件中的主机连接状态、Ansible剧本语法(通过 ansible-playbook --check 验证)。
  • 权限不足
    确保Semaphore服务用户(如 semaphore)对存储库和SSH密钥有读取权限。
  • 数据库连接问题
    若使用MySQL/PostgreSQL,检查环境变量中的数据库配置(如 SEMAPHORE_DB_HOST)。

示例流程

  1. 步骤1 :在Semaphore中创建名为 WebServerDeployment 的项目,关联Git仓库 https://github.com/user/Ansible-Playbooks.git
  2. 步骤2 :配置库存文件 webservers.ini,包含两台目标主机的IP和SSH密钥。
  3. 步骤3 :创建任务模板,选择Playbook deploy-web.yml,设置并行执行为2台主机。
  4. 步骤4:点击运行任务,监控执行状态,查看成功或失败详情。

通过以上步骤,您可高效利用Semaphore的Web界面管理Ansible任务,实现自动化部署与运维。

相关推荐
leo__5202 天前
自动化运维:使用Ansible简化日常任务
运维·自动化·ansible
风清再凯7 天前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
IT乌鸦坐飞机7 天前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
遇见火星20 天前
如何使用Ansible一键部署MinIO集群?
ansible
粥周粥20 天前
ANSIBLE
ansible
码农101号20 天前
Linux中ansible模块补充和playbook讲解
linux·运维·ansible
码农101号20 天前
Linux的Ansible软件基础使用讲解和ssh远程连接
ansible
烟雨书信21 天前
ANSIBLE运维自动化管理端部署
运维·自动化·ansible
碎碎-li21 天前
ANSIBLE(运维自动化)
运维·自动化·ansible
@donshu@25 天前
Linux运维-ansible-python开发-获取inventroy信息
linux·运维·ansible