def fix_munin_master_ip(self, element): if self.master_ip: mip = "allow ^%s$\n" % self.master_ip.replace('.','\.') loc_n_mip = LOCIP + mip if not files.contains(element['name'], loc_n_mip): files.replace_in(element['name'], self.LOCIP, loc_n_mip)
def fix_grub(self, element): files.replace_in(element['name'], '#GRUB_GFXMODE=640x480\n', 'GRUB_GFXMODE=1024x768\nGRUB_GFXPAYLOAD_LINUX=1024x768\n') cmd_list = [ "update-grub", ] completed, pinfo = core.exec_cmd_list(cmd_list) if not completed: raise Exception(t("Error in installation!"), element['name'])
def fix_centrify_conf(self, element): if CONF_MAP('centrify', 'pam_allow_enabled'): if not files.contains(element['name'], '\npam.allow.users: file:/etc/centrifydc/users.allow\n'): files.replace_in(element['name'], '\n# pam.allow.users: file:/etc/centrifydc/users.allow\n', '\npam.allow.users: file:/etc/centrifydc/users.allow\n') if not files.contains(element['name'], '\npam.allow.groups: file:/etc/centrifydc/groups.allow\n'): files.replace_in(element['name'], '\n# pam.allow.groups: file:/etc/centrifydc/groups.allow\n', '\npam.allow.groups: file:/etc/centrifydc/groups.allow\n')
def fix_centrifydc(self, element): files.replace_in('/etc/apt/sources.list', '# deb http://archive.canonical.com/ubuntu precise partner', 'deb http://archive.canonical.com/ubuntu precise partner') cmd_list = [ 'apt-get update', "bash -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y centrifydc'", ] completed, pinfo = core.exec_cmd_list(cmd_list) if not completed: raise Exception(t("Error in installation!"), element['name'])
def move_mysql(self, element): if not files.contains('/etc/apparmor.d/usr.sbin.mysqld', '/data/mysql/'): files.replace_in('/etc/apparmor.d/usr.sbin.mysqld', '/var/lib/mysql/', '/data/mysql/') if not files.realpath('/var/lib/mysql/') == '/data/mysql': cmd_list = [ "/etc/init.d/mysql stop", "mv /var/lib/mysql/ /data/", "ln -s /data/mysql /var/lib/mysql", "chown -h mysql:mysql /var/lib/mysql", "service apparmor reload", "/etc/init.d/mysql start", ] completed, pinfo = core.exec_cmd_list(cmd_list) if not completed: raise Exception(t("Error in installation!"), element['name'])
def run(self): print "pre install" _install.run(self) #script link source = "%s/uwsas/uwsa.py" % self.install_lib link = "/usr/local/bin/uwsa" if not files.exists(link): files.symlink(source,link) files.chmod(link, u="rx",g="rx",o="rx") #validate v0.3.1 old path if files.exists("/usr/local/lib/uwsa") and \ inputs.get_input_yesno(t("The old uwsa path exists. Do you want to move its content to new destination?")): cmd_list = [ "bash -c 'mkdir -p /var/lib/uwsa'", "bash -c 'cp -fr /usr/local/lib/uwsa/* /var/lib/uwsa/'", ] completed, pinfo = core.exec_cmd_list(cmd_list) if completed: cmd_list = [ "bash -c 'mv /usr/local/lib/uwsa /usr/local/lib/uwsa_to_delete'", ] completed, pinfo = core.exec_cmd_list(cmd_list) files.replace_in('/etc/uwsa/uwsa.conf','/usr/local/lib/uwsa','/var/lib/uwsa') #validate v0.4 remove mysql_xxx in conf all_conf = files.ls("/var/lib/uwsa/site/*") for f in all_conf: if files.is_file(f): files.replace_in(f,'mysql_schema','schema') files.replace_in(f,'mysql_user','user') files.replace_in(f,'mysql_pass','pass') #install prereque dependencies = "python-ldap python-iniparse python-mysqldb" print t("Will install"), dependencies cmd_list = [ 'apt-get update', "bash -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y %s'" % dependencies, ] completed, pinfo = core.exec_cmd_list(cmd_list) if not completed: raise Exception(t("Cannot install uwsa dependencies! %s" % dependencies)) print t("post install DONE!")
def fix_secure_php(self, element): if not files.contains(element['name'], '\nexpose_php = Off\n'): files.replace_in(element['name'], '\nexpose_php = On\n', '\nexpose_php = Off\n') if CONF_MAP('site', 'php_enhanced_security'): if not files.contains(element['name'], self.dis_fun ): files.replace_in(element['name'], self.org_dis_fun, self.dis_fun) else: files.replace_in(element['name'], self.dis_fun, self.org_dis_fun)
def fix_secure(self, element): if not files.contains(element['name'], '\nServerTokens Prod'): files.replace_in(element['name'], 'ServerTokens OS', 'ServerTokens Prod') if not files.contains(element['name'], '\nServerSignature Off'): files.replace_in(element['name'], '#ServerSignature Off', 'ServerSignature Off') if not files.contains(element['name'], '\n#ServerSignature On'): files.replace_in(element['name'], 'ServerSignature On', '#ServerSignature On') if not files.contains(element['name'], self.root_directive): files.append(element['name'], self.root_directive)
def fix_common_session(self, element): if not files.contains(element['name'], '\nsession\trequired\tpam_script.so\trunas=root\n'): files.replace_in(element['name'], 'session\trequired\tpam_unix.so', 'session\trequired\tpam_script.so\trunas=root\nsession\trequired\tpam_unix.so\n')
def fix_ufw(self, element): files.replace_in(element['name'], '\n#& ~\n', '\n& ~\n')
def fix_backup(self, element): files.replace_in(element['name'], 'BACKUPDIR="/var/lib/automysqlbackup"', 'BACKUPDIR="/data/automysqlbackup"', )