fabric发布函数学习

本文介绍了一种使用Python的Fabric库实现对几十台服务器上的Tomcat程序进行自动化部署的方法。该方法通过定义一系列的任务来完成项目的打包、停止旧服务、备份及清理工作目录、上传新包并启动服务等步骤,有效提高了部署效率。
摘要由CSDN通过智能技术生成

背景

  • 几十台机器
  • tomcat程序
  • 每周有更新
  • 如何破

破法

  • 采用python的fabric
  • file文件结构如下
    这里写图片描述

头部

#!/usr/bin/python
from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm
import time,os

A - 机器列表

a1='root@xxx'
a2='root@xxx'
a3='root@xxx'
a4='root@xxx'

env.passwords = {
    a1:'xxx',
    a2:'xxx',
    a3:'xxx'
}

env.roledefs = {
    'r1':[a1],
    'r2':[a1,a2],
    'r3':[a1,a3],
    'r4':[a4]
}

B - 基本函数定义

def project_package(path, name):
    with lcd(path):
        local("mvn clean package -Dmaven.test.skip=true -P prod,"+name)

def project_install(path):
    with lcd(path):
        local("mvn clean install -Dmaven.test.skip=true -P prod")

def project_deploy(path):
    with lcd(path):
        local("mvn clean deploy -Dmaven.test.skip=true -P prod")

C - 组合函数定义

# 组合函数
def deploy_to_tomcat(dir, name, port):
    project_update(dir)
    project_package(dir, name)
    project_tomcat_stop(port)
    project_web_bak(dir)
    project_web_clean(dir+name)
    project_put(dir+name+"/target/"+name+"-1.0.war", dir+name+"ROOT.war")
    project_tomcat_start(dir)

D – 定义Task

@task
@roles('r1')
def t1():
    dir = env.basepath + "t1"
    deploy_to_tomcat(dir,'t1', '6770')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值