File manager - Edit - /home/newsbmcs.com/public_html/static/img/logo/serviceManager.py.tar
Back
usr/local/CyberCP/manageServices/serviceManager.py 0000644 00000025242 15030330152 0016174 0 ustar 00 import os.path import sys import django sys.path.append('/usr/local/CyberCP') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") django.setup() from random import randint from plogical.processUtilities import ProcessUtilities from dns.models import Supermasters from manageServices.models import SlaveServers import argparse from serverStatus.serverStatusUtil import ServerStatusUtil from plogical import CyberCPLogFileWriter as logging import subprocess class ServiceManager: slaveConfPath = '/home/cyberpanel/slaveConf' def __init__(self, extraArgs): self.extraArgs = extraArgs def managePDNS(self): type = self.extraArgs['type'] if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: path = '/etc/pdns/pdns.conf' else: path = '/etc/powerdns/pdns.conf' data = ProcessUtilities.outputExecutioner('sudo cat ' + path).splitlines() #data = subprocess.check_output(shlex.split('sudo cat ' + path)).decode("utf-8").splitlines() if type == 'MASTER': counter = 0 ipsString = '' ipStringNoSubnet = '' for items in SlaveServers.objects.all(): if items.slaveServerIP: ipsString = ipsString + '%s/32, ' % (items.slaveServerIP) ipStringNoSubnet = ipStringNoSubnet + '%s, ' % (items.slaveServerIP) ipsString = ipsString.rstrip(', ') ipStringNoSubnet = ipStringNoSubnet.rstrip(', ') tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) writeToFile = open(tempPath, 'w') for items in data: if items.find('allow-axfr-ips') > -1: continue if items.find('also-notify') > -1: continue if items.find('daemon=') > -1: continue if items.find('disable-axfr') > -1: continue if items.find('slave') > -1: continue if items.find('master') > -1: continue counter = counter + 1 writeToFile.writelines(items + '\n') writeToFile.writelines('allow-axfr-ips=' + ipsString + '\n') writeToFile.writelines('also-notify=' + ipStringNoSubnet + '\n') writeToFile.writelines('daemon=no\n') writeToFile.writelines('disable-axfr=no\n') writeToFile.writelines('primary=yes\n') writeToFile.close() command = 'sudo mv ' + tempPath + ' ' + path ProcessUtilities.executioner(command) else: import os if not os.path.exists(ServiceManager.slaveConfPath): writeToFile = open(ServiceManager.slaveConfPath, 'w') writeToFile.write('configured') writeToFile.close() counter = 0 tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) writeToFile = open(tempPath, 'w') for items in data: if items.find('allow-axfr-ips') > -1: continue if items.find('also-notify') > -1: continue if items.find('daemon=') > -1: continue if items.find('disable-axfr') > -1: continue if items.find('slave') > -1: continue counter = counter + 1 writeToFile.writelines(items + '\n') slaveData = """ secondary=yes daemon=yes disable-axfr=yes guardian=yes local-address=0.0.0.0 local-port=53 prmary=no xfr-cycle-interval=60 setgid=pdns setuid=pdns autosecondary=yes """ writeToFile.writelines(slaveData) writeToFile.close() command = 'sudo mv ' + tempPath + ' ' + path ProcessUtilities.executioner(command) for items in Supermasters.objects.all(): items.delete() Supermasters(ip=self.extraArgs['masterServerIP'], nameserver=self.extraArgs['slaveServerNS'], account='').save() @staticmethod def InstallElasticSearch(): statusFile = open(ServerStatusUtil.lswsInstallStatusPath, 'w') if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch' ServerStatusUtil.executioner(command, statusFile) repoPath = '/etc/yum.repos.d/elasticsearch.repo' content = ''' [elasticsearch] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=0 autorefresh=1 type=rpm-md ''' writeToFile = open(repoPath, 'w') writeToFile.write(content) writeToFile.close() command = 'yum install --enablerepo=elasticsearch elasticsearch -y' ServerStatusUtil.executioner(command, statusFile) else: command = 'wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -' subprocess.call(command, shell=True) command = 'apt-get install apt-transport-https -y' ServerStatusUtil.executioner(command, statusFile) command = 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list' subprocess.call(command, shell=True) command = 'apt-get update -y' ServerStatusUtil.executioner(command, statusFile) command = 'apt-get install elasticsearch -y' ServerStatusUtil.executioner(command, statusFile) ### Tmp folder configurations command = 'mkdir -p /home/elasticsearch/tmp' ServerStatusUtil.executioner(command, statusFile) command = 'chown elasticsearch:elasticsearch /home/elasticsearch/tmp' ServerStatusUtil.executioner(command, statusFile) jvmOptions = '/etc/elasticsearch/jvm.options' writeToFile = open(jvmOptions, 'a') writeToFile.write('-Djava.io.tmpdir=/home/elasticsearch/tmp\n') writeToFile.close() command = 'systemctl enable elasticsearch' ServerStatusUtil.executioner(command, statusFile) command = 'systemctl start elasticsearch' ServerStatusUtil.executioner(command, statusFile) command = 'touch /home/cyberpanel/elasticsearch' ServerStatusUtil.executioner(command, statusFile) logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Packages successfully installed.[200]\n", 1) return 0 @staticmethod def RemoveElasticSearch(): statusFile = open(ServerStatusUtil.lswsInstallStatusPath, 'w') if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch' ServerStatusUtil.executioner(command, statusFile) repoPath = '/etc/yum.repos.d/elasticsearch.repo' try: os.remove(repoPath) except: pass command = 'yum erase elasticsearch -y' ServerStatusUtil.executioner(command, statusFile) else: try: os.remove('/etc/apt/sources.list.d/elastic-7.x.list') except: pass command = 'apt-get remove elasticsearch -y' ServerStatusUtil.executioner(command, statusFile) ### Tmp folder configurations command = 'rm -rf /home/elasticsearch/tmp' ServerStatusUtil.executioner(command, statusFile) command = 'rm -f /home/cyberpanel/elasticsearch' ServerStatusUtil.executioner(command, statusFile) logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "ElasticSearch successfully removed.[200]\n", 1) return 0 @staticmethod def InstallRedis(): statusFile = open(ServerStatusUtil.lswsInstallStatusPath, 'w') if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'yum install redis -y' ServerStatusUtil.executioner(command, statusFile) else: command = 'DEBIAN_FRONTEND=noninteractive apt-get install redis-server -y' ServerStatusUtil.executioner(command, statusFile) command = 'systemctl enable redis' ServerStatusUtil.executioner(command, statusFile) command = 'systemctl start redis' ServerStatusUtil.executioner(command, statusFile) command = 'touch /home/cyberpanel/redis' ServerStatusUtil.executioner(command, statusFile) logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Redis successfully installed.[200]\n", 1) return 0 @staticmethod def RemoveRedis(): statusFile = open(ServerStatusUtil.lswsInstallStatusPath, 'w') if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'yum erase redis -y' ServerStatusUtil.executioner(command, statusFile) else: command = 'apt-get remove redis-server -y' ServerStatusUtil.executioner(command, statusFile) command = 'rm -f /home/cyberpanel/redis' ServerStatusUtil.executioner(command, statusFile) logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Redis successfully removed.[200]\n", 1) return 0 def main(): parser = argparse.ArgumentParser(description='CyberPanel Application Manager') parser.add_argument('--function', help='Function') args = vars(parser.parse_args()) if args["function"] == "InstallElasticSearch": ServiceManager.InstallElasticSearch() elif args["function"] == "RemoveElasticSearch": ServiceManager.RemoveElasticSearch() elif args["function"] == "InstallRedis": ServiceManager.InstallRedis() elif args["function"] == "RemoveRedis": ServiceManager.RemoveRedis() if __name__ == "__main__": main()
| ver. 1.4 |
Github
|
.
| PHP 8.2.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings