diff --git a/snibox/playbook.yml b/snibox/playbook.yml index 5cc19a4..d28a346 100755 --- a/snibox/playbook.yml +++ b/snibox/playbook.yml @@ -1,64 +1,12 @@ ################################################# -# DO Community Playbooks: Docker +# Snibox Playbook ################################################# --- -- hosts: all +- hosts: gondor become: true vars_files: - vars/default.yml - tasks: - - name: Pull Backend image - docker_image: - name: "{{ backend_image }}" - source: pull - state: present - force_source: yes - - - name: Upload the .env file - template: - src: "files/.env" - dest: "/var/lib/{{ host_directory }}/.env" - - - name: Create Backend container - docker_container: - name: "{{ backend_container }}" - image: "{{ backend_image }}" - state: started - restart_policy: "unless-stopped" - command: sh -c "cp -r /app/public/ / && rm -rf tmp/pids && ./bin/rails s -p 3003 -b '0.0.0.0'" - env_file: "/var/lib/{{ host_directory }}/.env" - links: - - "postgres:db" - published_ports: - - "127.0.0.1:3003:3003" - volumes: - - "/var/lib/{{ host_directory }}/frontend:/public" - - - name: Check if Nginx conf file exists - stat: path="/etc/nginx/sites-available/{{ http_conf }}" - register: status - - - name: No need to reload Nginx - debug: msg= {{ "No need to reload Nginx as sites-available entries have already been created" }} - - - name: Set Nginx conf file - when: status.stat.exists == false - template: - src: "files/nginx.conf.j2" - dest: "/etc/nginx/sites-available/{{ http_conf }}" - - - name: Enable new site - when: status.stat.exists == false - file: - src: "/etc/nginx/sites-available/{{ http_conf }}" - dest: "/etc/nginx/sites-enabled/{{ http_conf }}" - state: link - notify: Reload Nginx - - handlers: - - name: Reload Nginx - service: - name: nginx - state: reloaded - + roles: + - snibox + - nginx diff --git a/snibox/roles/nginx/handlers/main.yaml b/snibox/roles/nginx/handlers/main.yaml new file mode 100644 index 0000000..622fd36 --- /dev/null +++ b/snibox/roles/nginx/handlers/main.yaml @@ -0,0 +1,6 @@ +--- +# Handlers for Nginx role +- name: Reload Nginx + service: + name: nginx + state: reloaded diff --git a/snibox/roles/nginx/tasks/main.yaml b/snibox/roles/nginx/tasks/main.yaml new file mode 100644 index 0000000..4441fe7 --- /dev/null +++ b/snibox/roles/nginx/tasks/main.yaml @@ -0,0 +1,24 @@ +--- +# Tasks for Nginx role +- name: Check if Nginx conf file exists + stat: + path: "/etc/nginx/sites-available/{{ http_conf }}" + register: status + +- name: No need to reload Nginx + debug: + msg: "No need to reload Nginx as sites-available entries have already been created" + +- name: Set Nginx conf file + when: status.stat.exists == false + template: + src: "files/nginx.conf.j2" + dest: "/etc/nginx/sites-available/{{ http_conf }}" + +- name: Enable new site + when: status.stat.exists == false + file: + src: "/etc/nginx/sites-available/{{ http_conf }}" + dest: "/etc/nginx/sites-enabled/{{ http_conf }}" + state: link + notify: Reload Nginx diff --git a/snibox/roles/snibox/tasks/main.yaml b/snibox/roles/snibox/tasks/main.yaml new file mode 100644 index 0000000..0892519 --- /dev/null +++ b/snibox/roles/snibox/tasks/main.yaml @@ -0,0 +1,36 @@ +--- +# Tasks for Snibox role +- name: Pull Backend image + docker_image: + name: "{{ backend_image }}" + source: pull + state: present + force_source: yes + +- name: Ensure Snibox Directory exists + file: + path: "/var/lib/{{ host_directory }}" + state: directory + mode: 0755 + +- name: Upload the .env file + template: + src: "files/.env" + dest: "/var/lib/{{ host_directory }}/.env" + +- name: Create Backend container + docker_container: + name: "{{ backend_container }}" + image: "{{ backend_image }}" + state: started + restart_policy: "unless-stopped" + command: sh -c "cp -r /app/public/ / && rm -rf tmp/pids && ./bin/rails s -p 3003 -b '0.0.0.0'" + env_file: "/var/lib/{{ host_directory }}/.env" + # etc_hosts: + # db : "{{ db_host }}" + links: + - "postgres:db" + published_ports: + - "127.0.0.1:3003:3003" + volumes: + - "/var/lib/{{ host_directory }}/frontend:/public" diff --git a/snibox/vars/default.yml b/snibox/vars/default.yml index 44574a1..4d5a4ca 100644 --- a/snibox/vars/default.yml +++ b/snibox/vars/default.yml @@ -9,3 +9,5 @@ backend_container: snibox-be backend_image: snibox/snibox:latest host_directory: snibox + +# db_host: 172.26.12.67