diff --git a/roles/whoami/defaults/main.yml b/roles/whoami/defaults/main.yml new file mode 100644 index 0000000..7facbb2 --- /dev/null +++ b/roles/whoami/defaults/main.yml @@ -0,0 +1,3 @@ +--- + +whoami_version: latest diff --git a/roles/whoami/meta/main.yml b/roles/whoami/meta/main.yml new file mode 100644 index 0000000..bf789d1 --- /dev/null +++ b/roles/whoami/meta/main.yml @@ -0,0 +1,6 @@ +--- + +dependencies: + - docker + - docker-swarm + - caddy diff --git a/roles/whoami/tasks/main.yml b/roles/whoami/tasks/main.yml new file mode 100644 index 0000000..34c95ff --- /dev/null +++ b/roles/whoami/tasks/main.yml @@ -0,0 +1,28 @@ +--- +# install whoami container + +- name: Deploy whoami to swarm + community.general.docker_stack: + name: "{{ item.name }}" + state: present + prune: yes + compose: + - "{{ item.compose }}" + with_items: "{{ whoami_stack }}" + when: whoami_stack is defined + become: yes + tags: + - docker-swarm + +- name: Get caddy container id + ansible.builtin.command: + cmd: docker ps -q -f name=caddy_app + register: caddy_container_id + become: yes + +- name: Add caddy reverse proxy + community.docker.docker_container_exec: + container: "{{ caddy_container_id.stdout }}" + command: > + curl localhost:2019/config/apps/http/servers/srv0/routes/0 -X POST -H "Content-Type: application/json" -d {{ whoami_upstream }} + become: yes diff --git a/roles/whoami/templates/docker-stack.yml.j2 b/roles/whoami/templates/docker-stack.yml.j2 new file mode 100644 index 0000000..32578ce --- /dev/null +++ b/roles/whoami/templates/docker-stack.yml.j2 @@ -0,0 +1,11 @@ +version: "3.7" + +services: + app: + image: containous/whoami:{{ whoami_version }} + networks: + - "{{ docker_swarm_public_network_name }}" + +networks: + "{{ docker_swarm_public_network_name }}": + external: true diff --git a/roles/whoami/vars/main.yml b/roles/whoami/vars/main.yml new file mode 100644 index 0000000..fec62b9 --- /dev/null +++ b/roles/whoami/vars/main.yml @@ -0,0 +1,9 @@ +--- + +whoami_stack: + - name: whoami + compose: "{{ lookup('template', 'docker-stack.yml.j2') | from_yaml }}" + +whoami_upstream: >- + '{ "@id": "whoami_upstream", "handle": [{ "handler": "reverse_proxy", "upstreams": [{ "dial": "whoami_app:80"}]}] }' +