73 lines
2.6 KiB
Python
73 lines
2.6 KiB
Python
import argparse
|
|
import configparser
|
|
import os
|
|
import pathlib
|
|
|
|
from conpeek_setup.file_generator import (generate_bind9, generate_env, generate_freeswitch,
|
|
generate_kamailio, generate_mariadb,
|
|
generate_metrics, generate_mongodb, generate_nginx,
|
|
generate_mail_relay, generate_rabbitmq,
|
|
generate_tokens, generate_cert)
|
|
|
|
from conpeek_setup import util
|
|
|
|
|
|
def validate_config(config):
|
|
sections_to_validate = [
|
|
"deployment_purpose",
|
|
"bind9",
|
|
"new_machine_network",
|
|
"machine_secrets",
|
|
"operator"
|
|
]
|
|
|
|
for section in sections_to_validate:
|
|
if not config.has_section(section):
|
|
util.print_red(f"No {section} section in config")
|
|
raise Exception(f"No {section} section in config")
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description="")
|
|
parser.add_argument("--action", type=str, required=True, help="Action")
|
|
parser.add_argument("--config", type=str, required=True, help="Path to the config file")
|
|
parser.add_argument("--output-path", type=str, required=False, help="Path to the output")
|
|
parser.add_argument("--dev", help="Developer mode", action="store_true")
|
|
|
|
args = parser.parse_args()
|
|
action = args.action
|
|
config = configparser.ConfigParser()
|
|
|
|
config_directory = args.config
|
|
if not os.path.abspath(config_directory):
|
|
config_directory = os.path.join(pathlib.Path(__file__).parent.resolve(), config_directory)
|
|
|
|
config.read(config_directory)
|
|
if args.output_path:
|
|
util.Settings.output_directory = args.output_path
|
|
|
|
validate_config(config)
|
|
generate_tokens.run(config)
|
|
|
|
if action == "mariadb" or action == "all":
|
|
generate_mariadb.run(config)
|
|
if action == "mongodb" or action == "all":
|
|
generate_mongodb.run(config)
|
|
if action == "rabbitmq" or action == "all":
|
|
generate_rabbitmq.run(config)
|
|
if action == "bind9" or action == "all":
|
|
generate_bind9.run(config, args.dev)
|
|
if action == "nginx" or action == "all":
|
|
generate_nginx.run(config, args.dev)
|
|
if action == "freeswitch" or action == "all":
|
|
generate_freeswitch.run(config)
|
|
if action == "kamailio" or action == "all":
|
|
generate_kamailio.run(config)
|
|
if action == "metrics" or action == "all":
|
|
generate_metrics.run(config)
|
|
if action == "mail_relay" or action == "all":
|
|
generate_mail_relay.run(config)
|
|
if action == "cert" or action == "all":
|
|
generate_cert.run(config)
|
|
if action == "env" or action == "all":
|
|
generate_env.run(config)
|