基于 Python 的自动化部署工具实现
效果
本工具旨在通过 Python 脚本实现对 SpringBoot 项目的自动化部署,支持 Windows 环境直接运行(无需安装 Python 环境),具备密钥校验、远程连接、代码拉取、编译打包及服务重启等完整流程。
起因
目前 SpringBoot 项目的自动化部署方案众多,如 Jenkins、Git Hooks 或 Docker。为了锻炼编码能力并简化运维操作,本文介绍如何使用 Python 编写一个独立的可执行程序(exe),在任意 Windows 电脑上执行 Linux 服务器的部署任务。
开发准备
- 开发环境:Windows 或 macOS 电脑,安装 Python 基本环境及 IDE(如 PyCharm)。
- 依赖安装:安装打包工具
pyinstaller及相关库。pip install pyinstaller paramiko alive-progress cryptography - 基础要求:具备基本的 Python 编程知识,了解 SSH 协议及 Maven 构建流程。
核心实现步骤
1. 导入依赖
新建 Python 文件(例如 deployment.py),统一导入所需模块:
import os
import re
import time
import paramiko
from alive_progress import alive_bar
from cryptography.fernet import Fernet
import base64
import hashlib
paramiko:用于远程执行 Linux 命令。alive_progress:用于显示进度条。cryptography:用于敏感信息加解密。
2. 输入校验与密钥管理
部署涉及生产安全,需增加密钥校验机制。密钥格式建议为 环境 - 模块(如 pro-main)。
def check_deploy_sign(deploy_site):
valid_keys = ['pro-main', 'pro-manage', 'test-main', 'test-manage']
while deploy_site not in valid_keys:
new_deploy_site = input("错误:请填写有效的部署密钥 (如 pro-main):")
deploy_site = new_deploy_site
deploy_site
:
deploy_sign = ()
deploy_sign = check_deploy_sign(deploy_sign)
deploy_server = deploy_sign.split()[]
deploy_site = deploy_sign.split()[]
package_name = deploy_server ==
Exception e:
()
exit()


