
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Puppet Bolt 容器镜像是 Puppet Bolt 工具的容器化分发形式,镜像发布于 https://hub.docker.com/r/puppet/puppet-bolt/tags%EF%BC%8C%E6%A0%87%E7%AD%BE%E7%AD%96%E7%95%A5%E5%A6%82%E4%B8%8B%EF%BC%9A
latest 标签指向最新版本该镜像用于在容器环境中运行 Puppet Bolt 命令,实现对远程目标节点的任务执行、配置管理等操作,无需在主机本地安装 Bolt 依赖。
localhost 目标指向容器内部环境command run、task run 等)从 Docker Hub 拉取最新版镜像:
bashdocker pull puppet/puppet-bolt
基本说明
独立运行时,localhost 目标对应容器内部环境(非 Docker 主机),可直接执行命令测试容器内系统信息。
示例:在容器内执行命令
bashdocker run puppet/puppet-bolt command run 'cat /etc/os-release' -t localhost
输出示例
Started on localhost... Finished on localhost: STDOUT: NAME="Ubuntu" VERSION="16.04.6 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.6 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" VERSION_CODENAME=xenial UBUNTU_CODENAME=xenial Successful on 1 node: localhost Ran on 1 node in 0.00 seconds
适用场景
无需自定义模块,仅需传递目标节点连接信息时,可通过 BOLT_INVENTORY 环境变量注入清单配置。
清单文件示例(inventory.yaml)
yaml--- nodes: - name: pnz2rzpxfzp95hh.delivery.puppetlabs.net # 目标节点名称 alias: docker-example # 别名(用于 -t 参数指定目标) config: transport: ssh # 传输方式:SSH ssh: user: root # SSH 用户名 password: secret-password # SSH 密码 host-key-check: false # 禁用主机密钥检查
执行内置任务示例
通过环境变量传递清单并运行 facts 任务(获取目标节点系统信息):
bashdocker run --env "BOLT_INVENTORY=$(cat Boltdir/inventory.yaml)" puppet/puppet-bolt task run facts -t docker-example
输出示例
Started on pnz2rzpxfzp95hh.delivery.puppetlabs.net... Finished on pnz2rzpxfzp95hh.delivery.puppetlabs.net: { "os": { "name": "CentOS", "release": { "full": "7.2", "major": "7", "minor": "2" }, "family": "RedHat" } } Successful on 1 node: pnz2rzpxfzp95hh.delivery.puppetlabs.net Ran on 1 node in 0.55 seconds
基本说明
通过挂载主机的 Bolt 项目目录(Boltdir),使容器可访问自定义模块、配置文件及密钥,适用于需要持久化或动态更新项目内容的场景。
主机目录结构
. └── Boltdir ├── bolt.yaml # Bolt 配置文件 ├── inventory.yaml # 目标节点清单 ├── keys # 密钥目录 │ └── id_rsa-acceptance # SSH 私钥 └── site-modules # 自定义模块 └── docker_task # 模块名称 └── tasks └── init.sh # 任务脚本
核心配置文件内容
bolt.yaml(Bolt 配置):
yaml--- log: console: level: notice # 控制台日志级别
inventory.yaml(目标节点清单,注意路径为容器内路径):
yaml--- nodes: - name: pnz2rzpxfzp95hh.delivery.puppetlabs.net alias: docker-example config: transport: ssh ssh: user: root private-key: /Boltdir/keys/id_rsa-acceptance # 容器内私钥路径 host-key-check: false
init.sh(任务脚本示例):
bash#!/bin/bash echo "Message: ${PT_message}" # 输出传入的 message 参数
挂载并执行任务
将主机 Boltdir 挂载到容器 /Boltdir 目录,执行自定义任务:
bashdocker run --mount type=bind,source=/home/cas/working_dir/docker_bolt/Boltdir,destination=/Boltdir puppet/puppet-bolt task run docker_task message=hi -t docker-example
输出示例
Started on pnz2rzpxfzp95hh.delivery.puppetlabs.net... Finished on pnz2rzpxfzp95hh.delivery.puppetlabs.net: Message: hi { } Successful on 1 node: pnz2rzpxfzp95hh.delivery.puppetlabs.net Ran on 1 node in 0.56 seconds
基本说明
通过 Dockerfile 构建自定义镜像,将固定配置、模块或密钥集成到镜像中,适用于需要重复使用相同项目内容的场景。
扩展镜像目录结构
. └── Boltdir ├── bolt.yaml ├── Dockerfile # 自定义 Dockerfile ├── inventory.yaml ├── keys │ └── id_rsa-acceptance └── site-modules └── docker_task └── tasks └── init.sh
Dockerfile 内容
DockerfileFROM puppet/puppet-bolt # 基于官方镜像 COPY . /Boltdir # 将当前目录(Boltdir)复制到容器 /Boltdir
构建扩展镜像
bashdocker build . -t my-extended-puppet-bolt # 构建镜像并命名为 my-extended-puppet-bolt
执行扩展镜像任务
直接运行扩展镜像,无需额外挂载或传递配置:
bashdocker run my-extended-puppet-bolt task run docker_task message=hi -t docker-example
输出示例
Started on pnz2rzpxfzp95hh.delivery.puppetlabs.net... Finished on pnz2rzpxfzp95hh.delivery.puppetlabs.net: Message: hi { } Successful on 1 node: pnz2rzpxfzp95hh.delivery.puppetlabs.net Ran on 1 node in 0.56 seconds
| 环境变量 | 用途 | 示例值 |
|---|---|---|
BOLT_INVENTORY | 传递目标节点清单配置(YAML格式) | $(cat Boltdir/inventory.yaml) |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务