2016-08-18 21 views
0

我使用ansible 2.0在遠程機器上管理來自hub.docker.com的docker圖像。無法將圖像標籤與docker和ansible掛鉤

我在集線器上有一個帶有不同標籤的私人圖像,我想在我的機器上部署,但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} 

我不不明白爲什麼它ils和我如何解決這個問題,任何人都可以幫忙嗎?

THX

回答

0

任務失敗,因爲docker模塊不支持圖像參數引用tags

docker module已棄用Ansible 2.2

我建議你更新你的Ansible版本,並使用推薦的docker_imagedocker_container,它們都支持通過使用name:tag來引用tags

+0

是的,我看到了新的模塊,但我還沒有能夠更新到優秀版本的ansible,因爲其他人反對,也許我將不得不比我預期的更快地處理這個問題。如果標準碼頭模塊不支持,爲什麼這可以與標籤之一一起工作? – mrequillart

+0

所以我今天再次使用它,它又開始工作了,不知道爲什麼。 – mrequillart