
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/ju2wheels/docker-ansible 提供 https://hub.docker.com/r/ju2wheels/ansible/ Docker Hub镜像,针对多种Linux发行版,预装从PyPi安装的Ansible 1.x/2.x及核心模块依赖(使用Python 2.7),且安装在用户级别而非系统级别,以减少与系统Python包的冲突。
该镜像的目标是提供可用于单元测试(在本地容器运行Ansible模拟远程机器)和作为Ansible主机的容器。
ju2wheels/ansible镜像标签遵循以下命名规则(各部分用-连接):
1.x或2.x,始终安装对应主版本的最新次版本)| 1.x Docker镜像标签 |
|---|
| 1.x-alpine-3.3 |
| 1.x-alpine-3.4 |
| 1.x-alpine-3.5 |
| 1.x-alpine-3.6 |
| 1.x-alpine-3.7 |
| 1.x-alpine-3.8 |
| 1.x-amazonlinux-2016.09 |
| 1.x-amazonlinux-2017.03 |
| 1.x-amazonlinux-2017.09 |
| 1.x-amazonlinux-2017.12 |
| 1.x-amazonlinux-2018.03 |
| 1.x-centos-6 |
| 1.x-centos-7 |
| 1.x-debian-7 |
| 1.x-debian-8 |
| 1.x-debian-9 |
| 1.x-fedora-20 |
| 1.x-fedora-21 |
| 1.x-fedora-22 |
| 1.x-fedora-23 |
| 1.x-fedora-24 |
| 1.x-fedora-25 |
| 1.x-fedora-26 |
| 1.x-fedora-27 |
| 1.x-fedora-28 |
| 1.x-linuxmint-17 |
| 1.x-linuxmint-18 |
| 1.x-linuxmint-19 |
| 1.x-opensuse-42.2 |
| 1.x-opensuse-42.3 |
| 1.x-ubuntu-12.04 |
| 1.x-ubuntu-14.04 |
| 1.x-ubuntu-16.04 |
| 1.x-ubuntu-18.04 |
| 2.x Docker镜像标签 |
|---|
| 2.x-alpine-3.3 |
| 2.x-alpine-3.4 |
| 2.x-alpine-3.5 |
| 2.x-alpine-3.6 |
| 2.x-alpine-3.7 |
| 2.x-alpine-3.8 |
| 2.x-amazonlinux-2016.09 |
| 2.x-amazonlinux-2017.03 |
| 2.x-amazonlinux-2017.09 |
| 2.x-amazonlinux-2017.12 |
| 2.x-amazonlinux-2018.03 |
| 2.x-centos-6 |
| 2.x-centos-7 |
| 2.x-debian-7 |
| 2.x-debian-8 |
| 2.x-debian-9 |
| 2.x-fedora-20 |
| 2.x-fedora-21 |
| 2.x-fedora-22 |
| 2.x-fedora-23 |
| 2.x-fedora-24 |
| 2.x-fedora-25 |
| 2.x-fedora-26 |
| 2.x-fedora-27 |
| 2.x-fedora-28 |
| 2.x-linuxmint-17 |
| 2.x-linuxmint-18 |
| 2.x-linuxmint-19 |
| 2.x-opensuse-42.2 |
| 2.x-opensuse-42.3 |
| 2.x-ubuntu-12.04 |
| 2.x-ubuntu-14.04 |
| 2.x-ubuntu-16.04 |
| 2.x-ubuntu-18.04 |
注意:Alpine 3.3和3.4镜像无shadow-utils,因此从Alpine 3.5回退该工具,确保Ansible的user模块正常工作。
每个镜像的Dockerfile命令按以下步骤组织:
PATH及构建Python模块所需的环境变量entrypoint为ansible-playbook说明:选择用户级别安装而非虚拟环境,是因为部分Python模块只能通过发行版包安装,无法从PyPi获取。通过在系统级别安装Python 2.7及依赖,用户级别安装Ansible,可避免污染系统Python包或导致系统故障。
默认情况下,所有镜像的entrypoint配置为ansible-playbook,用于单元测试。若要作为Ansible主机运行,需执行以下操作:
entrypoint为合适的shell(如/bin/bash)VOLUMEANSIBLE_CONFIG及可选的ANSIBLE_INVENTORY环境变量bashdocker run --entrypoint /bin/bash \ --env ANSIBLE_CONFIG=/ansible-playbook/ansible.cfg \ --env ANSIBLE_INVENTORY=/ansible-playbook/inventory \ --volume '/home/user/ansible-playbook:/ansible-playbook' \ -it ju2wheels/ansible:<tag> <ansible-playbook参数> <playbook.yml>
yamlversion: '2' services: ansible_host: entrypoint: /bin/bash environment: ANSIBLE_CONFIG: /ansible-playbook/ansible.cfg ANSIBLE_INVENTORY: /ansible-playbook/inventory image: ju2wheels/ansible:<tag> tty: true volumes: # 若docker-compose.yml位于playbook根目录,可使用相对路径 #- ./:/ansible-playbook - /home/user/ansible-playbook:/ansible-playbook
运行docker-compose:
bashdocker-compose run ansible_host cd /ansible-playbook ansible-playbook my-playbook.yml
以下示例假设Ansible角色满足:
ansible-galaxy init创建的Ansible 2.x角色结构ansible.cfg、inventory及指向主角色目录的软链接yaml--- - hosts: localhost tasks: - name: testrole dockerized unit test docker: > command=/ansible-playbook/tests/test.yml detach=false entrypoint=ansible-playbook env={"ANSIBLE_CONFIG": "/ansible-playbook/tests/ansible.cfg", "ANSIBLE_INVENTORY": "/ansible-playbook/tests/inventory", "ANSIBLE_NOCOLOR": 1} hostname=ansible_testrole_test image={{ item }} name=ansible_testrole_test pull=true restart_policy=false state=started tty=true volumes=["{{ playbook_dir }}/../:/ansible-playbook"] with_items: - ju2wheels/ansible:1.x-ubuntu-12.04 - ju2wheels/ansible:1.x-ubuntu-14.04 - ju2wheels/ansible:1.x-ubuntu-16.04
yaml--- - hosts: localhost tasks: - name: testrole dockerized unit test docker_container: cleanup: true command: /ansible-playbook/tests/test.yml detach: false entrypoint: ansible-playbook env: ANSIBLE_CONFIG: /ansible-playbook/tests/ansible.cfg ANSIBLE_INVENTORY: /ansible-playbook/tests/inventory ANSIBLE_NOCOLOR: 1 hostname: ansible_testrole_test image: "{{ item }}" interactive: true name: ansible_testrole_test pull: true recreate: true restart_policy: false state: started tty: true volumes: - "{{ playbook_dir }}/../:/ansible-playbook" with_items: - ju2wheels/ansible:2.x-ubuntu-12.04 - ju2wheels/ansible:2.x-ubuntu-14.04 - ju2wheels/ansible:2.x-ubuntu-16.04
运行单元测试:
bashcd testrole/tests ansible-playbook docker_test.yml
注意:运行测试的主机需安装ansible、docker及对应Python模块(如docker-py)。
由于Ansible安装在用户级别,仅root用户可运行。若需添加其他用户,需复制root用户的HOME目录:
bashuseradd -m newuser cp -ar /root/. /home/newuser/ chown -R newuser:newuser /home/newuser echo 'export PATH=/home/newuser/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /home/newuser/.bashrc
欢迎贡献新平台或更新Ansible模块依赖。提交PR前请先打开https://github.com/ju2wheels/docker-ansible/issues%E3%80%82
GPLv2
Julio Lajara <GH user at Gmail>
以下是 ju2wheels/ansible 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务