| --- |
| - name: Install docker |
| package: |
| name: 'docker-ce' |
| state: present |
| notify: |
| - Restart Docker |
| |
| - name: Install docker python module |
| package: |
| name: 'python-docker-py' |
| state: present |
| |
| |
| - name: Install python jsonpointer module |
| package: |
| name: 'python-jsonpointer' |
| state: present |
| |
| - name: Ensure /etc/docker exists |
| file: |
| path: /etc/docker |
| state: directory |
| |
| - name: Setup docker container logging settings |
| json_mod: |
| path: /etc/docker/daemon.json |
| key: '' # the whole JSON document per https://tools.ietf.org/html/rfc6901 |
| # "value" must be wrapped in single quote "'" with extra space in front of "{" (ansible workaround) |
| # reference: https://stackoverflow.com/questions/31969872 |
| value: ' { "log-driver": "json-file", "log-opts": { "max-size": "{{ docker.log_max_size }}", "max-file": "{{ docker.log_max_file }}" } }' |
| |
| - name: Setup docker dns settings |
| json_mod: |
| path: /etc/docker/daemon.json |
| key: dns |
| # "value" must be wrapped in single quote "'" with extra space in front of "[" (ansible workaround) |
| # reference: https://stackoverflow.com/questions/31969872 |
| value: ' [ "{{ hostvars[groups.infrastructure[0]].cluster_ip }}" ]' |
| notify: |
| - Restart Docker |
| |
| - name: Force notified handlers to run at this point |
| meta: flush_handlers |
| |
| - name: Ensure docker is started |
| systemd: |
| name: docker |
| state: started |
| enabled: true |