refactor: install code for dovecot/postfix on ubuntu20

This commit is contained in:
Usman Nasir
2020-12-18 01:02:49 +05:00
parent 4380adb751
commit db83fb9530
2 changed files with 65 additions and 106 deletions

View File

@@ -14,7 +14,6 @@ import argparse
import json import json
from CLScript.CLMain import CLMain from CLScript.CLMain import CLMain
class CloudLinuxResellers(CLMain): class CloudLinuxResellers(CLMain):
def __init__(self, id, name): def __init__(self, id, name):

View File

@@ -766,28 +766,21 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
command = 'dnf install --enablerepo=gf-plus postfix3 postfix3-mysql -y' command = 'dnf install --enablerepo=gf-plus postfix3 postfix3-mysql -y'
else: else:
command = 'apt-get -y debconf-utils' # command = 'apt-get -y debconf-utils'
preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) # preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR)
file_name = self.cwd + '/pf.unattend.text' # file_name = self.cwd + '/pf.unattend.text'
pf = open(file_name, 'w') # pf = open(file_name, 'w')
pf.write('postfix postfix/mailname string ' + str(socket.getfqdn() + '\n')) # pf.write('postfix postfix/mailname string ' + str(socket.getfqdn() + '\n'))
pf.write('postfix postfix/main_mailer_type string "Internet Site"\n') # pf.write('postfix postfix/main_mailer_type string "Internet Site"\n')
pf.close() # pf.close()
command = 'debconf-set-selections ' + file_name # command = 'debconf-set-selections ' + file_name
preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) # preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR)
command = 'apt-get -y install postfix' command = 'apt-get -y install postfix postfix-mysql'
# os.remove(file_name) # os.remove(file_name)
preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR)
if self.distro == centos or self.distro == cent8:
pass
else:
command = 'apt-get -y install dovecot-imapd dovecot-pop3d postfix-mysql'
preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR)
## ##
if self.distro == centos: if self.distro == centos:
@@ -795,42 +788,42 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
elif self.distro == cent8: elif self.distro == cent8:
command = 'dnf install --enablerepo=gf-plus dovecot23 dovecot23-mysql -y' command = 'dnf install --enablerepo=gf-plus dovecot23 dovecot23-mysql -y'
else: else:
command = 'apt-get -y install dovecot-mysql' command = 'apt-get -y install dovecot-mysql dovecot-imapd dovecot-pop3d'
preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR)
if self.distro != centos: # if self.distro != centos:
command = 'curl https://repo.dovecot.org/DOVECOT-REPO-GPG | gpg --import' # command = 'curl https://repo.dovecot.org/DOVECOT-REPO-GPG | gpg --import'
subprocess.call(command, shell=True) # subprocess.call(command, shell=True)
#
command = 'gpg --export ED409DA1 > /etc/apt/trusted.gpg.d/dovecot.gpg' # command = 'gpg --export ED409DA1 > /etc/apt/trusted.gpg.d/dovecot.gpg'
subprocess.call(command, shell=True) # subprocess.call(command, shell=True)
#
debPath = '/etc/apt/sources.list.d/dovecot.list' # debPath = '/etc/apt/sources.list.d/dovecot.list'
writeToFile = open(debPath, 'w') # writeToFile = open(debPath, 'w')
writeToFile.write('deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/bionic bionic main\n') # writeToFile.write('deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/bionic bionic main\n')
writeToFile.close() # writeToFile.close()
#
try: # try:
command = 'apt update -y' # command = 'apt update -y'
subprocess.call(command, shell=True) # subprocess.call(command, shell=True)
except: # except:
pass # pass
#
try: # try:
command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y' # command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y'
subprocess.call(command, shell=True) # subprocess.call(command, shell=True)
#
command = 'dpkg --configure -a' # command = 'dpkg --configure -a'
subprocess.call(command, shell=True) # subprocess.call(command, shell=True)
#
command = 'apt --fix-broken install -y' # command = 'apt --fix-broken install -y'
subprocess.call(command, shell=True) # subprocess.call(command, shell=True)
#
command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y' # command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y'
subprocess.call(command, shell=True) # subprocess.call(command, shell=True)
except: # except:
pass # pass
except BaseException as msg: except BaseException as msg:
logging.InstallLog.writeToFile('[ERROR] ' + str(msg) + " [install_postfix_davecot]") logging.InstallLog.writeToFile('[ERROR] ' + str(msg) + " [install_postfix_davecot]")
@@ -845,20 +838,14 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
os.chdir(self.cwd) os.chdir(self.cwd)
if mysql == 'Two': mysql_virtual_domains = "email-configs-one/mysql-virtual_domains.cf"
mysql_virtual_domains = "email-configs/mysql-virtual_domains.cf" mysql_virtual_forwardings = "email-configs-one/mysql-virtual_forwardings.cf"
mysql_virtual_forwardings = "email-configs/mysql-virtual_forwardings.cf" mysql_virtual_mailboxes = "email-configs-one/mysql-virtual_mailboxes.cf"
mysql_virtual_mailboxes = "email-configs/mysql-virtual_mailboxes.cf" mysql_virtual_email2email = "email-configs-one/mysql-virtual_email2email.cf"
mysql_virtual_email2email = "email-configs/mysql-virtual_email2email.cf" davecotmysql = "email-configs-one/dovecot-sql.conf.ext"
davecotmysql = "email-configs/dovecot-sql.conf.ext"
else:
mysql_virtual_domains = "email-configs-one/mysql-virtual_domains.cf"
mysql_virtual_forwardings = "email-configs-one/mysql-virtual_forwardings.cf"
mysql_virtual_mailboxes = "email-configs-one/mysql-virtual_mailboxes.cf"
mysql_virtual_email2email = "email-configs-one/mysql-virtual_email2email.cf"
davecotmysql = "email-configs-one/dovecot-sql.conf.ext"
### update password:
### update password:
data = open(davecotmysql, "r").readlines() data = open(davecotmysql, "r").readlines()
@@ -875,8 +862,6 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
else: else:
writeDataToFile.writelines(items) writeDataToFile.writelines(items)
# if self.distro == ubuntu:
# os.fchmod(writeDataToFile.fileno(), stat.S_IRUSR | stat.S_IWUSR)
writeDataToFile.close() writeDataToFile.close()
@@ -894,9 +879,6 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
else: else:
writeDataToFile.writelines(items) writeDataToFile.writelines(items)
# if self.distro == ubuntu:
# os.fchmod(writeDataToFile.fileno(), stat.S_IRUSR | stat.S_IWUSR)
writeDataToFile.close() writeDataToFile.close()
### update password: ### update password:
@@ -913,9 +895,6 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
else: else:
writeDataToFile.writelines(items) writeDataToFile.writelines(items)
# if self.distro == ubuntu:
# os.fchmod(writeDataToFile.fileno(), stat.S_IRUSR | stat.S_IWUSR)
writeDataToFile.close() writeDataToFile.close()
### update password: ### update password:
@@ -932,9 +911,6 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
else: else:
writeDataToFile.writelines(items) writeDataToFile.writelines(items)
# if self.distro == ubuntu:
# os.fchmod(writeDataToFile.fileno(), stat.S_IRUSR | stat.S_IWUSR)
writeDataToFile.close() writeDataToFile.close()
### update password: ### update password:
@@ -951,9 +927,6 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
else: else:
writeDataToFile.writelines(items) writeDataToFile.writelines(items)
# if self.distro == ubuntu:
# os.fchmod(writeDataToFile.fileno(), stat.S_IRUSR | stat.S_IWUSR)
writeDataToFile.close() writeDataToFile.close()
@@ -1060,37 +1033,24 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout';
# Cleanup config files for ubuntu # Cleanup config files for ubuntu
if self.distro == ubuntu: if self.distro == ubuntu:
preFlightsChecks.stdOut("Cleanup postfix/dovecot config files", 1) preFlightsChecks.stdOut("Cleanup postfix/dovecot config files", 1)
if mysql == 'Two':
self.centos_lib_dir_to_ubuntu("email-configs/master.cf", "/usr/libexec/", "/usr/lib/") self.centos_lib_dir_to_ubuntu("email-configs-one/master.cf", "/usr/libexec/", "/usr/lib/")
self.centos_lib_dir_to_ubuntu("email-configs/main.cf", "/usr/libexec/postfix", self.centos_lib_dir_to_ubuntu("email-configs-one/main.cf", "/usr/libexec/postfix",
"/usr/lib/postfix/sbin") "/usr/lib/postfix/sbin")
else:
self.centos_lib_dir_to_ubuntu("email-configs-one/master.cf", "/usr/libexec/", "/usr/lib/")
self.centos_lib_dir_to_ubuntu("email-configs-one/main.cf", "/usr/libexec/postfix",
"/usr/lib/postfix/sbin")
########### Copy config files ########### Copy config files
if mysql == 'Two': shutil.copy("email-configs-one/mysql-virtual_domains.cf", "/etc/postfix/mysql-virtual_domains.cf")
shutil.copy("email-configs/mysql-virtual_domains.cf", "/etc/postfix/mysql-virtual_domains.cf") shutil.copy("email-configs-one/mysql-virtual_forwardings.cf",
shutil.copy("email-configs/mysql-virtual_forwardings.cf", "/etc/postfix/mysql-virtual_forwardings.cf") "/etc/postfix/mysql-virtual_forwardings.cf")
shutil.copy("email-configs/mysql-virtual_mailboxes.cf", "/etc/postfix/mysql-virtual_mailboxes.cf") shutil.copy("email-configs-one/mysql-virtual_mailboxes.cf", "/etc/postfix/mysql-virtual_mailboxes.cf")
shutil.copy("email-configs/mysql-virtual_email2email.cf", "/etc/postfix/mysql-virtual_email2email.cf") shutil.copy("email-configs-one/mysql-virtual_email2email.cf",
shutil.copy("email-configs/main.cf", main) "/etc/postfix/mysql-virtual_email2email.cf")
shutil.copy("email-configs/master.cf", master) shutil.copy("email-configs-one/main.cf", main)
shutil.copy("email-configs/dovecot.conf", davecot) shutil.copy("email-configs-one/master.cf", master)
shutil.copy("email-configs/dovecot-sql.conf.ext", davecotmysql) shutil.copy("email-configs-one/dovecot.conf", davecot)
else: shutil.copy("email-configs-one/dovecot-sql.conf.ext", davecotmysql)
shutil.copy("email-configs-one/mysql-virtual_domains.cf", "/etc/postfix/mysql-virtual_domains.cf")
shutil.copy("email-configs-one/mysql-virtual_forwardings.cf",
"/etc/postfix/mysql-virtual_forwardings.cf")
shutil.copy("email-configs-one/mysql-virtual_mailboxes.cf", "/etc/postfix/mysql-virtual_mailboxes.cf")
shutil.copy("email-configs-one/mysql-virtual_email2email.cf",
"/etc/postfix/mysql-virtual_email2email.cf")
shutil.copy("email-configs-one/main.cf", main)
shutil.copy("email-configs-one/master.cf", master)
shutil.copy("email-configs-one/dovecot.conf", davecot)
shutil.copy("email-configs-one/dovecot-sql.conf.ext", davecotmysql)
######################################## Permissions ######################################## Permissions