6.5. 使用自定义 MCP 服务器构建执行环境
使用 ansible-builder 工具编译和构建包含自定义模型上下文协议(MCP)服务器角色及其依赖项的执行环境容器镜像。
流程
为执行环境构建创建工作目录,并在所需集合 tarball 中复制:
mkdir -p ee-build/cp myorg-mcp_cfn-1.0.0.tar.gz ee-build/cp ansible-mcp_builder-1.0.3.tar.gz ee-build/ # if using local copy创建
ee-build/requirements.yml列出您的集合:# requirements.yml --- collections: - name: ansible.mcp_builder source: /build/configs/ansible-mcp_builder-1.0.3.tar.gz type: file - name: myorg.mcp_cfn source: /build/configs/myorg-mcp_cfn-1.0.0.tar.gz type: file - name: ansible.mcp注意需要
/build/configs/路径前缀。在执行环境容器构建过程中,ansible-builder 将additional_build_files中指定的文件复制到 _build/<dest>/下的构建上下文中,然后挂载到容器内的/build/中。如果您的集合发布到 Ansible Galaxy 或 Automation Hub,您可以按名称而不是本地路径引用它们:
# requirements.yml (published collections) --- collections: - name: ansible.mcp_builder - name: myorg.mcp_cfn - name: ansible.mcp使用这个内容创建
ee-build/execution-environment.yml:# execution-environment.yml --- version: 3 images: base_image: name: registry.redhat.io/ansible-automation-platform-25/ee-minimal-rhel9:latest dependencies: galaxy: requirements.yml options: package_manager_path: /usr/bin/microdnf additional_build_files: - src: ansible-mcp_builder-1.0.3.tar.gz dest: configs - src: myorg-mcp_cfn-1.0.0.tar.gz dest: configs additional_build_steps: append_final: | RUN ansible-playbook myorg.mcp_cfn.install_cfn_mcp其中
-
additional_build_files:将集合 tarball 复制到容器构建上下文中,以便在构建期间引用它们。 -
additional_build_steps.append_final: 在安装集合后,在最终构建阶段运行您的安装 playbook。 -
options.package_manager_path: 设置为ee-minimal-rhel9的/usr/bin/microdnf,对于 UBI9-based 镜像,将/usr/bin/dnf设置为 /usr/bin/dnf。
-
运行 ansible-builder 以构建您的执行环境镜像:
cd ee-build/ansible-builder build -t my-mcp-ee:latest -f execution-environment.yml -v 3构建过程将:
- 安装基础执行环境镜像依赖项。
-
安装
ansible.mcp_builder、myorg.mcp_cfn和ansible.mcp集合。 运行您的安装 playbook,它将安装 MCP 服务器并生成清单。
成功构建会生成以下结尾的输出:
Successfully tagged localhost/my-cfn-mcp-ee:latest Complete! The build context can be found at: /path/to/ee-build/context