返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python实现服务部署自动化
  • 232
分享到

怎么用Python实现服务部署自动化

2023-07-06 04:07:38 232人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇“怎么用python实现服务部署自动化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python实现服务部署自动化

这篇“怎么用python实现服务部署自动化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python实现服务部署自动化”文章吧。

1. 准备

这里要介绍一个 Python 依赖库「 watchdog 」

它可用于监控某个文件目录下的文件变化,包含:删除、修改、新增等操作,每一个操作都会回调一个事件函数,我们可以在内部编写自定义的逻辑,以此满足我们的需求。

# 安装依赖包pip3 install watchdog

2. 实战一下

首先,我们需要创建一个监听器,用于监听文件夹目录:

from watchdog.observers import Observer...# 创建一个监听器,用来监听文件夹目录observer = Observer()...

然后,创建 2 个事件处理对象。

PS:该对象继承于「 FileSystemEventHandler 」类。

它们分别用于监听「 /tmp 」目录、「 /home/project/frontend 」目录,假设事件对象被命名为 obj1、obj2

obj1 负责监听 /tmp 目录,重写「 新建或修改 」事件方法,完成压缩文件的移动操作:

from watchdog.events import *import ntpathimport shutilimport zipfiledef get_filename(filepath): """ 根据文件夹目录,获取文件名称(待后缀) :param filepath: :return: """ return ntpath.basename(filepath)class FileMoveHandler(FileSystemEventHandler): def __init__(self): FileSystemEventHandler.__init__(self) ... # 文件新建 def on_created(self, event): # 新建文件夹 if event.is_directory: # print("directory created:{0}".fORMat(event.src_path)) pass # 新建文件 else: # print("file created:{0}".format(event.src_path)) filename = get_filename(event.src_path) # 如果属于前端的4个项目压缩包,开始文件夹的操作 if filename in watch_tags: self.start(filename)...def on_modified(self, event): if event.is_directory: # print("directory modified:{0}".format(event.src_path)) pass else: # print("file modified:{0}".format(event.src_path)) filename = get_filename(event.src_path) if filename in watch_tags: self.start(filename) ... def start(self, filename): """ 文件处理逻辑 :param filename: :return: """ try: # 文件名不带后缀 filename_without_suffix = filename.split(".")[0] # 源文件路径(压缩包文件) source_file_path = watch_folder + filename # 目标文件路径(压缩包文件) target_file_path = target_folder + filename # 目标项目文件夹(目标项目) target_project_path = target_folder + filename_without_suffix # 1、复制文件到目标文件夹 print(f"拷贝源目录{source_file_path},目标文件夹:{target_folder}") # 删除目标文件夹下的压缩文件 if os.path.exists(target_file_path): os.remove(target_file_path) # 移动文件到目标文件夹中 shutil.move(source_file_path, target_folder) # 2、清空目标文件夹中内的所有文件夹(如果存在) # 如果不存在,新建一个文件夹 if os.path.exists(target_project_path): shutil.rmtree(target_project_path, ignore_errors=True) print(f"项目{filename_without_suffix}移动成功!") except Exception as e: print("部署失败,错误原因:", str(e.args))

obj2 负责监听 /home/project/frontend 目录,同样重写「 新建或修改 」事件方法,完成压缩文件的解压动作:

... def start(self, filename): # 文件名不带后缀 filename_without_suffix = filename.split(".")[0] # 目标文件路径(压缩包文件) target_file_path = target_folder + filename # 目标项目文件夹(目标项目) target_project_path = target_folder + filename_without_suffix r = zipfile.is_zipfile(target_file_path) if r: fz = zipfile.ZipFile(target_file_path, 'r') for file in fz.namelist(): fz.extract(file, target_folder) else: print('这不是一个正常的zip压缩包!')...

接着,通过监听器启动上面两个事件的监听任务:

import time...if __name__ == "__main__": # 待监听的文件夹目录 watch_folder = "/tmp/" # 项目目标文件夹目录 target_folder = "/home/project/frontend/" # 监听文件夹名称,即:项目压缩包名称 watch_tags = ['proj1.zip', 'proj2.zip', 'proj3.zip', 'proj4.zip'] # 创建一个监听器,用来监听文件夹目录 observer = Observer() # 创建两个事件处理对象 move_handler = FileMoveHandler() unzip_handler = FileUnzipHandler() # 启动监控任务 # 参数分别是:观察者、监听目录、是否监听子目录 observer.schedule(move_handler, watch_folder, True) observer.schedule(unzip_handler, target_folder, True) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()...

最后,我们在服务器上通过「 nohup 」命令,让文件监听程序在后台运行即可。

# 在后台运行# 项目文件:watch_folder.py# 日志文件:watch_folder.lognohup python3 -u watch_folder.py > watch_folder.log 2>&1 &# 查看日志:cat watch_folder.log

以上就是关于“怎么用Python实现服务部署自动化”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: 怎么用Python实现服务部署自动化

