#!/usr/bin/python3
import os
import shutil
import random
from color import *
import time
import getpass
import hashlib

# ----------------- config section ------------------------
sample_string               = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
password_len                = 20
requare_operation_system    = "Ubuntu 18.04.4 LTS"
version                     = "version 24092021"
# ------------------ end config section -------------------

# ------------------- file templates ----------------------
tmp_file_10periodic = [
                "APT::Periodic::Update-Package-Lists \"0\";\n",
                "APT::Periodic::Download-Upgradeable-Packages \"0\";\n",
                "APT::PerEVOiodic::AutocleanInterval \"0\";\n"
]

tmp_file_20auto_upgrades = [
                "APT::Periodic::Update-Package-Lists \"0\";\n",
                "APT::Periodic::Unattended-Upgrade \"0\";\n"
]

tmp_file_realase_upgrades = [
                "[DEFAULT]\n",
                "Prompt=never\n"
]

sysctl_add                = [
                "kernel.sysrq = 4\n"
]
#--------------------- end file templates ------------------

print (version)

if getpass.getuser() != 'root':
    print("Не вистачае привілеїв")
    exit(1)

current_dir = os.path.dirname(os.path.realpath(__file__))
lic_file_path = current_dir + "/sec_serv_config/license.lic"
ancor_file_path = current_dir + "/sec_serv_config/configuration-anchor.xml"


if os.path.isfile(lic_file_path):
    print("Знайдено ліцензію" + lic_file_path)
else:
    print(Color.F_Red,"Файл ліцензії не знайдено",Color.F_Default)
    print("Покладіть файл з назвою license.lic у теку " + current_dir + "/sec_serv_config/" )
    exit(-1)

if os.path.isfile(ancor_file_path):
    print("Знайдено якір конфігурації" + ancor_file_path)
else:
    print(Color.F_Red,"Файл якорю конфігурації не знайдено",Color.F_Default)
    print("Покладіть файл з назвою configuration-anchor.xml у теку " + current_dir + "/sec_serv_config/" )
    exit(-1)

print("running dir = ", current_dir)
print(Color.F_Red,"------------------------------------ УВАГА -----------------------------------------",Color.F_Default)
print("-------------------Результат роботи скрипту неможливо відминити---------------------")
print("----------- тому зробіть снапшоти чи резервні копії налаштованих ОС ----------------")
print("--------- якщо робота скрипта завершилася помилкою, відновіть всі ОС ---------------")
print("--- зі снапшотів чи резервних копій та спробуйте знову, проаналізувавши помилки ----")
print("-------------- під час розгортання, сервери буде перезавантажено -------------------")
input(Color.F_LightYellow+"------------------------- Нажміть Enter щоб почати ----------------------------------" + Color.F_Default)

while True:
     extend_log_answ = input(Color.F_LightYellow + "Чи бажаете ви бачити більш детальний лог під час встановлення? [Так / Ні]: " + Color.F_Default)
     print(extend_log_answ.lower().replace(" ",""))
     if extend_log_answ.lower().replace(" ", "") == "Так / Yes" or extend_log_answ.lower().replace(" ","") == "yes":
         print("Розширене логування під час встановлення вімкнено (дуже багато інформації)")
         extend_log_parametr = " -vvv "
         break
     elif extend_log_answ.lower().strip() =="Ні / No" or extend_log_answ.lower().strip() =="no":
         print("Розширене логування під час встановлення НЕ вімкнено")
         extend_log_parametr = " "
         break


#-----------------------Generating passwords------------------------------
db_msglog_pass               = "".join(random.sample(sample_string,password_len ))
db_zbx_pass                  = "".join(random.sample(sample_string,password_len ))
graylog_password_secret_conf = "".join(random.sample(sample_string,password_len ))
graylog_password_secret_conf = graylog_password_secret_conf.encode()
graylog_password_secret_conf = hashlib.sha256(graylog_password_secret_conf).hexdigest()

#-------------------------------END---------------------------------------

