Example #1
0
def addprojectauto(request):

    projecthostinfo = getdatafromcmdb()
    putdatatodb(projecthostinfo)

    for host in projecthostinfo:
        host_info = host[1].split('_')
        host_name = host_info[2]
        host_ip = host[2]
        establishtrust(host_ip, host_name)
        if (len(host_info) == 5):
            if (int(host_info[4]) != 0):
                username = host_name[4:len(host_info) - 2] + host_info[3]
                password = username + '#Pass'

                create_deploy_user = r'/usr/sbin/useradd -g app -md /app/'+ username +' -s /bin/csh '+ username +';/bin/echo '+ password +'|/usr/bin/passwd --stdin '+ username +';'\
                           '/bin/mkdir -p /data;cd /data;/bin/mkdir -p '+ username +'/logs;/bin/chmod 755 '+ username +';/bin/chown -R '+ username +':app '+ username +';'

                userexist = ssh2(host_ip, r'grep ' + username + ' /etc/passwd')
                if (userexist):
                    break
                else:
                    logging.info(create_deploy_user)
            #ssh2(host_ip,create_deploy_user)

    return HttpResponse(u'数据获取成功!')
Example #2
0
def addprojectauto(request):
    
    projecthostinfo = getdatafromcmdb()
    putdatatodb(projecthostinfo)

    for host in projecthostinfo:
        host_info = host[1].split('_')
        host_name = host_info[2]
        host_ip = host[2]
        establishtrust(host_ip,host_name)
        if(len(host_info)==5):
            if(int(host_info[4])!=0):
                username =  host_name[4:len(host_info)-2] + host_info[3]
                password = username + '#Pass'
        
                create_deploy_user = r'/usr/sbin/useradd -g app -md /app/'+ username +' -s /bin/csh '+ username +';/bin/echo '+ password +'|/usr/bin/passwd --stdin '+ username +';'\
                           '/bin/mkdir -p /data;cd /data;/bin/mkdir -p '+ username +'/logs;/bin/chmod 755 '+ username +';/bin/chown -R '+ username +':app '+ username +';'
                
                
                userexist = ssh2(host_ip,r'grep '+username+' /etc/passwd')
                if(userexist):
                    break;
                else:
                    logging.info(create_deploy_user)
            #ssh2(host_ip,create_deploy_user)
    
    return HttpResponse(u'数据获取成功!')
Example #3
0
def addprojectauto(request):

    projecthostinfo = getdatafromcmdb()
    putdatatodb(projecthostinfo)

    for host in projecthostinfo:
        host_info = host[1].split("_")
        host_name = host_info[2]
        host_ip = host[2]
        establishtrust(host_ip, host_name)
        if len(host_info) == 5:
            if int(host_info[4]) != 0:
                username = host_name[4 : len(host_info) - 2] + host_info[3]
                password = username + "#Pass"

                create_deploy_user = (
                    r"/usr/sbin/useradd -g app -md /app/"
                    + username
                    + " -s /bin/csh "
                    + username
                    + ";/bin/echo "
                    + password
                    + "|/usr/bin/passwd --stdin "
                    + username
                    + ";"
                    "/bin/mkdir -p /data;cd /data;/bin/mkdir -p "
                    + username
                    + "/logs;/bin/chmod 755 "
                    + username
                    + ";/bin/chown -R "
                    + username
                    + ":app "
                    + username
                    + ";"
                )

                userexist = ssh2(host_ip, r"grep " + username + " /etc/passwd")
                if userexist:
                    break
                else:
                    logging.info(create_deploy_user)
            # ssh2(host_ip,create_deploy_user)

    return HttpResponse(u"数据获取成功!")
