• python自动发布应用脚本


    #!/usr/bin/python env
    # -*- coding: utf-8 -*-
    import os, sys, paramiko, time
    
    date = time.strftime("%Y%m%d%H%M%S", time.localtime())
    
    
    class Connection(object):
        def __init__(self, ip, user, remote_file, port=22, key='/root/.ssh/id_rsa'):
            self.ip = ip
            self.user = user
            self.port = int(port)
            self.remote_file = remote_file
            self.private_key = paramiko.RSAKey.from_private_key_file(key)
            self.client = paramiko.SSHClient()
            self.client.load_system_host_keys()
            self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
            self.client.connect(hostname=self.ip,
                                port=self.port,
                                username=self.user,
                                pkey=self.private_key)
            self.transport = self.client.get_transport()
            self.sftp = paramiko.SFTPClient.from_transport(self.transport)
    
        def downlowd(self,app):
    
            print "========download Application==========="
            os.system("cd /opt/o2m_gsr_700_test && svn checkout  http://10.128.XX.XX/rss/O2M1114120001/04_软件实现/o2m700/GSR/%s" %app)
    
        def mvn(self,app):
            print "=======mvn Application================="
            os.system("cd /opt/o2m_gsr_700_test/%s &&  mvn clean install -Dmaven.test.skip=true" %app)
    
        def upload(self, local_dir):
            self.sftp.put(local_dir, self.remote_file)
    
        def Backup(self, backup_cmd):
            print "==========backup application==========="
            stdin, stdout, stderr = self.client.exec_command(backup_cmd)
            result = stderr.read()
            error = stderr.read()
            if not error:
                print "host:%s 正在备份" % self.ip
            else:
                print error
    
        def stop(self, cmd):
            print "========stop application============"
            stdin, stdout, stderr = self.client.exec_command(cmd)
            result = stderr.read()
            error = stderr.read()
            if not error:
                print "host:%s 该应用已停止" % self.ip
            else:
                print error
    
        def start(self, cmd):
            print "=======start application============="
            stdin, stdout, stderr = self.client.exec_command(cmd)
            result = stderr.read()
            error = stderr.read()
            if not error:
                print "host:%s 该应用已启动." % self.ip
            else:
                print error
    
        def __del__(self):
            self.client.close()
    
    
    if __name__ == "__main__":
        ip = ['10.128.XX.XX', '10.128.XX.XX']
        user = 'o2muser'
        filename = "site-0.0.1-SNAPSHOT.jar"
        remote = '/home/o2muser/gome/site/%s' % filename
        remote1 = '/home/o2muser/gome/site/'
        count = 0
    
        if sys.argv[1] == "site":
            for i in ip:
                r = Connection(i, user, remote)
                if count == 0:
                    r.downlowd("site")
                    r.mvn("site")
                r.stop("ps -ef | grep site-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'|xargs kill -9")
                r.Backup("mv %s %s" % (remote, remote + date))
                r.upload("/opt/o2m_gsr_700_test/site/target/site-0.0.1-SNAPSHOT.jar")
                r.start("java -jar -Xms30720m -Xmx30720m -Xmn16348m -Xss3072k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m /home/o2muser/gome/site/site-0.0.1-SNAPSHOT.jar --spring.profiles.active=700 >/dev/null &")
                count=count+1
  • 相关阅读:
    linux 防火墙相关
    .net安装windows服务和生产webservice
    linq小实例
    C# DataTable 总结
    document对象
    结对-四则运算-开发过程
    课后作业-阅读任务-阅读笔记-1
    课后作业-阅读任务-阅读提问-2
    课后作业-阅读任务-阅读提问-3
    团对-象棋游戏-开发环境搭建过程
  • 原文地址:https://www.cnblogs.com/zhangzihong/p/8117921.html
Copyright © 2020-2023  润新知