示例#1
0
def rsync_fortress():
    command = 'ssh root@%s -o ConnectTimeout=5 "python /opt/cmdb-script/rsync_backup.py"' % (
        configs.FORTRESS_HOST, )
    try:
        status, output = commands.getstatusoutput(command)
        if status != 0:
            logger.error(output)
            return False, output
        logger.info(output)
        return True, output
    except Exception, e:
        logger.error(str(e))
        return False, str(e)
示例#2
0
 def excute(self, **kwargs):
     ip = kwargs.get('ip', '')
     hostname = kwargs.get('hostname', '')
     if not ip or not hostname:
         return False, u'ip和hostname不能为空'
     command = 'ssh root@%s -o ConnectTimeout=2 "/usr/bin/python /opt/cmdb-script/change_hostname.py %s %s"' % (
         configs.FORTRESS_HOST, hostname, ip)
     logger.info(command)
     try:
         status, output = commands.getstatusoutput(command)
         if status != 0:
             logger.error(output)
             return False, output
         logger.info(output)
         result_dict = json.loads(output)
         if result_dict['success']:
             msg = "change %s hostname to %s success" % (ip, hostname)
             logger.info(msg)
         else:
             msg = "change %s hostname to %s error: %s" % (
                 ip, hostname, result_dict['msg'])
             logger.info(msg)
         return True, output
     except Exception, e:
         logger.error(str(e))
         return False, str(e)
示例#3
0
    def excute(self, **kwargs):
        username = kwargs.get('username', '')
        email = kwargs.get('email', '')
        users = User.objects.filter(username=username)
        if len(users) <= 0:
            return False, u'用户不存在'
        user = users[0]
        state, msg = FortressOps().addFortressUser(username, email)
        # 添加用户成功,则生成ssh免密密钥对
        if state:
            create_ssh_key(email, user.id, username)
        logger.info("task:" + msg)

        # 同步堡垒机数据
        rsync_fortress()
        return state, msg
示例#4
0
 def delUserKey(self, ip, role, username):
     command = 'ssh root@%s -o ConnectTimeout=2 "/usr/bin/python %s/auth.ssh_key.py del %s %s %s"' % (
         configs.FORTRESS_HOST, configs.REMOTE_CMDB_DIR, ip, role, username)
     logger.info(command)
     try:
         status, output = commands.getstatusoutput(command)
         if status != 0:
             logger.error(output)
             return False, output
         logger.info(output)
         result_dict = json.loads(output)[0]
         if result_dict['success'] == "true":
             return True, result_dict['msg']
         return False, result_dict['msg']
     except Exception, e:
         logger.error("add user key:" + str(e))
         return False, str(e)
示例#5
0
 def addFortressUser(self, username, email):
     m = md5()
     m.update(username + str(time.time()))
     password = m.hexdigest()[0:20]
     command = 'ssh root@%s -o ConnectTimeout=2 "/bin/sh %s/fortress/create.sh %s %s"' % (
         configs.FORTRESS_HOST, configs.REMOTE_CMDB_DIR, username, password)
     logger.info(command)
     try:
         status, output = commands.getstatusoutput(command)
         if status != 0:
             logger.error(output)
             return False, output
         logger.info(output)
         content = u'已为你开通堡垒机账号<br/>用户名为:' + username + u'<br/>密码为:' + password + u"<br/>堡垒机使用方式见:http://wiki.mwbyd.cn/pages/viewpage.action?pageId=6334750<br/>" \
                   + u"如有疑问请联系陈绍东,邮箱:[email protected],手机号:15921777942"
         send_mail(u'堡垒机开通通知',
                   '',
                   configs.EMAIL_USER, [email],
                   html_message=content)
         return True, output
     except Exception, e:
         logger.error(str(e))
         return False, str(e)