# -*- coding: utf-8 -*- import base64 import json import os import requests import sys import random url = os.getenv('OVPN_API_URL') pathfile = '/srv/openvpn/client.ovpn' headers = { 'Content-Type': "application/json", 'cache-control': "no-cache", } # Get Token (POST) try: user = "novnc" password = "ka29UvE3" payload = "{\n \"user\": \"%s\",\n \"password\": \"%s\"\n }" % (user,password) url = os.getenv('OVPN_API_URL_AUTH') response = requests.request("POST", url, data=payload, headers=headers) except requests.exceptions.RequestException as e: print(e) sys.exit(1) result = json.loads(response.text) headers = { 'Content-Type': "application/json", 'cache-control': "no-cache", } # Get Client (POST) try: num = "novnc-%s" % random.randint(1,101) payload = "{\n \"num\": \"%s\"\n}" % num response = requests.request("POST", url, data=payload, headers=headers) except requests.exceptions.RequestException as e: print(e) sys.exit(1) print(response) result = json.loads(response.text) conf = base64.b64decode(result['client_ovpn']) print(conf.decode("utf-8")) with open(pathfile,'w') as file: src = conf.decode("utf-8").replace("openvpn-srv.kube.mytuffigorapidex.xyz 5943" ,"openvpn-srv 1194") for line in src: file.write(line)