file_10periodic = open("/etc/apt/apt.conf.d/10periodic", 'w+')
file_10periodic.writelines(tmp_file_10periodic)
file_10periodic.close()

file_20auto_upgrades = open("/etc/apt/apt.conf.d/20auto-upgrades", 'w+')
file_20auto_upgrades.writelines(tmp_file_20auto_upgrades)
file_20auto_upgrades.close()

file_realase_upgrades = open("/etc/update-manager/release-upgrades", 'w+')
file_realase_upgrades.writelines(tmp_file_realase_upgrades)
file_realase_upgrades.close()

file_sysctl = open("/etc/sysctl.d/99-sysctl.conf", 'a')
file_sysctl.writelines(sysctl_add)
file_sysctl.close()


os.system("fuser -vk /var/lib/dpkg/lock")
shutil.copyfile("/etc/apt/sources.list", current_dir+"/sources.list.bac")
os.remove("/etc/apt/sources.list")
file = open("/etc/apt/sources.list",'a+')
file.writelines("deb http://dir-repo-p-01.trembita.gov.ua:82 certified trembita-member" + '\n')
file.close()
os.system("wget -O - http://dir-repo-p-01.trembita.gov.ua:82/repo.key.txt | sudo apt-key add -")
os.system("apt-get update")
#os.system("apt remove -y openssh-client") # delete new version
while True:
    fault_flag = os.system("apt install -y sshpass debconf-utils")
    if fault_flag == 0:
        break
    os.system("fuser -vk /var/lib/dpkg/lock")


print(Color.F_Green,"++++++++++++++++++++++ Конфігурація робочої станції адміністратора ++++++++++++++++++++++",Color.F_Default)
ip_admin_pc         = input(Color.F_LightYellow + "Введіть айпі адресу робочоі станції: " + Color.F_Default)
password_uxpadmin   = input(Color.F_LightYellow + "Введіть пароль для нового користівача uxpadmin: " + Color.F_Default)

print(Color.F_Green,"+++++++++++++++++++++ Конфігурація серверу аналізу журналів подій +++++++++++++++++++++",Color.F_Default)
while True:
    ip_log_serv         = input(Color.F_LightYellow + "Введіть айпі адресу серверу аналізу журналів подій: " + Color.F_Default)
    username_log_server = input(Color.F_LightYellow + "Введіть ім'я користувача для доступу до серверу: " + Color.F_Default)
    password_log_server = input(Color.F_LightYellow + "Введіть пароль для користувача " + username_log_server+" : " + Color.F_Default)
    answer              = os.system("sshpass -p"+password_log_server+" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 "+username_log_server+"@"+ip_log_serv+" cd")
    if answer == 0:
        break
    else:
        print(Color.F_Red,"УВАГА! Не можу підключитися до сервера!",Color.F_Default)
web_admin_pass      = input(Color.F_LightYellow + "Сгенеруйте пароль для веб-користувача admin у Graylog: " + Color.F_Default)
encoded_pass        = web_admin_pass.encode()
web_admin_pass_sha2 = hashlib.sha256(encoded_pass).hexdigest()
print(web_admin_pass_sha2)

print (Color.F_Green,"++++++++++++++++++++ Конфігуріція серверу баз даних та архівування ++++++++++++++++++++++",Color.F_Default)
while True:
    ip_db_server        = input(Color.F_LightYellow + "Введіть айпі адресу серверу баз даних та архівування: " + Color.F_Default)
    username_db_server  = input(Color.F_LightYellow + "Введіть ім'я користувача для доступу до серверу: " + Color.F_Default)
    password_db_server  = input(Color.F_LightYellow + "Введіть пароль для користувача " + username_db_server+" : " + Color.F_Default)
    answer = os.system("sshpass -p"+password_db_server+" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 "+username_db_server+"@"+ip_db_server+" cd")
    if answer == 0:
        break
    else:
        print(Color.F_Red,"УВАГА! Не можу підключитися до сервера!",Color.F_Default)
uxpadmin_password_verif_serv = input(Color.F_LightYellow + "Введіть пароль для користувача uxpadmin (буде створено): " + Color.F_Default)

