diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..a80359c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/playbook.retry +/hosts.ini diff --git a/docker-compose.yml.j2 b/docker-compose.yml.j2 new file mode 100644 index 0000000..9872cc0 --- /dev/null +++ b/docker-compose.yml.j2 @@ -0,0 +1,17 @@ +version: '3' + +networks: + web: + external: true + +services: + app: + build: + context: ./repository + networks: + - web + labels: + - "traefik.enable=true" + + - "traefik.http.routers.{{ name }}-http.rule=Host(`{{ host }}`)" + - "traefik.http.routers.{{ name }}-http.entrypoints=http" diff --git a/hosts.example.ini b/hosts.example.ini new file mode 100644 index 0000000..d4783d6 --- /dev/null +++ b/hosts.example.ini @@ -0,0 +1,7 @@ +[webservers] +example.com + +[webservers:vars] +ansible_python_interpreter=/usr/bin/python3 + +working_dir=/var/apps diff --git a/playbook.yml b/playbook.yml new file mode 100755 index 0000000..fc28e00 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,16 @@ +--- +- name: Install app + hosts: webservers + become: yes + + tasks: + - name: Clone repository + git: + repo: "{{ repository }}" + dest: "{{ working_dir }}/{{ name }}/repository" + version: "{{ version }}" + + - name: Build docker-compose file + template: + src: docker-compose.yml.j2 + dest: '{{ working_dir }}/{{ name }}/docker-compose.yml'