Adding individual IP addresses from hetzner.

This commit is contained in:
Samuel Clay 2024-02-26 14:42:17 -05:00
parent ff6b1e0040
commit 669c07e023
5 changed files with 34 additions and 15 deletions

1
.gitignore vendored
View file

@ -19,6 +19,7 @@ certbot.conf
task_env.py
app_env.py
data/
api/ip_addresses.txt
.prom_cache
config/certificates
**/*.xcuserstate

View file

@ -29,6 +29,14 @@
tags:
- static
- name: "Write out ips from ansible inventory of all servers with app/node/www/task in name into addresses.txt file"
template:
src: ip_addresses.txt.j2
dest: /srv/newsblur/apps/api/ip_addresses.txt
tags:
- inventory
- name: Prune docker
become: yes
community.docker.docker_prune:

View file

@ -0,0 +1,5 @@
{%- for item in hostvars %}
{% if "happ" in item or "hnode" in item or "hwww" in item or "htask" in item %}
{{ hostvars[item].ansible_host }}
{% endif %}
{%- endfor %}

View file

@ -1,25 +1,28 @@
import os
import base64
import urllib.parse
import datetime
import os
import urllib.parse
import lxml.html
from django import forms
from django.conf import settings
from django.http import HttpResponse
from django.shortcuts import render
from django.contrib.auth import login as login_user
from django.contrib.auth import logout as logout_user
from apps.reader.forms import SignupForm, LoginForm
from django.core.mail import mail_admins
from django.http import HttpResponse
from django.shortcuts import render
from apps.profile.models import Profile
from apps.social.models import MSocialProfile, MSharedStory, MSocialSubscription
from apps.rss_feeds.models import Feed, MStarredStoryCounts, MStarredStory
from apps.reader.forms import LoginForm, SignupForm
from apps.reader.models import RUserStory, UserSubscription, UserSubscriptionFolders
from apps.rss_feeds.models import Feed, MStarredStory, MStarredStoryCounts
from apps.rss_feeds.text_importer import TextImporter
from apps.reader.models import UserSubscription, UserSubscriptionFolders, RUserStory
from apps.social.models import MSharedStory, MSocialProfile, MSocialSubscription
from utils import json_functions as json
from utils import log as logging
from utils.feed_functions import relative_timesince
from utils.user_functions import ajax_login_required, get_user
from utils.view_functions import required_params
from utils.user_functions import get_user, ajax_login_required
@json.json_view
@ -511,8 +514,10 @@ def save_story(request, token=None):
return response
def ip_addresses(request):
import digitalocean
doapi = digitalocean.Manager(token=settings.DO_TOKEN_API_IPADDRESSES)
droplets = doapi.get_all_droplets()
addresses = '\n'.join([d.ip_address for d in droplets if any(name in d.name for name in ['task', 'staging', 'app', 'node'])])
# Read local file /srv/newsblur/apps/api/ip_addresses.txt and return that
with open('/srv/newsblur/apps/api/ip_addresses.txt', 'r') as f:
addresses = f.read()
mail_admins(f"IP Addresses accessed from {request.META['REMOTE_ADDR']} by {request.user_agent}", addresses)
return HttpResponse(addresses, content_type='text/plain')

View file

@ -1598,7 +1598,7 @@ class Profile(models.Model):
self.save()
delta = datetime.datetime.now() - self.last_seen_on
months_ago = delta.days / 30
months_ago = round(delta.days / 30)
user = self.user
data = dict(user=user, months_ago=months_ago)
text = render_to_string('mail/email_premium_expire_grace.txt', data)
@ -1627,7 +1627,7 @@ class Profile(models.Model):
return
delta = datetime.datetime.now() - self.last_seen_on
months_ago = delta.days / 30
months_ago = round(delta.days / 30)
user = self.user
data = dict(user=user, months_ago=months_ago)
text = render_to_string('mail/email_premium_expire.txt', data)