print (Color.F_Green,"++++++++++++++++++++ Конфігурація шлюзу безпечного обміну +++++++++++++++++++++",Color.F_Default)
while True:
    ip_ss_server        = input(Color.F_LightYellow + "Введіть айпі адресу шлюзу безпечного обміну: "                       + Color.F_Default)
    username_ss_server  = input(Color.F_LightYellow + "Введіть ім'я користувача для доступу до серверу: "           + Color.F_Default)
    password_ss_server  = input(Color.F_LightYellow + "Введіть пароль для користувача " + username_ss_server+" : "  + Color.F_Default)
    answer = os.system("sshpass -p"+password_ss_server+" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 "+username_ss_server+"@"+ip_ss_server+" cd")
    if answer == 0:
        break
    else:
        print(Color.F_Red,"УВАГА! Не можу підключитися до сервера!",Color.F_Default)


uxpadmin_passwrd_sec_serv = input(Color.F_LightYellow + "Введіть пароль для користувача uxpadmin (буде створено): " + Color.F_Default)
cmp_url                  = input(Color.F_LightYellow + "Введіть адресу вашого АЦСК, наприклад ca.informjust.ua: " + Color.F_Default)

print(Color.F_Green,"-Перевірте чи усе вірно и ВИ не помилилися під час введення данних-",Color.F_Default)


while True:
     extend_log_answ = input(Color.F_LightYellow + "Чи бажаете ви встановити також засіб мониторингу ZABBIX  ( Так / Ні )? : " + Color.F_Default)
     print(extend_log_answ.lower().replace(" ",""))
     if extend_log_answ.lower().replace(" ", "") == "Так / Yes" or extend_log_answ.lower().replace(" ","") == "yes":
         print("Засіб мониторингу буде встановлено")
         zabbix_install = 1
         break
     elif extend_log_answ.lower().strip() =="Ні / No" or extend_log_answ.lower().strip() =="no":
         print("Засіб мониторингу НЕ буде встановлено")
         zabbix_install = 0
         break

if zabbix_install:
    print(Color.F_Green, "+++++++++++++++++++ Конфігурація засобу моніторингу ZABBIX ++++++++++++++++++++",
          Color.F_Default)
    while True:
        ip_zbx_server = input(Color.F_LightYellow + "Введіть айпі адресу засобу моніторингу ZABBIX: " + Color.F_Default)
        username_zbx_server = input(
            Color.F_LightYellow + "Введіть ім'я користувача для доступу до серверу: " + Color.F_Default)
        password_zbx_server = input(
            Color.F_LightYellow + "Введіть пароль для користувача " + username_zbx_server + " : " + Color.F_Default)
        answer = os.system(
            "sshpass -p" + password_zbx_server + " ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 " + username_zbx_server + "@" + ip_zbx_server + " cd")
        if answer == 0:
            break
        else:
            print(Color.F_Red, "УВАГА! Не можу підключитися до сервера!", Color.F_Default)

while True:
    answer = input(Color.F_LightYellow + "Для того щоб почати введіть [Так я погоджуюся / Yes], щоб завершити - [Ні]: " + Color.F_Default)
    print(answer.lower().replace(" ",""))
    if answer.lower().replace(" ", "") == "такяпогоджуюся" or answer.lower().replace(" ","") == "yes":
        print("Почали....")
        break
    elif answer.lower().strip() =="ні" or answer.lower().strip() =="no":
        exit(0)


tmp_file = ["[all:vars]\n",
            "ansible_connection=ssh\n",
            "ansible_python_interpreter=/usr/bin/python3\n",
            "\n",
            "[trembita]\n",
            ip_log_serv+" #Log server\n",
            ip_db_server+" #DB server\n",
            ip_ss_server+" #Sec server\n"
            ]

if zabbix_install:
    tmp_file.append(ip_zbx_server+" #ZABBIX server\n")


os.system("apt install -y ansible")
os.environ["ANSIBLE_HOST_KEY_CHECKING"]="False"
ansible_host = open(current_dir+"/hosts", 'w+')
ansible_host.writelines(tmp_file)
ansible_host.close()

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция проверки версий ОС ----------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

