commit
775c7561b9
3 changed files with 129 additions and 0 deletions
@ -0,0 +1,22 @@ |
|||||||
|
from flask import Flask, jsonify, request |
||||||
|
import json |
||||||
|
|
||||||
|
app = Flask(__name__) |
||||||
|
|
||||||
|
# http get 127.0.0.1:5000/api/portal/get columns:='["hostname"]' limit=9 |
||||||
|
@app.route("/api/portal/get", methods=["GET"]) |
||||||
|
def index(): |
||||||
|
print(request.json) |
||||||
|
columns = request.json.get("columns") |
||||||
|
limit = int(request.json.get("limit")) |
||||||
|
|
||||||
|
hosts: List[dict] = [] |
||||||
|
|
||||||
|
for host in range(1, limit + 1): |
||||||
|
hosts.append({"hostname": f"content-creator-{host}"}) |
||||||
|
|
||||||
|
# определить количество хостов в запросе ключ `limit` |
||||||
|
return jsonify({"result": hosts, "done": True}) |
||||||
|
|
||||||
|
|
||||||
|
app.run() |
@ -0,0 +1,60 @@ |
|||||||
|
import asyncio |
||||||
|
import requests |
||||||
|
import json |
||||||
|
from typing import List |
||||||
|
import os |
||||||
|
|
||||||
|
|
||||||
|
def write_config_file( |
||||||
|
server_name: str, path_to_template_file: str, path_for_config: str |
||||||
|
) -> None: |
||||||
|
template: str = "" |
||||||
|
with open(path_to_template_file, "r") as file: |
||||||
|
template = file.read() |
||||||
|
|
||||||
|
config_body: str = template.replace("server_name _;", f"server_name {server_name};") |
||||||
|
condifg_full_path: str = os.path.abspath(path_for_config) |
||||||
|
config_filename: str = f"{server_name}.conf" |
||||||
|
|
||||||
|
if not os.path.isdir(condifg_full_path): |
||||||
|
os.mkdir(condifg_full_path) |
||||||
|
|
||||||
|
with open(os.path.join(condifg_full_path, config_filename), "w") as file: |
||||||
|
file.write(config_body) |
||||||
|
|
||||||
|
|
||||||
|
def send_request(server: str, columns: list, limit: int) -> dict: |
||||||
|
response = requests.get(server, json={"columns": columns, "limit": limit}) |
||||||
|
return response.json() |
||||||
|
|
||||||
|
|
||||||
|
def get_hosts(server_response: dict) -> List[str]: |
||||||
|
hosts: list = [] |
||||||
|
|
||||||
|
for host in server_response.get("result"): |
||||||
|
hosts.append(host.get("hostname")) |
||||||
|
|
||||||
|
return hosts |
||||||
|
|
||||||
|
|
||||||
|
def main(): |
||||||
|
TEMPLATE = "template_conf.conf" |
||||||
|
PATH_FOR_CONFIG = "ng" |
||||||
|
FREQUENCY_SEC = 10 |
||||||
|
|
||||||
|
resp = send_request( |
||||||
|
"http://127.0.0.1:5000/api/portal/get", columns=["hostname"], limit=9 |
||||||
|
) |
||||||
|
|
||||||
|
hosts = get_hosts(resp) |
||||||
|
|
||||||
|
for host in hosts: |
||||||
|
write_config_file( |
||||||
|
server_name=host, |
||||||
|
path_to_template_file=TEMPLATE, |
||||||
|
path_for_config=PATH_FOR_CONFIG, |
||||||
|
) |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
main() |
@ -0,0 +1,47 @@ |
|||||||
|
server { |
||||||
|
listen 80; |
||||||
|
listen [::]:80; |
||||||
|
|
||||||
|
server_name _; |
||||||
|
|
||||||
|
location /.well-known/acme-challenge/ { |
||||||
|
content_by_lua_block { |
||||||
|
auto_ssl:challenge_server() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
location / { |
||||||
|
return 301 https://$host$request_uri; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
server { |
||||||
|
listen 443 ssl; |
||||||
|
|
||||||
|
server_name _; |
||||||
|
|
||||||
|
ssl_certificate_by_lua_block { |
||||||
|
auto_ssl:ssl_certificate() |
||||||
|
} |
||||||
|
ssl_certificate /etc/ssl/resty-auto-ssl-fallback.crt; |
||||||
|
ssl_certificate_key /etc/ssl/resty-auto-ssl-fallback.key; |
||||||
|
|
||||||
|
proxy_set_header Host $host; |
||||||
|
proxy_http_version 1.1; |
||||||
|
proxy_intercept_errors off; |
||||||
|
|
||||||
|
client_max_body_size 0; |
||||||
|
|
||||||
|
proxy_connect_timeout 600; |
||||||
|
proxy_send_timeout 600; |
||||||
|
proxy_read_timeout 600; |
||||||
|
send_timeout 600; |
||||||
|
|
||||||
|
location / { |
||||||
|
proxy_pass http://88.99.161.26:31653; |
||||||
|
proxy_set_header Upgrade $http_upgrade; |
||||||
|
proxy_set_header Connection 'upgrade'; |
||||||
|
proxy_set_header Host $host; |
||||||
|
proxy_cache_bypass $http_upgrade; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue