--- # file: tasks/myos.yml - name: myos - register myos.tags set_fact: myos_tags: "{{ lookup('env', 'MYOS_TAGS_JSON')|from_json or lookup('file', '~/.env') }}" tags: debug - debug: msg: "{{myos_tags|to_nice_json}}" tags: debug - name: myos - check AWS meta-data URI uri: url: http://169.254.169.254/latest/meta-data timeout: 1 register: aws_uri_check tags: - aws failed_when: False - import_tasks: myos_ec2.yml tags: - aws - ec2 when: aws_uri_check.status == 200 # ansible v2.8 # - name: myos - prune docker objects # docker_prune: # containers: yes # images: yes # images_filters: # dangling: false # networks: yes # volumes: yes # builder_cache: yes - name: myos - launch docker containers docker_container: image: "{{docker_registry|default(myos.tags.user)}}/{{myos.tags.user}}/{{myos.tags.env}}/{% if ':' in item %}{{item}}{% else %}{{item}}:{{docker_image_tag|default('latest')}}{% endif %}" name: "{{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}}" network_mode: host pull: yes restart_policy: always volumes: - "{{ lookup('env','ANSIBLE_DISKS_NFS_PATH') }}:/shared" - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/tmp/docker.sock:ro with_items: '{{myos.tags.services.split(" ")}}' when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined - name: myos - add docker containers to inventory add_host: name: "{{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}}" ansible_connection: docker changed_when: false with_items: '{{myos.tags.services.split(" ")}}' when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined - name: myos - run make deploy-hook in docker containers delegate_to: "{{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}}" raw: "command -v make || exit 0 && make deploy-hook CONTAINER={{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}} HOST={{ansible_ec2_local_ipv4}}" with_items: '{{myos.tags.services.split(" ")}}' when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined