免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

Aiops探索:基于 Dify + Ansible MCP Server 的智能运维实践

发布日期:2025-11-14 08:38:46 浏览次数: 1526
作者:阿铭linux

微信搜一搜,关注“阿铭linux”

推荐语

AIops实战:Dify与Ansible MCP强强联手,打造智能运维新范式。

核心内容:
1. Dify+Ansible MCP的智能运维架构设计
2. 自然语言指令到自动化执行的全流程解析
3. 实战部署指南与最佳实践分享

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家
↑ 点击关注,分享IT技术|职场晋升技巧|AI工具

研究Aiops有一段时间了,目前手里有不少可落地的方案了,接下来会把这些方案全部整理到我的大模型课程里。同时,欢迎大家把你遇到的场景在评论区留言。我会在能力范围内给你提供思路和建议。

今天的案例是基于dify和Ansible的MCP来做一个运维智能体。


一、核心思路和架构

1. 角色分工

1)Dify 

  • 意图理解: 接收用户的自然语言指令,利用内置的 LLM(如 DeepSeek)理解用户的真实意图。
  • 工具调用: 根据分解的任务,决定调用哪个外部工具。
  • 对话管理: 管理与用户的交互会话,提供友好的反馈。

2)Ansible

  • 任务执行: 接收来自上层的具体指令(如 ping 一个主机、restart 一个服务),并在目标服务器上执行这些操作。

3)MCP 

  • 标准化桥梁: MCP 是一个开放协议,它定义了 LLM 如何与外部工具和数据源进行安全、标准化的交互。
工具封装: 我们将 Ansible 的常用模块(如 command, playbook)封装成 MCP 标准的“工具”。

2. 工作流程

1)用户通过 Dify 提供的聊天界面,用自然语言发出指令,例如:“重启 db01 服务器的 MySQL 服务”。

2)LLM 分析指令,识别出关键信息:动作(restart)、目标主机(db01)、服务名(mysql)。
3)LLM 查看其可用的 MCP 工具列表和功能说明,确定使用使用run_ad_hoc工具执行指令“systemctl restart mysql”。
4)LLM 通过 MCP 协议调用run_ad_hoc工具,并传入参数 {'host': 'db01', 'module': 'command', 'args':'systemctl restart mysql'}
5)MCP Ansible服务器接收到调用请求,解析参数。
6)服务器内部使用 ansible-runner 库,动态生成并执行一个临时的 Ansible Ad-Hoc命令:ansible db01 -m command -a "systemctl restart mysql"
7)Ansible 在 db01 服务器上执行命令,并将执行结果(成功/失败、详细信息)返回给 MCP 服务器。
8)MCP 服务器将 Ansible 的输出格式化为结构化数据,通过 MCP 协议返回给 Dify 中的 LLM。
9)LLM 接收到执行结果,将其组织成自然语言,例如:“已成功在 db01 服务器上重启 MySQL 服务。”,并最终呈现给用户。

3. 架构图


二、MCP部署与配置

步骤 1: 准备Ansible环境

这里假设已经有了一个可用的Ansible控制节点,并且其它机器已经可以通过Ansible管理。

步骤 2: 部署 Ansible MCP Server

这里需要直接部署到Ansible控制机上。

1、克隆代码

git clone https://github.com/aminglinux/ansible-mcp.gitcd ansible-mcp

2、安装依赖库

pip3 install -r requirements.txt

3、启动服务

uvicorn main:app --reload --host 0.0.0.0 --port 8080

步骤 3: 在 Dify 中配置 MCP 工具

在 Dify 的界面中,进入工具 → MCP,点击 “添加MCP服务”。

在配置中填写:

1)服务端点URL:http://<host>:8080/sse(这里host地址就是你部署Ansible MCP服务的IP地址)

2)名称、服务器标识:ansible_mcp

3)认证这里比较特殊,由于我们并没有设置认证,你可以随便写点啥都行,如果不填写没法点授权按钮。

点击“添加并授权”

可以看到,目前包含8个工具。


三、构建智能体

1. 在Dify创建Agent应用

2. 设置提示词

你是一个Linux运维专家,擅长Ansbile的各种操作,尤其是擅长撰写Ansible的playbook
你有诸多ansbile相关的工具,其中工具的功能如下:1. list_inventory : 列出inventory2. list_hosts: 列出所有主机3. validate_playbook : 验证playbook是否有错误4. ping_hosts : 检查主机是否存活5. run_ad_hoc : 临时运行ansible任务6. generate_playbook: 生成playbook文件7. run_playbook: 运行指定的playbook
另外请遵循以下规则:1. 默认你会调用./inventory.ini文件,如果有指定可以使用指定inventory文件,没有就用默认的。2. 用户需求如果比较复杂,请拆解任务,并使用合适的工具来落地需求,比如用户给一个主机名,你需要去查inventory,然后再去调用别的工具3. 当用户需要生成playbook时,请你自动生成一个playbook文本,然后赋值给data参数,并传递给generate_playbook工具4. 当用户执行playbook时,要先检查用户给的playbook文件名是否在playbooks/目录里存在,如果存在直接调用,如果不存在则需要自动生成5. 在执行playbook之前,请先确认该playbook是否有问题

3. 添加工具


四、示例说明

1. 列出所有主机

图片

2. 查看某主机的磁盘使用情况

图片

3. 查看系统负载

图片
4. 给指定机器安装nginx
图片
这个任务先后调用了6次工具,它会自动创建playbook文件,检查playbook文件是否有问题,再去执行该playbook。整体上还是非常智能的。

最后介绍下我的大模型课:我的运维大模型课上线了,目前还在预售期,有很大优惠。AI越来越成熟了,大模型技术需求量也越来越多了,至少我觉得这个方向要比传统的后端开发、前端开发、测试、运维等方向的机会更大,而且一点都不卷!

扫码咨询优惠(粉丝优惠力度大)

··············  END  ··············
哈喽,我是阿铭,《跟阿铭学Linux》作者,曾就职于腾讯,有着18年的IT从业经验,现全职做IT类职业培训:运维、k8s、大模型。日常分享运维、AI、大模型相关技术以及职场相关,欢迎围观。
         

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询