每次部署时都输入用户名密码好麻烦
以前写的发布脚本,可以参考下
# -*- coding: utf-8 -*
#添加中文注释的编码
#fabfile.py
from fabric.api import *
env.user = 'root'
env.hosts = ['192.168.1.100']
#远程服务器的密码,这个建议不要填写,宁愿在运行的过程输入,因为这是明文显示的,不安全
#env.password = 'testtest'
#从版本库取出,并删除.svn文件
def download():
local('rm -rf /tmp/newer' )
local('mkdir /tmp/newer')
local('svn checkout svn://localhost/newer /tmp/newer')
local('find /tmp/newer -name ".svn" | xargs rm -rf')
#压缩打包
def pack():
with lcd('/tmp/'):
local('tar czvf newer.tar.gz ./newer')
#部署远程服务器目录结构
def display():
run('rm -rf /var/www/html/tmp')
run('mkdir /var/www/html/tmp')
# 将本地的压缩包发送到远程服务器
put('/tmp/newer.tar.gz','/var/www/html/tmp')
with cd('/var/www/html/tmp'):
run('tar xvf newer.tar.gz')
#都部分目录进行特别处理
with cd('/var/www/html/newer/public/'):
run('cp -r ueditor ../../tmp')
with cd('/var/www/html/'):
run('rm -rf newer')
run('cp -r /var/www/html/tmp/newer ./')
with cd('/var/www/html/newer/public'):
run('rm -rf ueditor')
run('cp -r /var/www/html/tmp/ueditor ./')
# 执行部署
def go():
download()
pack()
display()
参考:
Python Fabric 部署工具
http://docs.fabfile.org/en/latest/usage/env.html#key-filename
你不看文档的吗