print("Перевірка версії ОС серверу аналізу журналів подій")

ansible_check_log_server_play = "ansible-playbook " + extend_log_parametr + " -i " + current_dir + "/hosts -l " + ip_log_serv + " " + current_dir + "/check_os_version -e \" ansible_connection=ssh ansible_user=" + username_log_server + " ansible_ssh_pass=" + password_log_server + " ansible_sudo_pass=" + password_log_server + " requare_operation_system=\\\"" + requare_operation_system + "\\\"\""

print(ansible_check_log_server_play)

ansible_check_log_server = os.system(ansible_check_log_server_play)
if not ansible_check_log_server == 0:
    print(Color.F_Red,"Версія не є"+requare_operation_system,Color.F_Default)

print("Перевірка версії ОС серверу баз даних та архівування")

ansible_check_db_server_play = "ansible-playbook " + extend_log_parametr + " -i "  + current_dir + "/hosts -l " + ip_db_server + " " + current_dir + "/check_os_version -e \" ansible_connection=ssh ansible_user=" + username_db_server + " ansible_ssh_pass=" + password_db_server + " ansible_sudo_pass=" + password_db_server + " requare_operation_system=\\\"" + requare_operation_system + "\\\"\""

print(ansible_check_db_server_play)

ansible_check_db_server = os.system(ansible_check_db_server_play)
if not ansible_check_db_server == 0:
    print(Color.F_Red,"Версія не є"+requare_operation_system,Color.F_Default)

print("Перевірка версії ОС шлюзу безпечного обміну")

ansible_check_ss_server_play = "ansible-playbook " + extend_log_parametr + "  -i " + current_dir + "/hosts -l " + ip_ss_server + " " + current_dir + "/check_os_version -e \" ansible_connection=ssh ansible_user=" + username_ss_server + " ansible_ssh_pass=" + password_ss_server + " ansible_sudo_pass=" + password_ss_server + " requare_operation_system=\\\"" + requare_operation_system + "\\\"\""

ansible_check_ss_server = os.system(ansible_check_ss_server_play)
if not ansible_check_ss_server == 0:
    print(Color.F_Red,"Версія не є"+requare_operation_system,Color.F_Default)

if zabbix_install:
    print("Перевірка версії ОС засобу моніторингу ZABBIX")

    ansible_check_zbx_server_play = "ansible-playbook " + extend_log_parametr + "  -i " + current_dir + "/hosts -l " + ip_zbx_server + " " + current_dir + "/check_os_version -e \" ansible_connection=ssh ansible_user=" + username_zbx_server + " ansible_ssh_pass=" + password_zbx_server + " ansible_sudo_pass=" + password_zbx_server + " requare_operation_system=\\\"" + requare_operation_system + "\\\"\""

    ansible_check_zbx_server = os.system(ansible_check_zbx_server_play)
    if not ansible_check_zbx_server == 0:
        print(Color.F_Red, "Версія не є" + requare_operation_system, Color.F_Default)
else:
    ansible_check_zbx_server = 0

if not (ansible_check_ss_server or ansible_check_db_server or ansible_check_log_server or ansible_check_zbx_server) == 0:
    exit(-1)
else:
    print ()
    print(Color.F_Green,"Перевірка версій завершена, усе добре, можемо починати",Color.F_Default)
    print ()

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция проверки версий ОС ----------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки сервера логирования -----------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

ansible_log_server_play = "ansible-playbook " + extend_log_parametr + " -i " + current_dir + "/hosts -l " + ip_log_serv + " " + current_dir + "/log_server_play -e \"run_dir=" + current_dir + " ansible_connection=ssh ansible_user=" + username_log_server + " ansible_ssh_pass=" + password_log_server + " ansible_sudo_pass=" + password_log_server + " graylog_password_secret_conf=" + graylog_password_secret_conf + " web_admin_pass_sha2=" + web_admin_pass_sha2+"\""

