我正在使用ansible 2.0在远程机器上管理来自hub.docker.com的docker镜像。
我在集线器上有一个带有不同标签的私有映像,我想将其部署到我的机器上,但3个标签中只有1个有效。
以下是我的ansible conf的相关信息:
tasks.yml:
- name: pull local images
docker:
image: "{{ item.image }}:{{ item.tag }}"
pull: always
with_items: "{{ docker_image_list }}"
register: docker_pull_result项目示例:
docker_image1:
image: 'mynamespace/myimage'
tag: mytag结果:
failed: [myhost] (item={u'image': u'mynamespace/myimage', u'tag': u'mytag'}) => {"failed": true, "item": {"image": "mynamespace/myimage", "local": "localhost:5000/mytag", "tag": "mytag"}, "module_stderr": "", "module_stdout": "Traceback (most recent call last):\r\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1471514200.43-222544910756770/docker\", line 3752, in <module>\r\n main()\r\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1471514200.43-222544910756770/docker\", line 1744, in main\r\n stopped(manager, containers, count, name)\r\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1471514200.43-222544910756770/docker\", line 1623, in stopped\r\n containers.refresh()\r\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1471514200.43-222544910756770/docker\", line 1531, in refresh\r\n self.deployed = self.manager.get_deployed_containers()\r\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1471514200.43-222544910756770/docker\", line 1347, in get_deployed_containers\r\n repo_tags = self.get_image_repo_tags()\r\n File \"/home/myuser/.ansible/tmp/ansible-tmp-1471514200.43-222544910756770/docker\", line 1010, in get_image_repo_tags\r\n if resource in image.get('RepoTags', []):\r\nTypeError: argument of type 'NoneType' is not iterable\r\n", "msg": "MODULE FAILURE", "parsed": false}我不明白它为什么失败,以及我如何解决这个问题,有人能帮助我吗?
Thx
发布于 2016-08-18 18:46:41
任务失败,因为docker模块不支持在tags参数中引用图像。
从Ansible 2.2开始,docker module已弃用。
我建议你更新你的Ansible版本,使用推荐的docker_image和docker_container,它们都支持使用name:tag来引用tags。
https://stackoverflow.com/questions/39015776
复制相似问题