Example #4
0
def addproject(request):

    projectname_req = request.POST.get('project_name', '')
    package_req = request.POST.get('deploy_package', '')
    middleware_req = request.POST.get('middleware', '')
    hostnames_req = request.POST.get('hostname', '').split(',')
    hostnames_cl = hostnames_req[0:len(hostnames_req) - 1]

    order_name = vhost.objects.filter(
        order_name=projectname_req).values('order_no')
    if (order_name):
        return HttpResponse(u'项目已经存在!')

    logging.info(hostnames_cl)
    vhosts = []
    app_users = []
    order_no = 'DL' + (datetime.now()).strftime('%Y%m%d%H%M%S')
    # hostname like : 10.78.200.062_suse_vq12zdfb01_web01_4
    increatment = 1
    for host in hostnames_cl:
        logging.info(host)
        host_info = host.split('_')
        vhost_ip_tmp = host_info[0].split('.')
        logging.info(vhost_ip_tmp)
        vhost_ip = str(vhost_ip_tmp[0]) + '.' + str(
            vhost_ip_tmp[1]) + '.' + str(vhost_ip_tmp[2]) + '.' + str(
                int(vhost_ip_tmp[3]))
        ip_exist = vhost.objects.filter(host_ip=vhost_ip).values('host_ip')
        if (ip_exist):
            return HttpResponse('Host IP :' + vhost_ip + ' Already exist!')
        vhost_name = host_info[2]

        order_name = projectname_req

        hosted_id_db = vhost.objects.order_by('host_id').values(
            'host_id').last()
        hosted_id = int(hosted_id_db['host_id']) + increatment
        logging.info(hosted_id)
        increatment = increatment + 1

        vhosts.append(
            vhost(host_id=hosted_id,
                  host_name=host,
                  vhost_name=vhost_name,
                  host_ip=vhost_ip,
                  order_no=order_no,
                  order_name=order_name,
                  create_date=today,
                  status='hosted'))

        username = vhost_name[4:len(vhost_name) - 2] + host_info[3]
        password = username + '!Pass'

        app_users.append(
            app_user(username=username,
                     password=password,
                     middleware=middleware_req,
                     host_id=hosted_id,
                     package=package_req,
                     instance_num=host_info[4]))

    vhost.objects.bulk_create(vhosts)
    app_user.objects.bulk_create(app_users)

    #establish trust for deploy server and create deploy user
    for host in vhosts:
        host_name = host.vhost_name
        host_ip = host.host_ip
        establishtrust(host_ip, host_name)
        userinfo = app_user.objects.filter(host_id=host.host_id).values(
            'username', 'password')
        for auser in userinfo:
            username = auser['username']
            if (host_name[4:len(host_name) - 2] in username):
                create_deploy_user = r'/usr/sbin/useradd -g app -md /app/'+ username +' -s /bin/csh '+ username +';/bin/echo '+ auser['password'] +'|/usr/bin/passwd --stdin '+ username +';'\
                           '/bin/mkdir -p /data;cd /data;/bin/mkdir -p '+ username +'/logs;/bin/chmod 755 '+ username +';/bin/chown -R '+ username +':app '+ username +';'
                ssh2(host_ip, create_deploy_user)

    return HttpResponse('Already added project information!')
Example #5
0
def addproject(request):

    projectname_req = request.POST.get("project_name", "")
    package_req = request.POST.get("deploy_package", "")
    middleware_req = request.POST.get("middleware", "")
    hostnames_req = request.POST.get("hostname", "").split(",")
    hostnames_cl = hostnames_req[0 : len(hostnames_req) - 1]

    order_name = vhost.objects.filter(order_name=projectname_req).values("order_no")
    if order_name:
        return HttpResponse(u"项目已经存在!")

    logging.info(hostnames_cl)
    vhosts = []
    app_users = []
    order_no = "DL" + (datetime.now()).strftime("%Y%m%d%H%M%S")
    # hostname like : 10.78.200.062_suse_vq12zdfb01_web01_4
    increatment = 1
    for host in hostnames_cl:
        logging.info(host)
        host_info = host.split("_")
        vhost_ip_tmp = host_info[0].split(".")
        logging.info(vhost_ip_tmp)
        vhost_ip = (
            str(vhost_ip_tmp[0])
            + "."
            + str(vhost_ip_tmp[1])
            + "."
            + str(vhost_ip_tmp[2])
            + "."
            + str(int(vhost_ip_tmp[3]))
        )
        ip_exist = vhost.objects.filter(host_ip=vhost_ip).values("host_ip")
        if ip_exist:
            return HttpResponse("Host IP :" + vhost_ip + " Already exist!")
        vhost_name = host_info[2]

        order_name = projectname_req

        hosted_id_db = vhost.objects.order_by("host_id").values("host_id").last()
        hosted_id = int(hosted_id_db["host_id"]) + increatment
        logging.info(hosted_id)
        increatment = increatment + 1

        vhosts.append(
            vhost(
                host_id=hosted_id,
                host_name=host,
                vhost_name=vhost_name,
                host_ip=vhost_ip,
                order_no=order_no,
                order_name=order_name,
                create_date=today,
                status="hosted",
            )
        )

        username = vhost_name[4 : len(vhost_name) - 2] + host_info[3]
        password = username + "!Pass"

        app_users.append(
            app_user(
                username=username,
                password=password,
                middleware=middleware_req,
                host_id=hosted_id,
                package=package_req,
                instance_num=host_info[4],
            )
        )

    vhost.objects.bulk_create(vhosts)
    app_user.objects.bulk_create(app_users)

    # establish trust for cloudops server and create cloudops user
    for host in vhosts:
        host_name = host.vhost_name
        host_ip = host.host_ip
        establishtrust(host_ip, host_name)
        userinfo = app_user.objects.filter(host_id=host.host_id).values("username", "password")
        for auser in userinfo:
            username = auser["username"]
            if host_name[4 : len(host_name) - 2] in username:
                create_deploy_user = (
                    r"/usr/sbin/useradd -g app -md /app/"
                    + username
                    + " -s /bin/csh "
                    + username
                    + ";/bin/echo "
                    + auser["password"]
                    + "|/usr/bin/passwd --stdin "
                    + username
                    + ";"
                    "/bin/mkdir -p /data;cd /data;/bin/mkdir -p "
                    + username
                    + "/logs;/bin/chmod 755 "
                    + username
                    + ";/bin/chown -R "
                    + username
                    + ":app "
                    + username
                    + ";"
                )
                ssh2(host_ip, create_deploy_user)

    return HttpResponse("Already added project information!")