print (ansible_log_server_play)

ansible_return_code = os.system(ansible_log_server_play)
if ansible_return_code == 0:
    print ()
    print(Color.F_Green,"Гарні новини! Сервер аналізу журналів подій встановлено успішно!",Color.F_Default)
    print ()
else:
    print(Color.F_Red,"Ми не змогли встановити сервер журналів подій. Скопіюйте усе з терміналу та зверніться у ДІР :(",Color.F_Default)
    exit(-1)

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки сервера логирования -----------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки сервера баз даних  ------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

ansible_db_server_play = "ansible-playbook " + extend_log_parametr + " -i " + current_dir + "/hosts -l " + ip_db_server + " " + current_dir + "/db_server_play -e \"ansible_connection=ssh ansible_user=" + username_db_server + " ansible_ssh_pass=" + password_db_server + " ansible_sudo_pass=" + password_db_server + " sec_serv_ip=" + ip_ss_server + " run_dir=" + current_dir + " db_postgres_msglog_user_pass=" + db_msglog_pass + " uxpadmin_verifier_pass=" + uxpadmin_password_verif_serv + " db_serv_username=msglog_user db_serv_password=" + db_msglog_pass + "\""

print(ansible_db_server_play)

ansible_return_code = os.system(ansible_db_server_play)
if ansible_return_code == 0:
    print ()
    print(Color.F_Green,"Ще гарніші новини! Сервер баз даних та архівування встановлено!",Color.F_Default)
    print ()
else:
    print(Color.F_Red,"Сталася помилка при встановленні серверу баз даних та архівування. Скопіюйте усе з терміналу та зверніться у ДІР :(",Color.F_Default)
    exit(-1)

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки сервера баз даних  ------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки сервера ШБО  ------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

ansible_ss_server_play = "ansible-playbook " + extend_log_parametr + " -i " + current_dir + "/hosts -l " + ip_ss_server +" " + current_dir +"/sec_server_play  -e \"ansible_connection=ssh ansible_user=" + username_ss_server +" ansible_ssh_pass=" + password_ss_server +" ansible_sudo_pass=" + password_ss_server +" syslog_serv_ip=" + ip_log_serv +" admin_pc_ip=" + ip_admin_pc +" db_serv_ip=" + ip_db_server +" db_serv_username=msglog_user db_serv_password=" + db_msglog_pass +" run_dir=" + current_dir +" user_uxp_pass=" + uxpadmin_passwrd_sec_serv + " cmp_url=" + cmp_url + "\""

print(ansible_ss_server_play)

ansible_return_code = os.system(ansible_ss_server_play)
if ansible_return_code == 0:
    print ()
    print(Color.F_Green,"Встановлено шлюз безпечного обміну!",Color.F_Default)
    print ()
else:
    print(Color.F_Red,"Помилка при встановленні шлюзу безпечного обміну. Скопіюйте усе з терміналу та зверніться у ДІР :(",Color.F_Default)
    exit(-1)

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки сервера ШБО  ------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

#-----------------------------------------------------------------------------------------------------------------------
#--------------------------- Секция установки сервера ZABBIX  ----------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------
if zabbix_install:

    ansible_zbx_server_play = "ansible-playbook " + extend_log_parametr + " -i " + current_dir + "/hosts -l " + ip_zbx_server +" " + current_dir +"/zabbix_server_play  -e \"ansible_connection=ssh ansible_user=" + username_zbx_server +" ansible_ssh_pass=" + password_zbx_server +" ansible_sudo_pass=" + password_zbx_server +"  run_dir=" + current_dir +" db_postgres_zabbix_user_pass=" + db_zbx_pass + "\""

    print(ansible_zbx_server_play)

    ansible_return_code = os.system(ansible_zbx_server_play)
    if ansible_return_code == 0:
        print ()
        print(Color.F_Green,"Встановлено засіб моніторингу ZABBIX!",Color.F_Default)
        print ()
    else:
        print(Color.F_Red,"Помилка при встановленні засобу моніторингу ZABBIX. Скопіюйте усе з терміналу та зверніться у ДІР :(",Color.F_Default)
        exit(-1)

