# coding:utf-8
from fabric.api import *
import getpass
env.user = "用戶名"
env.hosts = ["服務(wù)器IP或域名1", "服務(wù)器IP或域名2"]
env.port = "22"
# 只需輸入一次密碼
@runs_once
def get_passwd():
return getpass.getpass('請(qǐng)輸入服務(wù)器登錄密碼: ')
# 打包
@task
def pack():
local("rm -f ../project.tar.gz")
local("tar czvf ../project.tar.gz --exclude=*.pyc ../project")
# 部署
@task
def deploy():
env.password = get_passwd()
with settings(warn_only=True):
# 前面是源,后面是目標(biāo)
put("/home/lee/Code/project/project.tar.gz", "/home/lee/project.tar.gz")
run("sudo /usr/local/bin/supervisorctl stop all")
run("/bin/rm -rf /home/lee/project")
with cd("/home/lee"):
run("/bin/tar zxvf project.tar.gz")
run("/bin/rm -f /home/lee/project.tar.gz")
run("sudo /usr/local/bin/supervisorctl start all")
run("sudo /usr/local/bin/supervisorctl status")
# 先打包后部署
@task
def go():
env.password = get_passwd()
pack()
deploy()
fab pack
fab deploy
fab go
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。