
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像包含SaltStack的salt-api组件,salt-api是SaltStack的REST API接口实现,用于通过HTTP请求与SaltStack生态系统交互。其核心功能包括执行Salt命令、获取minion节点状态、管理基础设施配置等,主要用途是将SaltStack的自动化能力集成到第三方系统或通过API实现远程运维操作。
salt-master服务,且容器网络可访问salt-master(建议使用Docker网络或宿主网络)。openssl自行生成或使用CA签发证书)。bashdocker run -d \ --name salt-api \ --network salt-net \ # 与salt-master共享网络(需提前创建) -v /host/path/to/config:/etc/salt/master.d \ # 挂载本地配置目录 -v /host/path/to/certs:/etc/salt/certs \ # 挂载SSL证书(若启用HTTPS) -e SALT_MASTER=salt-master \ # 指定salt-master地址(默认值:salt-master) -p 8000:8000 \ # 映射API端口(宿主端口:容器端口) salt-api
salt-api的核心配置通过/etc/salt/master.d/api.conf文件定义,示例配置(挂载到/etc/salt/master.d/api.conf):
yaml# /etc/salt/master.d/api.conf 示例 rest_cherrypy: port: 8000 # API监听端口 host: 0.0.0.0 # 监听地址(0.0.0.0表示允许所有网络访问) ssl_crt: /etc/salt/certs/server.crt # SSL证书路径 ssl_key: /etc/salt/certs/server.key # SSL私钥路径 disable_ssl: False # 启用HTTPS(设为True则禁用) external_auth: pam: # 使用PAM认证(其他选项:ldap、file等) admin: # 允许认证的用户(需在容器内存在对应系统用户) - .* # 允许执行所有Salt命令 - '@runner' # 允许访问runner模块 - '@wheel' # 允许访问wheel模块
核心配置项(api.conf)
| 参数路径 | 描述 | 默认值 |
|---|---|---|
rest_cherrypy.port | API服务监听端口 | 8000 |
rest_cherrypy.host | 监听IP地址 | 0.0.0.0 |
rest_cherrypy.ssl_crt | SSL证书文件路径 | /etc/salt/certs/server.crt |
rest_cherrypy.ssl_key | SSL私钥文件路径 | /etc/salt/certs/server.key |
rest_cherrypy.disable_ssl | 是否禁用HTTPS | False(启用) |
external_auth | 认证配置节点,嵌套具体认证方式(如pam) | - |
环境变量
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SALT_MASTER | salt-master服务地址 | salt-master |
API_PORT | 容器内API监听端口 | 8000 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
启用PAM认证(容器内配置)
进入容器并创建测试用户:
bashdocker exec -it salt-api bash useradd -m saltuser && passwd saltuser # 设置密码(如:saltpass123)
更新/etc/salt/master.d/api.conf,添加用户权限:
yamlexternal_auth: pam: saltuser: # 新增用户 - '*' # 允许执行所有命令
重启容器使配置生效:docker restart salt-api
调用API示例(获取minion列表)
bash# 使用curl发送HTTPS请求(-k忽略证书验证,生产环境建议使用可信证书) curl -k -X GET "https://localhost:8000/minions" \ -H "Accept: application/json" \ -u saltuser:saltpass123 # PAM认证用户密码
执行Salt命令示例(测试minion连通性)
bashcurl -k -X POST "https://localhost:8000/run" \ -H "Content-Type: application/json" \ -u saltuser:saltpass123 \ -d '{ "client": "local", "tgt": "*", # 目标minion(*表示所有) "fun": "test.ping" # Salt模块函数(测试连通性) }'
成功响应示例:
json{ "return": [ { "minion1": true, "minion2": true } ] }
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务