myos/ansible/roles/docker/tasks/myos.yml

66 lines
2.3 KiB
YAML

---
# 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