运维(6) : mac环境一键部署(shell版)

说明 : 通过Python脚本生成shell脚本,执行shell脚本可以打包、上传服务器、杀死进程和重新运行程序

依赖 : 

  • 可以执行shell的环境
  • Python3

步骤

  1. 配置 config.conf 文件的内容
  2. 执行 init.py 文件
  3. 执行 one_key_deploy.sh 文件

该工具总共包含 config.conf 和 init.py 两个文件,执行 init.py 会生成多个shell文件,执行其中的 one_key_deploy.sh 文件即可

注 : init.py 初始化一次就可以了

以下为具体文件内容

config.conf

这是配置文件,需要配置java项目路径、打包后文件路径、打包后文件名、服务器ip、服务器ssh密码和服务器工作路径

[config]
package_path=/Users/leyili/test
jar_name=ctest.jar
jar_path=/test/target
port=8080
server_ip=1.1.1.1
server_password=123
server_work_path=/usr/test

init.py

生成shell的Python脚本

import configparser
import os

# 读取配置文件
cp = configparser.ConfigParser()
cp.read('config.conf')

package_path = cp.get('config', 'package_path')
port=cp.get('config', 'port')
jar_name = cp.get('config', 'jar_name')
jar_path = cp.get('config', 'jar_path')
server_ip = cp.get('config', 'server_ip')
server_password = cp.get('config', 'server_password')
server_work_path = cp.get('config', 'server_work_path')

# 生成打包脚本
sh_package = open('package.sh', 'w')
sh_package.write('#!/bin/sh\ncd ' + package_path + '\nmvn clean package')
os.system('chmod +x package.sh')

# 生成上传打包脚本
sh_upload = open('upload.sh', 'w')
upload_content = '#!/usr/bin/expect\n' + 'spawn scp ' + \
                 jar_path + '/' + jar_name + ' root@' + server_ip + \
                 ':/root\nexpect "*password:"\n' \
                 'send "' + server_password + '\\r"\n' \
                                              'expect "*#"\n' \
                                              'interact'
sh_upload.write(upload_content)
os.system('chmod +x upload.sh')

# 生成部署脚本
sh_deploy = open('deploy.sh', 'w')
deploy_content = '#!/usr/bin/expect\nspawn ssh root@' + server_ip + '\n' + \
                 'expect "*password:"\n' + 'send "' + \
                 server_password + '\\r"\n' + \
                 'expect "*#"\n' + \
                 'send "cd ' + server_work_path + '\\r"\n' + \
                 'send "fuser -k -n tcp ' + port + '\\r"\n' + \
                 'send "rm -rf backup\\r"\n' + \
                 'send "mkdir backup\\r"\n' + \
                 'send "mv ' + jar_name + ' backup\\r"\n' + \
                 'send "mv /root/' + jar_name + ' ./\\r"\n' + \
                 'send "nohup java -jar ' + jar_name + ' &\\r"\n' + \
                 'expect eof'
sh_deploy.write(deploy_content)
os.system('chmod +x deploy.sh')

# 生成一键执行脚本
sh_one_key_deploy = open('one_key_deploy.sh', 'w')
sh_one_key_deploy.write('#!/bin/sh\n./package.sh\n./upload.sh\n./deploy.sh')
os.system('chmod +x one_key_deploy.sh')

print('SUCCESS')

END。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值