From 1ed3c9f40a80a15df01a1649d0060bf99e90bec0 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Sat, 27 Jan 2024 18:11:36 -0500 Subject: [PATCH] Adding postgres and elasticsearch to hetzner. Updating redis flask metrics. --- ansible/playbooks/setup_elasticsearch.yml | 2 +- ansible/playbooks/setup_task.yml | 1 - ansible/roles/elasticsearch/tasks/main.yml | 1 + .../elasticsearch/templates/consul_service.json | 4 ++++ ansible/roles/postgres/tasks/main.yml | 2 +- flask_metrics/flask_metrics_redis.py | 13 +++++++------ 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/ansible/playbooks/setup_elasticsearch.yml b/ansible/playbooks/setup_elasticsearch.yml index 8635bc72b..2f13fcdfa 100644 --- a/ansible/playbooks/setup_elasticsearch.yml +++ b/ansible/playbooks/setup_elasticsearch.yml @@ -8,7 +8,7 @@ - ../env_vars/base.yml roles: - {role: 'base', tags: 'base'} - - {role: 'ufw', tags: 'ufw'} + # - {role: 'ufw', tags: 'ufw'} - {role: 'docker', tags: 'docker'} - {role: 'repo', tags: ['repo', 'pull']} - {role: 'dnsmasq', tags: 'dnsmasq'} diff --git a/ansible/playbooks/setup_task.yml b/ansible/playbooks/setup_task.yml index 5b68ecaa2..87f6d501b 100644 --- a/ansible/playbooks/setup_task.yml +++ b/ansible/playbooks/setup_task.yml @@ -15,6 +15,5 @@ - {role: 'consul', tags: 'consul'} - {role: 'consul-client', tags: 'consul'} - {role: 'apns', tags: 'apns'} - # - {role: 'netdata', tags: 'netdata'} - {role: 'node-exporter', tags: ['node-exporter', 'metrics']} - {role: 'celery_task', tags: 'celery'} diff --git a/ansible/roles/elasticsearch/tasks/main.yml b/ansible/roles/elasticsearch/tasks/main.yml index fb4decf05..0db7550c4 100644 --- a/ansible/roles/elasticsearch/tasks/main.yml +++ b/ansible/roles/elasticsearch/tasks/main.yml @@ -40,6 +40,7 @@ - name: newsblurnet aliases: - elasticsearch + user: "{{ ansible_effective_user_id|int }}:{{ ansible_effective_group_id|int }}" volumes: - /srv/newsblur/docker/volumes/elasticsearch:/usr/share/elasticsearch/data - /var/log/elasticsearch/:/var/log/elasticsearch/ diff --git a/ansible/roles/elasticsearch/templates/consul_service.json b/ansible/roles/elasticsearch/templates/consul_service.json index 71e1ea280..c79e1c54e 100644 --- a/ansible/roles/elasticsearch/templates/consul_service.json +++ b/ansible/roles/elasticsearch/templates/consul_service.json @@ -1,6 +1,10 @@ { "service": { + {% if inventory_hostname in ["db-elasticsearch"] %} "name": "db-elasticsearch", + {% else %} + "name": "db-elasticsearch-staging", + {% endif %} "tags": [ "db" ], diff --git a/ansible/roles/postgres/tasks/main.yml b/ansible/roles/postgres/tasks/main.yml index 38fad19d8..03bf93903 100644 --- a/ansible/roles/postgres/tasks/main.yml +++ b/ansible/roles/postgres/tasks/main.yml @@ -48,7 +48,7 @@ - /srv/newsblur/docker/postgres/postgres_hba-13.conf:/etc/postgresql/pg_hba.conf - /srv/newsblur/docker/postgres/postgres_ident-13.conf:/etc/postgresql/pg_ident.conf restart_policy: unless-stopped - when: (inventory_hostname | regex_replace('[0-9]+', '')) in ['db-postgres-primary', 'db-postgres'] + when: (inventory_hostname | regex_replace('\-?[0-9]+', '')) in ['db-postgres-primary', 'db-postgres', 'hdb-postgres'] - name: Change ownership in postgres docker container become: yes diff --git a/flask_metrics/flask_metrics_redis.py b/flask_metrics/flask_metrics_redis.py index fbaa5cab2..08acf04f4 100644 --- a/flask_metrics/flask_metrics_redis.py +++ b/flask_metrics/flask_metrics_redis.py @@ -1,8 +1,9 @@ -from flask import Flask, render_template, Response -from newsblur_web import settings -import sentry_sdk -from sentry_sdk.integrations.flask import FlaskIntegration import redis +import sentry_sdk +from flask import Flask, Response, render_template +from sentry_sdk.integrations.flask import FlaskIntegration + +from newsblur_web import settings if settings.FLASK_SENTRY_DSN is not None: sentry_sdk.init( @@ -32,9 +33,9 @@ class RedisMetric(object): def redis_servers_stats(self): for instance, redis_config in INSTANCES.items(): - if not settings.DOCKERBUILD and settings.SERVER_NAME != instance: + if not settings.DOCKERBUILD and instance not in settings.SERVER_NAME: continue - self.host = redis_config['host'] + self.host = f"{settings.SERVER_NAME}.node.nyc1.consul" self.port = redis_config.get('port', settings.REDIS_PORT) stats = self.get_info() yield instance, stats