def main(flow_id): print('[INFO]: 这部分是将代码正式下发/同步到你的代码目录') data = get_publish_data(flow_id) # 获取发布信息 obj = DeployCode(data) all_hosts = get_all_hosts(flow_id) exec_thread(func=obj.code_deploy, iterable1=all_hosts) obj.check_err()
def main(flow_id): print('[INFO]: 这部分是备份你目标主机的代码,只保留一天备份,若不需要可以跳过此步骤') data = get_publish_data(flow_id) # 获取发布信息 obj = BackupCode(data) all_hosts = get_all_hosts(flow_id) exec_thread(func=obj.code_backup, iterable1=all_hosts) obj.check_err()
def main(flow_id, git_tag): """ :param flow_id: 订单ID :param git_tag: Git Tag名字 :return: """ print('[INFO]: 这部分是用来在构建机器上拉取代码,切换Tag操作') data = get_publish_data(flow_id) # 配置信息 obj = PullCode(data) # 初始化类 obj.git_clone() # 克隆代码 obj.checkout_tag(git_tag) # 切换Tag
def main(flow_id, git_tag): """ :param flow_id: 订单ID :param git_tag: Git Tag名字 :return: """ print('[INFO]: 这部分是用来在编译镜像,并且上传docker仓库') data = get_publish_data(flow_id) # 配置信息 obj = BuildImage(data, git_tag) # 初始化类 obj.build_image() # 编译镜像 obj.push_image() # 上传镜像
def main(flow_id, git_tag): """ :param flow_id: 订单ID :param git_tag: Git Tag名字 :return: """ print('[INFO]: 这部分是用来在编译镜像,并且上传docker仓库') data = get_publish_data(flow_id) # 配置信息 obj = Deploy(data, git_tag) # 初始化类 obj.run() # 滚动升级 obj.check() # 检查POD状态
def main(flow_id): """ 01. 处理exclude文件 02. 获取所有主机信息 03. 并发代码到目的主机/tmp :return: """ print('[INFO]: 这部分是处理exclude 将过滤后的代码并发到你的目标主机/tmp下,等待你的部署,如果rsync同步失败请确认服务器和目标主机都有rsync命令') data = get_publish_data(flow_id) # 获取发布信息 exclude_file = get_exclude_file(data) # 过滤文件名称 obj = UploadCode(data) obj.code_process(exclude_file) # 处理代码,如:exclude操作 all_hosts = get_all_hosts(flow_id) exec_thread(func=obj.rsync_tmp, iterable1=all_hosts) obj.delete_tmp() obj.check_err()