diff --git a/Makefile b/Makefile index 051c2ec2a..f1cc6d72f 100644 --- a/Makefile +++ b/Makefile @@ -77,5 +77,5 @@ deploy: - docker stack deploy --with-registry-auth -c stack-compose.yml dev-stack firewall: - - ansible-playbook ansible/provision.yml --tags firewallx -l db + - ansible-playbook ansible/provision.yml --tags firewall -l db diff --git a/ansible/inventories/digital_ocean.yml b/ansible/inventories/digital_ocean.yml index 514657ef7..05218e941 100644 --- a/ansible/inventories/digital_ocean.yml +++ b/ansible/inventories/digital_ocean.yml @@ -6,7 +6,7 @@ groups: app: inventory_hostname.startswith('app') # work: inventory_hostname.startswith('work') and inventory_hostname != "work" node: inventory_hostname.startswith('node') - # debug: inventory_hostname.startswith('debug') + # debugs: inventory_hostname.startswith('debug') db: inventory_hostname.startswith('db') task: inventory_hostname.startswith('task') search: inventory_hostname.startswith('db-elasticsearch') diff --git a/ansible/provision.yml b/ansible/provision.yml index 395c55064..3a4bb89db 100644 --- a/ansible/provision.yml +++ b/ansible/provision.yml @@ -15,5 +15,7 @@ when: "'elasticsearch' in group_names" - import_playbook: setup_task.yml when: "'task' in group_names" +- import_playbook: setup_debug.yml + when: "'debugs' in group_names" - import_playbook: setup_consul_manager.yml when: "'consul' in group_names" diff --git a/ansible/roles/base/tasks/ufw.yml b/ansible/roles/base/tasks/ufw.yml index 04d3ae16c..e31f3457d 100644 --- a/ansible/roles/base/tasks/ufw.yml +++ b/ansible/roles/base/tasks/ufw.yml @@ -1,6 +1,10 @@ --- +- name: Stop ufw and delete all rules + ufw: state=reset + tags: ufw + - name: Set firewall default policy - ufw: state=enabled policy=reject + ufw: state=disabled policy=reject tags: ufw # # - name: Set ufw policy to deny all incoming connections @@ -24,24 +28,21 @@ tags: ufw - name: Allow all access from RFC1918 networks to this host - become: yes ufw: rule: allow src: '{{ item }}' with_items: - 10.0.0.0/8 - -- debug: - msg: "{{ groups['oldandnew'] | map('extract', hostvars, ['ansible_host']) }}" - tags: firewallx - name: Allow all access from inventory hosts - become: yes ufw: rule: allow src: '{{ item }}' with_items: "{{ groups['oldandnew'] | map('extract', hostvars, ['ansible_host']) }}" - tags: firewall + when: "'oldandnew' in groups" + tags: + - firewall + - ufw - name: Start ufw ufw: state=enabled diff --git a/ansible/roles/consul/tasks/main.yml b/ansible/roles/consul/tasks/main.yml index 995c249eb..7b8ddc4a5 100644 --- a/ansible/roles/consul/tasks/main.yml +++ b/ansible/roles/consul/tasks/main.yml @@ -1,13 +1,4 @@ --- -# TODO: Close firewall and remove below line. Firewall should exclude all but known IPs. -- name: Allow consul-manager ports - ufw: rule=allow port={{ item }} - become: yes - tags: ufw - with_items: - - "8300" - - "8301" - - name: Add the HashiCorp GPG key become: yes apt_key: diff --git a/ansible/roles/haproxy/handlers/main.yml b/ansible/roles/haproxy/handlers/main.yml index 6dabebc2c..5b0341014 100644 --- a/ansible/roles/haproxy/handlers/main.yml +++ b/ansible/roles/haproxy/handlers/main.yml @@ -10,5 +10,5 @@ - name: reload haproxy configuration become: yes - command: sudo docker kill --signal HUP haproxy + command: docker kill --signal HUP haproxy listen: reload haproxy diff --git a/ansible/roles/mongo/tasks/main.yml b/ansible/roles/mongo/tasks/main.yml index b50e4af60..37a9da9d7 100644 --- a/ansible/roles/mongo/tasks/main.yml +++ b/ansible/roles/mongo/tasks/main.yml @@ -16,5 +16,6 @@ template: src: consul_service.json dest: /etc/consul.d/mongo.json + tags: consul notify: - - reload consul \ No newline at end of file + - reload consul diff --git a/ansible/roles/postgres/tasks/main.yml b/ansible/roles/postgres/tasks/main.yml index 8d2bb3c6a..80938d887 100644 --- a/ansible/roles/postgres/tasks/main.yml +++ b/ansible/roles/postgres/tasks/main.yml @@ -1,5 +1,6 @@ --- - name: Start postgres container + become: yes docker_container: name: postgres image: postgres:13.1 diff --git a/ansible/roles/web/handlers/main.yml b/ansible/roles/web/handlers/main.yml index 98b27ba89..4e4e41d5a 100644 --- a/ansible/roles/web/handlers/main.yml +++ b/ansible/roles/web/handlers/main.yml @@ -8,3 +8,7 @@ state: reloaded listen: reload consul +- name: reload gunicorn + become: yes + command: docker kill --signal HUP newsblur_web + listen: reload gunicorn diff --git a/ansible/roles/web/tasks/main.yml b/ansible/roles/web/tasks/main.yml index 87c471171..aba271c68 100644 --- a/ansible/roles/web/tasks/main.yml +++ b/ansible/roles/web/tasks/main.yml @@ -10,6 +10,7 @@ copy: src: /srv/secrets-newsblur/settings/docker_settings.py dest: /srv/newsblur/newsblur_web/local_settings.py + register: app_changed - name: Start NewsBlur Web Docker container become: yes @@ -34,3 +35,10 @@ dest: /etc/consul.d/newsblur_web.json notify: - reload consul + +- name: Reload gunicorn + debug: + msg: Reloading gunicorn + notify: reload gunicorn + when: app_changed.changed + changed_when: app_changed.changed