
authkeys/docker-ansible该Docker镜像用于执行Ansible命令,允许直接向容器传递Ansible参数。用户需将本地Ansible项目目录挂载至容器内的/ansible目录,即可在隔离环境中运行Ansible playbook。
需将本地Ansible项目目录挂载至容器的/ansible目录,基本命令格式如下:
bashdocker run -it --rm \ -v $PWD:/ansible \ authkeys/docker-ansible [ansible参数] playbook.yml
通过环境变量可配置容器行为,支持以下参数:
| 环境变量 | 说明 | 默认值 | 执行操作 |
|---|---|---|---|
SSH_KEY | 要使用的SSH密钥文件名 | 无 | 需确保密钥存在于/root/.ssh目录(通常通过挂载~/.ssh实现) |
PYTHON_REQUIREMENTS | Python模块依赖文件路径(Ansible所需Python包) | requirements-pip.txt | 若文件存在,执行pip3 install -r <file> |
ANSIBLE_REQUIREMENTS | Ansible模块依赖文件路径(ansible-galaxy模块) | requirements.yml | 若文件存在,执行ansible-galaxy install --force -r <file> |
ANSIBLE_PRE_PLAYBOOK | 预执行的playbook文件路径 | 无 | 若文件存在,执行ansible-playbook ${ANSIBLE_PRE_PLAYBOOK_OPTS} <file> |
ANSIBLE_PRE_PLAYBOOK_OPTS | 传递给预执行playbook的可选参数 | 无 | 与ANSIBLE_PRE_PLAYBOOK配合使用 |
需要手动输入密码时,使用--ask-pass参数:
bashdocker run -it --rm \ -v $PWD:/ansible \ authkeys/docker-ansible --ask-pass playbook.yml
指定SSH密钥进行认证(需将本地.ssh目录挂载至容器/root/.ssh):
bashdocker run -it --rm \ -e SSH_KEY=id_ed25519 \ -v $HOME/.ssh:/root/.ssh \ -v $PWD:/ansible \ authkeys/docker-ansible playbook.yml
若SSH密钥有密码,容器会提示输入密钥密码。
指定自定义Python依赖文件(默认读取requirements-pip.txt):
bashdocker run -it --rm \ -e SSH_KEY=id_ed25519 \ -e PYTHON_REQUIREMENTS=/python/requirements.txt \ -v requirements.txt:/python/requirements.txt \ -v $HOME/.ssh:/root/.ssh \ -v $PWD:/ansible \ authkeys/docker-ansible playbook.yml
通过ansible-galaxy安装Ansible模块(默认读取requirements.yml):
bashdocker run -it --rm \ -e SSH_KEY=id_ed25519 \ -e ANSIBLE_REQUIREMENTS=/extra/requirements.yaml \ -v requirements.yaml:/extra/requirements.yaml \ -v $HOME/.ssh:/root/.ssh \ -v $PWD:/ansible \ authkeys/docker-ansible playbook.yml
执行主playbook前先运行指定的预playbook(如配置known_hosts):
bashdocker run -it --rm \ -e ANSIBLE_PRE_PLAYBOOK=ssh_keyscan.yml \ -e ANSIBLE_PRE_PLAYBOOK_OPTS=--forks=1 \ -e SSH_KEY=id_ed25519 \ -v $HOME/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro \ -v $PWD:/ansible \ authkeys/docker-ansible playbook.yml
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务