python自动部署脚本master

这是一个用于自动部署的Python脚本,根据项目名称和环境类型获取相应的IP和TOMCAT信息,然后通过socket连接发送部署指令。支持多个项目如config、eureka、gateway等,并能处理连接超时等异常。
摘要由CSDN通过智能技术生成

#!/usr/bin/python
#coding=gbk  
'''
Created on 2015年5月27日

@author: ligang
'''

import socket
import time
from sys import argv


#获取项目对应的IP和TOMCAT信息
def get_server_info(project_name,project_type):


    if(project_name=="config"):

        ################################################################################
        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1105

        ################################################################################

    elif(project_name=="eureka"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################

    elif(project_name=="gateway"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################

    elif(project_name=="auth"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################

    elif(project_name=="platform"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################
        

    elif(project_name=="frontplatform"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################        
 
    elif(project_name=="crm"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   

    elif(project_name=="goods"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   

    elif(project_name=="account"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   

    elif(project_name=="order"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   

    elif(project_name=="operation"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   
        
        
    elif(project_name=="adapt"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   
                
    elif(project_name=="material"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   
                
    elif(project_name=="price"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   
                
    elif(project_name=="produce"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   
                
    elif(project_name=="store"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   
                        
    elif(project_name=="scm"):

        if(project_type=='dev'):

            deploy_info_arry.append(["192.168.31.121",argv[2],argv[3]])

        elif(project_type=='test'):

            deploy_info_arry.append(["47.103.103.142",argv[2],argv[3]])

        elif(project_type=='produce'):

            deploy_info_arry.append(["47.103.119.170",argv[2],argv[3]])
        else:

            print("项目"+project_name+"没有"+project_type+"这样的环境")
            return 1101
        ################################################################################   
    else:
        print("项目"+project_name+"没有"+project_type+"这样的环境")
        return 1002

    return 0

def send_socket(server_ip,deploy_info):

    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  
    sock.settimeout(500)
    e=0

    try:

        sock.connect((server_ip,5099))


    except socket.timeout,e:

        print 'timeout',e
        return 2001

    except e:

        print 'any',e
        return 2002

    if not e:

        try:

                print(str(time.strftime("%Y-%m-%d:%H:%M:%S",time.localtime(time.time()))))
                sock.send(deploy_info)#发送文件基本信息数据
                deploy_result = sock.recv(2048)
                sock.close()
                return deploy_result

        except Exception , e:

                print e
                sock.close()
                return 2003

deploy_info_arry = []
pjkey        = 'zls3sj-8dh^97@DH892doa'
command_name  = 'docker_deploy'
project_name = argv[1]
project_port = argv[4]
project_type = argv[5]
get_server_info(project_name,project_type)

if(deploy_info_arry):

    for deploy_info in deploy_info_arry:

        server_ip    = deploy_info[0]
        containers   = deploy_info[1]
        dockerimages     = deploy_info[2]
        deploy_info    = pjkey+','+command_name+','+containers+','+dockerimages+','+project_port
        deploy_result=send_socket(server_ip,deploy_info)
        if(deploy_result!="0"):
            print("部署失败,返回结果:"+deploy_result+"部署信息:"+deploy_info)
    print deploy_result

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值