serversideup/ansible 是一个轻量级解决方案,用于在容器化环境中运行Ansible。该项目基于从 willhallonline/docker-ansible 学到的经验构建,提供安全隔离的Ansible任务运行环境,支持Alpine和Debian发行版,可作为非特权用户运行,避免文件权限问题。
适用于需要在不同环境中一致运行Ansible任务的场景,包括开发、测试和生产环境。特别适合需要隔离Ansible运行环境、避免主机依赖冲突,或需要灵活配置用户权限的场景。提供两种镜像变体满足不同需求:
| 变体 | 镜像大小 | 描述 |
|---|---|---|
serversideup/ansible-core |  |
2.17.3-alpine3.20 | 指定Ansible版本和OS版本,使用最新Python |
2.17.3 | 指定Ansible版本,使用最新OS和Python |
2.17-alpine3.20-python3.11 | 指定Ansible次要版本和补丁版本,OS版本和Python版本 |
2.17-alpine-python3.11 | 基于操作系统系列的标签 |
[!IMPORTANT]
在几乎所有情况下,您需要将卷挂载到Ansible"工作目录"(默认:/ansible)和SSH配置(通常为~/.ssh)。
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh" \ -v "$(pwd):/ansible" \ serversideup/ansible:latest ansible-playbook playbook.yml
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh" \ -v "$(pwd):/ansible" \ -e PUID=9999 -e PGID=9999 \ -e RUN_AS_USER=bob \ serversideup/ansible:latest ansible-playbook playbook.yml
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh" \ -v "$(pwd):/ansible" \ serversideup/ansible:latest /bin/sh
[!NOTE]
使用SSH密钥可能比较复杂,特别是动态设置RUN_AS_USER时。我们提供了一些工具来简化配置。
/ssh目录默认情况下,/ssh目录通过符号链接链接到~/.ssh,作为SSH密钥和配置的统一来源。如果设置RUN_AS_USER,入口点将在/home/${RUN_AS_USER}创建主目录,并从/home/${RUN_AS_USER}/.ssh符号链接到/ssh,方便灵活设置运行用户。
SSH认证套接字是SSH代理用于与其他进程通信的Unix套接字,支持安全密钥管理。
macOS:
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh:ro" \ -v "$HOME/.ssh/known_hosts:/ssh/known_hosts:rw" \ -v "$(pwd):/ansible" \ -v "/run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock" \ -e SSH_AUTH_SOCK="/run/host-services/ssh-auth.sock" \ serversideup/ansible:latest ansible-playbook playbook.yml
Linux:
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh:ro" \ -v "$HOME/.ssh/known_hosts:/ssh/known_hosts:rw" \ -v "$(pwd):/ansible" \ -v "$SSH_AUTH_SOCK:$SSH_AUTH_SOCK" \ -e SSH_AUTH_SOCK="$SSH_AUTH_SOCK" \ serversideup/ansible:latest ansible-playbook playbook.yml
可通过以下环境变量自定义镜像:
| 变量 | 默认值 | 描述 |
|---|---|---|
PUID | 1000 | 设置运行Ansible的用户ID |
PGID | 1000 | 设置运行Ansible的组ID |
RUN_AS_USER | ansible | 运行Ansible的用户名(将自动创建,默认为非特权用户) |
DEBUG | false | 启用容器启动的调试输出 |
作为开源项目,我们致力于开发过程的透明度和协作。非常感谢社区成员提供的任何贡献。无论您是修复错误、提出功能建议、改进文档还是传播项目,您的参与都将增强项目。请查看我们的行为准则,了解我们如何尊重地合作。
我们是Dan和Jay——一个热爱开源产品的两人团队。我们创建了Server Side Up来分享我们学到的知识。
如果您喜欢这个项目,一定要查看我们的其他项目。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429