Example #6
0
def addproject(request):
    

    projectname_req = request.POST.get('project_name','')
    package_req = request.POST.get('deploy_package','')
    middleware_req = request.POST.get('middleware','')
    hostnames_req = request.POST.get('hostname','').split(',')  
    hostnames_cl = hostnames_req[0:len(hostnames_req)-1]
    
    order_name = vhost.objects.filter(order_name = projectname_req).values('order_no')
    if(order_name):
        return HttpResponse(u'项目已经存在!')
    
    logging.info(hostnames_cl)
    vhosts = []
    app_users = []
    order_no = 'DL'+(datetime.now()).strftime('%Y%m%d%H%M%S')
    # hostname like : 10.78.200.062_suse_vq12zdfb01_web01_4
    increatment = 1;
    for host in hostnames_cl:
        logging.info(host)
        host_info =  host.split('_')        
        vhost_ip_tmp = host_info[0].split('.')
        logging.info(vhost_ip_tmp)
        vhost_ip = str(vhost_ip_tmp[0])+'.'+str(vhost_ip_tmp[1])+'.'+str(vhost_ip_tmp[2])+'.' +str(int(vhost_ip_tmp[3]))
        ip_exist = vhost.objects.filter(host_ip = vhost_ip).values('host_ip')
        if(ip_exist):
            return HttpResponse('Host IP :'+vhost_ip+' Already exist!')
        vhost_name = host_info[2]
        
        order_name = projectname_req

        hosted_id_db = vhost.objects.order_by('host_id').values('host_id').last()
        hosted_id = int(hosted_id_db['host_id']) + increatment
        logging.info(hosted_id)
        increatment = increatment + 1
        
        vhosts.append(vhost(host_id=hosted_id,host_name=host,vhost_name=vhost_name,host_ip=vhost_ip,order_no=order_no,order_name=order_name,create_date=today,status='hosted'))
        
        username = vhost_name[4:len(vhost_name)-2] + host_info[3]
        password= username + '!Pass'
        
        app_users.append(app_user(username=username,password=password,middleware=middleware_req,host_id=hosted_id,package=package_req,instance_num=host_info[4]))
   
   
    vhost.objects.bulk_create(vhosts)
    app_user.objects.bulk_create(app_users)
    
    #establish trust for deploy server and create deploy user 
    for host in vhosts:
        host_name = host.vhost_name
        host_ip = host.host_ip
        establishtrust(host_ip,host_name)
        userinfo = app_user.objects.filter(host_id=host.host_id).values('username','password')
        for auser in userinfo:
            username = auser['username']
            if(host_name[4:len(host_name)-2] in username):
                create_deploy_user = r'/usr/sbin/useradd -g app -md /app/'+ username +' -s /bin/csh '+ username +';/bin/echo '+ auser['password'] +'|/usr/bin/passwd --stdin '+ username +';'\
                           '/bin/mkdir -p /data;cd /data;/bin/mkdir -p '+ username +'/logs;/bin/chmod 755 '+ username +';/bin/chown -R '+ username +':app '+ username +';'
                ssh2(host_ip,create_deploy_user)
    
    return HttpResponse('Already added project information!')