本文链接: https://lsjlt.com/news/357659.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用Python实现服务部署自动化
    这篇“怎么用Python实现服务部署自动化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python实现服务部署自动化...
    99+
    2023-07-06
  • 太牛了,用Python实现服务部署自动化!
    最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的 /tmp 目录下,然后进入应用服务器中,使用 mv 命令将压缩文件移动到 Nginx 项目设定目录,最后使用 unzip 命令解压文件,以此完成项目的部署。仔细分...
    99+
    2023-05-14
    Python 命令
  • 云服务器自动化部署怎么实现
    实现云服务器的自动化部署可以通过以下几个步骤来实现:1. 配置云服务器环境:首先需要在云平台上创建一个虚拟机实例,并配置好所需要的操...
    99+
    2023-09-16
    云服务器
  • docker自动化部署怎么实现
    要实现Docker的自动化部署,可以采用以下步骤:1. 编写Dockerfile:根据项目需求编写Dockerfile文件,定义Do...
    99+
    2023-08-12
    docker
  • windows中python实现自动化部署
    目录一、python脚本二、windows部署定时任务这段时间遇到一个需求是如果库里面有没有图片的数据,则访问我们的网站生成图片数据并更新库,要求每隔一段时间就要检测。 该需求主要为...
    99+
    2024-04-02
  • Node中怎么实现自动化部署
    这期内容当中小编将会给大家带来有关Node中怎么实现自动化部署,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。配置脚本这段脚本内容是我们需要服务器自动执行的# a...
    99+
    2024-04-02
  • jenkins+shell自动化部署怎么实现
    这篇文章主要介绍了jenkins+shell自动化部署怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jenkins+shell自动化部署怎么实现文章都会有所收获,下面我们一起来看看吧。通过jenkins...
    99+
    2023-06-29
  • 怎么在Springboot服务中实现自动化部署Docker
    怎么在Springboot服务中实现自动化部署Docker?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。微服务部署方式(1)手动部署:首先基于源码打包生成jar包(或war...
    99+
    2023-06-14
  • Python自动化部署
    # -*- coding: utf-8 -*-#!/bin/env python'''#Auth: karl#Function: released version#Date:2017/6/27#Version:V1.0'''import  ...
    99+
    2023-01-31
    Python
  • Jenkins中怎么实现Pipeline自动化部署
    本篇文章给大家分享的是有关Jenkins中怎么实现Pipeline自动化部署,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用Jenkins前的一些设置为了快速搭建Jenkin...
    99+
    2023-06-19
  • 怎么搭建jenkins实现自动化部署
    要搭建Jenkins实现自动化部署,您需要按照以下步骤进行操作:1. 安装Jenkins:您可以从Jenkins官方网站下载适用于您...
    99+
    2023-08-12
    jenkins
  • 怎么用NFV+SDN实现VNF全自动化部署
    本篇内容介绍了“怎么用NFV+SDN实现VNF全自动化部署”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、某运营商期望通过数字化转型项目提...
    99+
    2023-06-03
  • git自动化部署php脚本怎么实现
    本文操作环境:linux5.9.8系统、Git 2.30.0版、DELL G3电脑git自动化部署php脚本怎么实现git+php部署webhook自动化脚本 实现代码同步本文将介绍git+php部署webhook自动化脚本 实现代码同步 ...
    99+
    2014-07-13
    git php
  • PXE怎么实现自动化部署Linux系统
    本篇内容主要讲解“PXE怎么实现自动化部署Linux系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PXE怎么实现自动化部署Linux系统”吧!背景说明在数据中心,一次几十台甚至几百台服务器上...
    99+
    2023-06-22
  • 怎么使用Jenkins和Git来实现自动化部署
    这篇文章主要介绍“怎么使用Jenkins和Git来实现自动化部署”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Jenkins和Git来实现自动化部署”文章能帮助大家解决问题。一、为什么需要自...
    99+
    2023-07-05
  • 怎么利用k8s与gitlab来实现自动化部署
    这篇文章主要介绍了怎么利用k8s与gitlab来实现自动化部署的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用k8s与gitlab来实现自动化部署文章都会有所收获,下面我们一起来看看吧。一、什么是k8s?...
    99+
    2023-07-05
  • Springboot服务Docker化自动部署的实现方法
    还在手动将springboot项目打包,然后上传服务器,手动执行启动命令将项目启动吗?你out了!通过Docker配置DockerMaven插件,快速部署,一键将springboot...
    99+
    2024-04-02
  • 利用Python实现自动化监控文件夹完成服务部署
    目录1. 准备2. 实战一下3. 总结大家好,我是安果! 最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的 /tmp 目录下,然后进入应用服务器中,使用 ...
    99+
    2024-04-02
  • shell怎么实现jenkins自动部署
    要在Shell脚本中实现Jenkins自动部署,通常需要以下步骤: 编写一个Shell脚本,该脚本包含您希望Jenkins执行的...
    99+
    2024-04-02
  • Linux实现项目的自动化部署
    一、自动化部署git项目 #!/bin/bash # 清除项目进程和历史文件 pkill -f start.py sleep 1 cd /root/automation |rm -rf testProduce/ ...
    99+
    2022-07-08
    Linux 项目自动化部署
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作