def __init__(self): InstallCommand.__init__(self) self.packages = "munin-node" self.add_package(self.packages) self.add_file('/etc/munin/munin-node.conf', ck_func=self.check_munin_master_ip, fix_func=self.fix_munin_master_ip) self.master_ip = self.LOCIP conf = CONFIG.get() if not CONFIG.is_set(self.NAME,'master_ip'): self.master_ip = None else: self.master_ip = conf[self.NAME]['master_ip']
def __init__(self): InstallCommand.__init__(self) self.cron_acl_sudo = "#!/bin/sh" with open(files.get_rel_path("data/cron_acl.tpl")) as f: cron_acl_tpl = Template(f.read()) self.cron_acl_sudo = cron_acl_tpl.safe_substitute(group="sudo", site_path="/data/www") self.cron_acl_dev_team = "#!/bin/sh" if CONFIG.is_set('site','ldap_dev_team'): with open(files.get_rel_path("data/cron_dev_team.tpl")) as f: cron_acl_tpl = Template(f.read()) self.cron_acl_dev_team = cron_acl_tpl.safe_substitute(group=CONF_MAP('site','ldap_dev_team')) self.packages = "acl" self.add_package(self.packages) self.add_folder('/etc/cron.acl') self.add_file('/etc/crontab', ck_func=self.check_acl_crontab, fix_func=self.fix_acl_crontab) self.add_file('/etc/cron.acl/sudo', ck_func=self.check_perm_cron, fix_func=self.fix_perm_cron, perm={'u':'rx', 'g':'rx', 'o':'rx'}) self.add_file('/etc/cron.acl/ldap_dev_team', ck_func=self.check_perm_dev_team, fix_func=self.fix_perm_dev_team, perm={'u':'rx', 'g':'rx', 'o':'rx'})
def fix_group_allow(self, element): if not files.contains(element['name'], '"domain admins"'): files.append(element['name'], '\n"domain admins"') if CONFIG.is_set('site','ldap_dev_team'): ldap_dev_team_val = '\n%s' % CONF_MAP('site','ldap_dev_team') if not files.contains(element['name'], ldap_dev_team_val): files.append(element['name'], ldap_dev_team_val)
def do(self, args=[]): completed = InstallCommand.do(self,args) if 'check' not in args and 'fix' not in args: MySQLCommand().do(['reset_root_pass']) admin_mail = inputs.get_input_string(t("What is the admin mail?"), CONF_MAP('mail','admin_mail')) smtp_server = inputs.get_input_string(t("What is the smtp server to use?"), CONF_MAP('mail','smtp_server')) CONFIG.mod('mail','admin_mail', admin_mail) CONFIG.mod('mail','smtp_server', smtp_server) CONFIG.save()
def do(self, args=[]): completed = InstallCommand.do(self,args) if inputs.get_input_yesno(t("Do you want to configure centrify/ldap now?")): if inputs.get_input_yesno(t("Will this machine use Active Directory?")): domain_name = inputs.get_input_string(t("What is the domain name?"), CONF_MAP('ldap','domain')) domain_controller = inputs.get_input_string(t("What is the address of the domain controller?"), CONF_MAP('ldap','dc')) domain_read_user = inputs.get_input_string(t("What is the ldap reader username?"), CONF_MAP('ldap','ldap_reader')) domain_read_pass = inputs.get_password(t("What is the ldap reader password?"),validate=False) domain_default_ou = inputs.get_input_string(t("What is the ldap default OU for uwsa?"), CONF_MAP('ldap','uwsa_ou')) CONFIG.mod('ldap','enabled', True) CONFIG.mod('ldap','domain', domain_name) CONFIG.mod('ldap','dc', domain_controller) CONFIG.mod('ldap','ldap_reader', domain_read_user) CONFIG.mod('ldap','ldap_reader_pass', domain_read_pass) CONFIG.mod('ldap','uwsa_ou', domain_default_ou) if not CONF_MAP('centrify', 'joined') and inputs.get_input_yesno(t("Do you want to join the Active Directory now?")): domain_admin_user = inputs.get_input_string(t("What is the domain admin username?")) domain_admin_pass = inputs.get_password(t("What is the domain admin password?"),confirm=False, validate=False) cmd_list = [ {'command' : 'adjoin -w --force --user %s --password %s %s' % (domain_admin_user, domain_admin_pass, domain_name), 'anonymous' : 'adjoin -w --force --user %s --password XXXXXXXXXXXXX %s' % (domain_admin_user, domain_name), 'success_code' : [0,8], }, 'service centrifydc start', ] completed, pinfo = core.exec_cmd_list(cmd_list) L.info(pinfo['stdout']) if not completed: raise Exception(t("Error in installation!"), self.NAME) CONFIG.mod('centrify','joined', "True" ) CONFIG.save() return completed
def check_group_allow(self, element): is_ok = True if CONFIG.is_set('site','ldap_dev_team'): is_ok &= files.contains(element['name'], '%s' % CONF_MAP('site','ldap_dev_team')) is_ok &= files.contains(element['name'], '"domain admins"') return is_ok
def pre_install(self): conf = CONFIG.get() CONFIG.mod(self.NAME, "installed", True)