docker - Ansible: 'item' is undefined -
i'm trying use with_items delegate_to run docker container in several hosts. have group test in /etc/ansible/hosts:
[test] my_machine1 my_machine2 and task:
- name: run app container docker: name: "{{artifact_id}}" insecure_registry: true image: "{{image}}:{{version}}" pull: state: reloaded ports: - "{{port_mapping}}" delegate_to: '{{item}}' with_items: - "{{groups['test']}}" but when run it, error:
{"failed": true, "msg": "error! 'item' undefined"}
what doing wrong?
thanks in advance
you need take care of indention. delegate_to , with_items part of task, not of docker module.
- name: run app container docker: name: "{{artifact_id}}" insecure_registry: true image: "{{image}}:{{version}}" pull: state: reloaded ports: - "{{port_mapping}}" delegate_to: '{{item}}' with_items: "{{groups['test']}}" though i'm not sure delegation work here. background why need delegate in first place? normal way apply play hosts of group test. guess you're instead running play against localhost?
another unrelated thing: experienced issues docker module when pull: always used state: reloaded. unlike docker-compose, docker module always restart container no matter if there updated image pulled or not.
- hosts: localhost tasks: - download nexus - build image - upload registry - ... - hosts: test tasks: - docker: ...
Comments
Post a Comment