Adding elasticsearch to py3, upgrading monitor, need to fix boto -> boto3.

This commit is contained in:
Samuel Clay 2021-08-04 18:42:58 -04:00
parent 040c165164
commit af390d5fd1
8 changed files with 52 additions and 28 deletions

View file

@ -75,6 +75,10 @@ keys:
# Digital Ocean / Terraform
list:
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` compute droplet list
sizes:
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` compute size list
ratelimit:
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` account ratelimit
ansible-deps:
ansible-galaxy install -p roles -r ansible/roles/requirements.yml --roles-path ansible/roles
tfrefresh:

View file

@ -14,6 +14,6 @@
- {role: 'dnsmasq', tags: 'dnsmasq'}
- {role: 'consul', tags: 'consul'}
- {role: 'consul-client', tags: 'consul'}
- {role: 'node-exporter', tags: ['node-exporter', 'metrics']}
- {role: 'elasticsearch', tags: 'elasticsearch'}
- {role: 'node-exporter', tags: ['node-exporter', 'metrics']}
- {role: 'monitor', tags: 'monitor'}

View file

@ -1,16 +1,39 @@
---
- name: Permissions for elasticsearch
become: yes
file:
state: directory
mode: 0777
path: /var/log/elasticsearch
- name: Make docker network for newsblurnet
become: yes
docker_network:
name: newsblurnet
notify: restart docker
- name: Start Elasticsearch Docker container
become: yes
docker_container:
name: elasticsearch
image: elasticsearch:1.7.6
image: elasticsearch:7.14.0
state: started
hostname: "{{ inventory_hostname }}"
ports:
- '9200:9200'
restart_policy: unless-stopped
container_default_behavior: no_defaults
networks_cli_compatible: yes
# network_mode: host
network_mode: default
networks:
- name: newsblurnet
aliases:
- elasticsearch
user: 1000:1001
volumes:
- /srv/newsblur/docker/volumes/elasticsearch:/usr/share/elasticsearch/data
- /var/log/elasticsearch/:/var/log/elasticsearch/
- name: Register elasticsearch in consul
tags: consul

View file

@ -15,22 +15,6 @@
lineinfile:
path: /srv/newsblur/newsblur_web/app_env.py
line: 'SERVER_NAME = "{{ inventory_hostname }}"'
# Unused because the IP address can change as other containers are added and then the host reboots
- block:
- name: Register MONGO_DOCKER_IP
become: yes
shell:
cmd: "docker inspect -f '{% raw %}{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}{% endraw %}' mongo "
register: mongo_docker_ip
when: "'db-mongo' in inventory_hostname"
- name: Add MONGO_DOCKER_IP to app env
lineinfile:
path: /srv/newsblur/newsblur_web/app_env.py
line: 'MONGO_DOCKER_IP = "{{ mongo_docker_ip.stdout }}"'
when: "'db-mongo' in inventory_hostname"
when: False
- name: Make docker network for newsblurnet
become: yes

View file

@ -8,6 +8,16 @@ import elasticsearch
from newsblur_web import settings
import sentry_sdk
from flask import Flask
from sentry_sdk.integrations.flask import FlaskIntegration
sentry_sdk.init(
dsn=settings.FLASK_SENTRY_DSN,
integrations=[FlaskIntegration()],
traces_sample_rate=1.0,
)
app = Flask(__name__)
PRIMARY_STATE = 1
@ -131,7 +141,7 @@ def db_check_mongo_analytics():
@app.route("/db_check/redis_user")
def db_check_redis_user():
try:
r = redis.Redis('db-redis-user.server.nyc1.consul', db=0)
r = redis.Redis('db-redis-user.service.nyc1.consul', db=0)
except:
abort(503)
@ -148,7 +158,7 @@ def db_check_redis_user():
@app.route("/db_check/redis_story")
def db_check_redis_story():
try:
r = redis.Redis('db-redis-story.server.nyc1.consul', db=1)
r = redis.Redis('db-redis-story.service.nyc1.consul', db=1)
except:
abort(503)
@ -165,7 +175,7 @@ def db_check_redis_story():
@app.route("/db_check/redis_sessions")
def db_check_redis_sessions():
try:
r = redis.Redis('db-redis-sessions.server.nyc1.consul', db=5)
r = redis.Redis('db-redis-sessions.service.nyc1.consul', db=5)
except:
abort(503)
@ -182,7 +192,7 @@ def db_check_redis_sessions():
@app.route("/db_check/redis_pubsub")
def db_check_redis_pubsub():
try:
r = redis.Redis('db-redis-pubsub.server.nyc1.consul', db=1)
r = redis.Redis('db-redis-pubsub.service.nyc1.consul', db=1)
except:
abort(503)
@ -199,7 +209,7 @@ def db_check_redis_pubsub():
@app.route("/db_check/elasticsearch")
def db_check_elasticsearch():
try:
conn = elasticsearch.Elasticsearch('elasticsearch')
conn = elasticsearch.Elasticsearch('db-elasticsearch.service.nyc1.consul')
except:
abort(503)

View file

@ -1,4 +1,4 @@
flask==1.1.2
flask==2.0.1
pymongo==3.11.2
psycopg2>=2,<3
redis==3.5.3
@ -6,7 +6,5 @@ elasticsearch>=7,<8
pymysql==0.10.1
celery>=4,<5
Django>=3.1,<3.2
sentry-sdk==0.20.3
sentry-sdk[flask]
mongoengine==0.21.0
boto==2.49.0
pyyaml==5.3.1

View file

@ -287,7 +287,7 @@ resource "digitalocean_droplet" "db-elasticsearch" {
image = var.droplet_os
name = "db-elasticsearch"
region = var.droplet_region
size = var.droplet_size
size = var.elasticsearch_droplet_size
ssh_keys = [digitalocean_ssh_key.default.fingerprint]
provisioner "local-exec" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"

View file

@ -45,3 +45,8 @@ variable "mongo_analytics_droplet_size" {
type = string
default = "s-2vcpu-4gb"
}
variable "elasticsearch_droplet_size" {
type = string
default = "m3-2vcpu-16gb"
}