这是一个基于Model Context Protocol (MCP) 的服务器,它允许AI助手直接与您的Ansible环境交互。这意味着AI可以调用Ansible功能来执行自动化脚本、管理服务器清单等。
项目简介
Ansible MCP Server 将AI的能力扩展到自动化和基础设施管理领域。它通过将Ansible的功能封装成标准化的MCP工具和资源,使得AI助手能够理解并执行复杂的自动化任务,无需用户手动操作Ansible命令行。
主要功能点
- 运行Ansible Playbook: AI可以直接调用工具执行指定的Playbook,并可传入变量、限定目标主机、指定标签等。
- 列出清单: AI可以查询和展示Ansible清单文件中的主机和组信息。
- 检查语法: AI可以对指定的Playbook进行语法检查,确保脚本的正确性。
- 列出任务: AI可以预览一个Playbook中将要执行的所有任务列表。
- 访问默认清单资源: AI可以直接读取系统默认的Ansible清单文件内容。
- 运行Ad-Hoc命令: AI可以执行临时的Ansible命令,快速在目标主机上执行特定操作。
- Ansible Vault操作: 支持AI对敏感字符串进行Vault加密和解密。
- AWS服务管理: 提供丰富的工具集,允许AI通过Ansible模块管理AWS资源,如EC2、S3、VPC、CloudFormation、IAM、RDS、Route53、ELB、Lambda等。
- AWS动态清单: 支持AI创建和测试基于AWS EC2的动态清单。
安装步骤
安装前请确保您的系统已安装Node.js (版本18或更高) 和npm/yarn,并且已安装Ansible并配置在系统PATH中。对于AWS相关工具,您还需要安装AWS CLI并配置好凭证。
- 克隆仓库:
git clone https://github.com/tarnover/mcp-ansible.git cd mcp-ansible - 安装依赖:
npm install - 构建服务器:
npm run build
服务器配置
MCP服务器通常需要配置在支持MCP协议的AI客户端(如某些编辑器插件或桌面应用)中。您需要在客户端的MCP设置中添加该服务器的启动信息。配置通常是一个JSON对象,指定服务器的名称、启动命令及其参数。
配置示例如下(请根据您的AI客户端和实际安装路径进行调整):
{ "mcpServers": { "ansible": { "command": "node", // 启动Node.js解释器 "args": ["/absolute/path/to/mcp-ansible/build/index.js"], // 指向构建好的服务器入口脚本 "env": {} // 可选的环境变量 } } }
- 将 '"ansible"' 替换为您想在AI客户端中使用的服务器名称。
- '"command"' 指向用于启动服务器进程的可执行文件,此处是Node.js。
- '"args"' 是传递给command的参数数组,第一个参数应指向您克隆并构建后生成的服务器入口脚本(通常位于'build/index.js')。请务必将'/absolute/path/to/mcp-ansible'替换为您系统中该仓库的绝对路径。
- '"env"' 可以用来设置服务器进程所需的环境变量(此处为空对象)。
配置完成后,重启您的AI客户端,它应该就能检测到并连接到新配置的Ansible MCP服务器。
基本使用方法
一旦服务器成功配置并在AI客户端中可用,您就可以通过AI助手与Ansible进行自然语言交互。您可以尝试向AI提出以下类型的请求:
- "运行位于 '/path/to/my/playbook.yml' 的 playbook,目标是 'webservers' 组。"
- "列出我默认 Ansible 清单中的所有主机和组。"
- "帮我检查 '/path/to/another/playbook.yml' 的语法。"
- "告诉我 '/path/to/tasks/playbook.yml' 会执行哪些任务。"
- "在 us-east-1 区域列出所有正在运行的 EC2 实例。"
- "使用我的 Vault 密码文件加密字符串 'sensitive_data_here'。"
AI助手会根据您的请求,通过MCP协议调用Ansible MCP服务器暴露的相应工具或资源,并将结果呈现给您。
信息
分类
商业系统