#-----------------------------------------------------------------------------------------------------------------------
#--------------------------- Секция установки сервера ZABBIX  ----------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------


#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки админстанции ------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

os.system("apt update")
os.system("echo ua-adminserver  ua-adminserver/to_address   string root@localhost   | debconf-set-selections")
os.system("echo ua-adminserver  ua-adminserver/from_address string root@localhost   | debconf-set-selections")
os.system("echo postfix         postfix/mailname            string adminPC          | debconf-set-selections")
os.system("echo postfix         postfix/main_mailer_type    select Local only       | debconf-set-selections")
os.system("apt-get purge -y firefox")
os.system("apt install -y ua-adminserver")
os.system("uxp-ua-integritychecker.sh recalc_all")
os.system("/usr/share/uxp/uaic/scripts/_uxp-uaic-integritychecker.sh recalc exec")
os.system("uxp-ua-integritychecker.sh check")
os.system("echo \""+password_uxpadmin+'\\n'+password_uxpadmin+"\"| uxp-ua-add-admin-user.sh uxpadmin")

#-----------------------------------------------------------------------------------------------------------------------
#---------------------------- Секция установки админстанции ------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------

tmp_file_result = [ "У цьому файлі містяться логіни, паролі та адреси, які \n" ,
                    "було введено чи знегеровано під час інсталяції системи \"Трембіта\"\n" ,
                    "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n",
                    "",
                    "---------------------------------- Робоча станція адміністратора -------------\n",
                    "ІР-адреса ----------------------------- " + ip_admin_pc + "\n",
                    "Пароль для користувача uxpadmin ------- " + password_uxpadmin + "\n",
                    "----------------------------------------- Сервер аналізу журналів подій ------\n",
                    "ІР-адреса ----------------------------- " + ip_log_serv + "\n",
                    "Ім'я користувача(ssh) ----------------- " + username_log_server + "\n",
                    "Пароль користувача(ssh) --------------- " + password_log_server + "\n",
                    "Пароль для користувача admin (WEB) ---- " + web_admin_pass + "\n",
                    "---------------------------------------- Сервер баз даних та архівування -----\n",
                    "ІР-адреса ----------------------------- " + ip_db_server + "\n",
                    "Ім'я користувача(ssh) ----------------- " + username_db_server + "\n",
                    "Пароль користувача(ssh) --------------- " + password_db_server + "\n",
                    "Ім'я користувача сервісу verifier ----- uxpadmin\n",
                    "Пароль користувача сервісу verifier --- " + uxpadmin_password_verif_serv + "\n",
                    "Пароль користувача бази даних(msglog) - " + db_msglog_pass + "\n",
                    "---------------------------------------- Шлюз безпечного обміну --------------\n",
                    "ІР-адреса ----------------------------- " + ip_ss_server + "\n",
                    "Ім'я користувача(ssh) ----------------- " + username_ss_server + "\n",
                    "Пароль користувача(ssh) --------------- " + password_ss_server + "\n",
                    "Пароль для користувача uxpadmin ------- " + uxpadmin_passwrd_sec_serv + "\n"
                   ]

if zabbix_install:
    tmp_file_result.append(["----------------------------------Засіб мониторингу ZABBIX --------------\n" ,
                            "ІР-адреса ----------------------------- " + ip_zbx_server + "\n",
                            "Ім'я користувача(ssh) ----------------- " + username_zbx_server + "\n",
                            "Пароль користувача(ssh) --------------- " + password_zbx_server + "\n"
                            ])


result_file = open(current_dir+"/results.txt", 'w+')
result_file.writelines(tmp_file_result)
result_file.close()
print(Color.F_Green,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",Color.F_Default)
print(Color.F_Cyan,"------------------УВАГА---------------------------------",Color.F_Default)
print(Color.F_Green,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",Color.F_Default)
print("У файлі "+current_dir+"/results.txt ,")
print("містяться паролі. Збережіть цей файл у надійному місці.")
