Browse Source

删除 'tools.py'

robert 3 năm trước cách đây
mục cha
commit
6c4c62286b
1 tập tin đã thay đổi với 0 bổ sung261 xóa
  1. 0 261
      tools.py

+ 0 - 261
tools.py

@@ -1,261 +0,0 @@
-#!/usr/bin/python
-# -*- coding: UTF-8 -*-
-from __future__ import print_function
-import os
-import commands
-import httplib, urllib
-import json
-import time
-import sys, getopt, random
-from kubernetes.client.rest import ApiException
-from pprint import pprint
-from kubernetes import client, config
-from aliyunsdkcore.client import AcsClient
-from aliyunsdkcore.acs_exception.exceptions import ClientException
-from aliyunsdkcore.acs_exception.exceptions import ServerException
-from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest
-from aliyunsdkalidns.request.v20150109.DeleteDomainRecordRequest import DeleteDomainRecordRequest
-from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest
-
-
-JNLP_ENV = os.getenv('JNLP_ENV')
-JNLP_TAG = os.getenv('JNLP_TAG')
-JNLP_VERSION = os.getenv('JNLP_VERSION')
-JNLP_CONTAINER_PORT = os.getenv('JNLP_CONTAINER_PORT')
-# JNLP_WAR = os.getenv('JNLP_WAR')
-JNLP_INGRESS = os.getenv('JNLP_INGRESS')
-JNLP_IMAGE = os.getenv('JNLP_IMAGE')
-JNLP_CONTROL_NAME = os.getenv('DRONE_REPO_NAME')
-JNLP_STORAGE_CLASS = os.getenv('JNLP_STORAGE_CLASS')
-JNLP_DOMAIN = os.getenv('JNLP_DOMAIN')
-JNLP_CONTROL = os.getenv('JNLP_CONTROL')
-JNLP_REPLICAS = os.getenv('JNLP_REPLICAS')
-JNLP_STORAGE_CAPACITY = os.getenv('JNLP_STORAGE_CAPACITY')
-JNLP_MOUNT_PATH = os.getenv('JNLP_MOUNT_PATH')
-JNLP_SVC_MODE = os.getenv('JNLP_SVC_MODE')
-NGINX_SVC = str(JNLP_ENV) + '/' + str(JNLP_CONTROL_NAME) + '-svc:' + str(JNLP_CONTAINER_PORT)
-NGINX_PORT = os.getenv('JNLP_CONTAINER_PORT')
-RECORD_NAME = os.getenv('JNLP_ENV') + "-" + os.getenv('DRONE_REPO_NAME')
-INGRESS_LIST_IN = ["10.26.32.137"]
-INGRESS_LIST_PUB = ["120.192.70.105"]
-NGINX_RECORD_IP = random.sample(INGRESS_LIST_PUB, 1)[0]
-DOMAINNAME = os.getenv('JNLP_DOMAIN').strip('.')
-
-
-# 生成deploy.yaml文件
-def deployYamlCreate():
-    if JNLP_VERSION == "v1":
-        tmpctl = '''
-            config=`env|grep JNLP`
-            template=`cat ./deploy-tmp.yaml`
-            printf "$config\ncat << EOF\n$template\nEOF" | bash > ./deploy.yaml
-        '''
-        f1 = open("tempshell.sh","w")
-        f1.writelines(tmpctl)
-        f1.close()
-        status,output = commands.getstatusoutput("sh tempshell.sh && rm -f tempshell.sh")
-        print("code:" + str(status) + str(output) + "; create deploy.yaml success !!!")
-        return status,output
-    elif JNLP_VERSION == "v2":
-        tmpctl = '''
-            config=`env|grep JNLP`
-            template=`cat ./deploy-tmp-v2.yaml`
-            printf "$config\ncat << EOF\n$template\nEOF" | bash > ./deploy.yaml
-        '''
-        f1 = open("tempshell.sh","w")
-        f1.writelines(tmpctl)
-        f1.close()
-        status,output = commands.getstatusoutput("sh tempshell.sh && rm -f tempshell.sh")
-        print("code:" + str(status) + str(output) + "; create deploy.yaml success !!!")
-        return status,output
-    else:
-        print("Can Not Find JNLP_VERSION, Please Check !!!")
-        return "Can Not Find JNLP_VERSION, Please Check !!!"
-
-
-
-# 生成Dockerfile文件
-def DockerfileCreate():
-    tmp = '''
-    onfig=`env|grep JNLP`
-    template=`cat ./Dockerfile`
-    printf "$config\ncat << EOF\n$template\nEOF" | bash > ./Dockerfile
-    '''
-    f2 = open("tmp.sh","w")
-    f2.writelines(tmp)
-    f2.close()
-    status,output = commands.getstatusoutput("sh tmp.sh && rm -f tmp.sh")
-    print("code:" + str(status) + str(output) + "; create Dockerfile success !!!")
-    return
-
-
-# 更新haproxy configmap.json配置文件,生成TCP服务转发记录
-def updateConfigMap(file):
-    if JNLP_SVC_MODE == "tcp":
-        data = {}
-        data[NGINX_PORT] = NGINX_SVC
-        status, output = commands.getstatusoutput("kubectl  get cm  tcp-services -n  ingress-nginx -o=json")
-        tempdict = eval(output)
-        tempdict['data'][NGINX_PORT] = NGINX_SVC
-        newdata = tempdict['data']
-        print(newdata,status)
-        old_str = "CMDATA"
-        new_str = str(newdata).replace("'",'"')
-        with open(file, "r") as f1,open("%s.bak" % file, "w" ) as f2:
-            for line in f1:
-                if old_str in line:
-                    line = line.replace(old_str, new_str)
-                f2.write(line)
-        os.remove(file)
-        os.rename("%s.bak" % file, file)
-        cmStatus = "1"
-    else:
-        print("****** Nginx Tcp Services Configmap.json Do Not Update ******")
-        cmStatus = "0"
-    return cmStatus
-
-# 部署应用到kubernetes平台
-def deployToKube():
-    cmStatus = updateConfigMap("configmap.json")
-    appStatus = commands.getoutput("kubectl  get sts $JNLP_CONTROL_NAME -n $JNLP_NAMESPACE|grep $JNLP_CONTROL_NAME|wc -l")
-    if appStatus == "1" and cmStatus == "1":
-        print("Warning:" + JNLP_CONTROL_NAME + " is already, i will update it and update nginx tcp proxy !!!")
-        apply_out = commands.getoutput("kubectl apply -f ./deploy.yaml && kubectl apply -f ./configmap.json")
-        print("===>>> kubectl apply output <<<===")
-        print(apply_out)
-    elif appStatus == "1" and cmStatus == "0":
-        print("Warning:" + JNLP_CONTROL_NAME + " is already, i will update it !!!")
-        apply_out = commands.getoutput("kubectl apply -f ./deploy.yaml")
-        print("===>>> kubectl apply output <<<===")
-        print(apply_out)
-    elif appStatus != "1" and cmStatus == "1":
-        apply_out = commands.getoutput("kubectl apply -f ./deploy.yaml && kubectl apply -f ./configmap.json")
-        print("===>>> kubectl apply output <<<===")
-        print(apply_out)
-        print("===>>> apply is successfull <<<===")
-    else:
-        apply_out = commands.getoutput("kubectl apply -f ./deploy.yaml")
-        print("===>>> kubectl apply output <<<===")
-        print(apply_out)
-        print("===>>> apply app successfull <<<===")
-    return
-
-
-# 部署应用状态获取
-# 20200615新增
-def appStatusCheck():
-    cmd = "kubedog  rollout  track statefulset " + JNLP_CONTROL_NAME + " -n " + JNLP_ENV
-    appStatus = commands.getstatusoutput(cmd)
-    if appStatus[0] == 0:
-        print("===>>> statefulset: " + JNLP_ENV + "/" + JNLP_CONTROL_NAME + " is running ... <<<===")
-    else:
-        print("===>>> statefulset: " + JNLP_ENV + "/" + JNLP_CONTROL_NAME + " is error, Please Check or Connect Administrator !!! <<<===")
-    return appStatus
-
-# 不再使用该方法检查服务状态
-def deployStatus():
-    kubeconfig = config.kube_config.load_kube_config(config_file="/root/.kube/config")
-    appsv1_api_instance = client.AppsV1Api(kubeconfig)
-    namespace = JNLP_ENV
-    stsname = JNLP_CONTROL_NAME
-    pretty = "true"
-    for x in range(20):
-        try:
-            sts_response = appsv1_api_instance.read_namespaced_stateful_set_status(stsname, namespace, pretty=pretty)
-            if sts_response.status.replicas == sts_response.status.ready_replicas :
-                print("===>>> " +stsname + " is RUNNING <<<===")
-                chk_status = 1
-                break
-            else:
-                if x < 40:
-                    time.sleep(15)
-                else:
-                    chk_status = 0
-                    print(stsname + " status check fail !!! , Please contact kubernetes systen administrator")
-        except ApiException as e:
-            print("Exception when calling CoreV1Api->list_namespaced_pod: %s\n" % e)
-    return chk_status
-
-
-# DNS解析
-# 域名由jenkins项目名+命名空间+dns域组合而成
-# 如果域名已存在,不会再更新
-def dnsAllocation():
-    if JNLP_INGRESS == "nginx":
-        httpClient = httplib.HTTPConnection("opsadmin.evbj.easou.com", 80, timeout=30)
-        headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
-        params = urllib.urlencode({'method': 'add', 'type': 'record', 'domain_id': 24, 'record_type': 'A', 'record_name': RECORD_NAME ,'record_ip': NGINX_RECORD_IP , 'record_ttl': 180})
-        httpClient.request("POST", "/dns/dnsapi/?token=c2d1856be235a3207cd03b6f4d3c4094", params, headers)
-        response = httpClient.getresponse().read()
-        jstr = json.loads(response)
-        nsStatus = jstr['status']
-        print(NGINX_RECORD_IP)
-        if nsStatus == "-501":
-            print(JNLP_ENV + "-" + JNLP_CONTROL_NAME + JNLP_DOMAIN + " is already exist")
-        elif nsStatus == "0":
-            httpClient = httplib.HTTPConnection("opsadmin.evbj.easou.com", 80, timeout=30)
-            httpClient.request("POST", "/dns/mkconfig/?token=c2d1856be235a3207cd03b6f4d3c4094")
-            response = httpClient.getresponse().read()
-            jstr = json.loads(response)
-            upStatus = jstr['status']
-            print(JNLP_ENV + "-" + JNLP_CONTROL_NAME + JNLP_DOMAIN + " " +upStatus + " add successfull !!!")
-        else:
-            print("*****Please contact DNS systen administrator*****")
-    else :
-        print(">>> Ingress error, Only nginx !!! <<<")
-    return
-
-def cloudDns():
-    if JNLP_INGRESS == "nginx":
-        client = AcsClient('LTAI4Fv2cVQGqCkscSuxgx49', '9e13VJa66veTCjsNocBxA09CTcVIi5', 'cn-hangzhou')
-
-        # describe record
-        request = DescribeDomainRecordsRequest()
-        request.set_accept_format('json')
-        request.set_DomainName(DOMAINNAME)
-        request.set_RRKeyWord(RECORD_NAME)
-        response = client.do_action_with_exception(request)
-        jsondata = json.loads(response)
-        # print(response)
-        if jsondata['TotalCount'] != 0:
-            print(RECORD_NAME + "." + DOMAINNAME + " is already exists <<<")
-        else :
-        # add record
-            request = AddDomainRecordRequest()
-            request.set_accept_format('json')
-            request.set_Value(NGINX_RECORD_IP)
-            request.set_Type("A")
-            request.set_RR(RECORD_NAME)
-            request.set_DomainName(DOMAINNAME)
-            response = client.do_action_with_exception(request)
-            # print(response)
-            print(RECORD_NAME + "." + DOMAINNAME + " add sucess <<<")
-    else :
-        print(">>> Ingress error, Only nginx !!! <<<")
-    return
-
-def main(argv=None):
-    if argv is None:
-        args = sys.argv[1:]
-        for opt_name in args :
-            if opt_name in ('-a','--apply'):
-                print("===>>> deploy app to kubernetes <<<===")
-                deployToKube()
-                time.sleep(10)
-                sys.exit()
-            if opt_name in ('-b','--build'):
-                print("===>>> create deploy.yaml <<<===")
-                deployYamlCreate()
-                sys.exit()
-            if opt_name in ('-c','--check'):
-                print("===>>> app status check <<<===")
-                appStatusCheck()
-                sys.exit()
-            if opt_name in ('-d','--dns'):
-                print("===>>> add/update dns resolve <<<===")
-                cloudDns()
-                sys.exit()
-    return
-
-if __name__ == "__main__":
-    main()