--- # 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 failed_when: False register: aws_uri_check - import_tasks: myos_ec2.yml when: aws_uri_check.status == 200 tags: - aws - ec2 # 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 when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined with_items: '{{myos.tags.services.split(" ")}}' 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 - name: myos - add docker containers to inventory when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined with_items: '{{myos.tags.services.split(" ")}}' add_host: name: "{{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}}" ansible_connection: docker changed_when: false - name: myos - run make deploy-hook in docker containers when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined with_items: '{{myos.tags.services.split(" ")}}' 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}}"