首页 > 代码库 > fabric 自动创建仓库并下载或更新代码

fabric 自动创建仓库并下载或更新代码

#!/usr/bin/python# -*- coding: utf-8 -*from fabric.api import *from fabric.contrib.files import *## 需要注意的是,这里的host strings必须由username@host:port三部分构成,缺一不可,否则运行时还是会要求输入密码env.hosts = [    root@2.21.103.123,]env.passwords = {    root@2.21.103.123:22: 111111,}env.sdir="/data/soft/soft/"env.username = wangtengenv.email = wangteng@qq.cnenv.gitlab_url = http://git.qqq.cn/qq_devops/zq.gitdef test_exist_dir():    # 检查仓库是否已经存在    if int(run(" [ -e ‘%s‘ ] && echo 11 || echo 10" % env.sdir)) == 11:        result = True    else:        result = False    return result@taskdef git_config():    # 配置git,这个配置只需一次就好    try:        run(git config --global user.name "%s"%env.username)        run(git config --global user.email "%s"%env.email)        run(git remote add origin %s%env.gitlab_url)    except:        passdef make_dir():    # 如果目录不存在,则创建目录,初始化为仓库,并将代码下载到仓库    run(mkdir -p %s;git init%(env.sdir,))    git_config()    run(cd %s;git clone %s%(env.sdir,env.gitlab_url))def get_file():    # 如果仓库存在,进行代码更新    dir_name = env.sdir+env.gitlab_url.split(/)[-1].split(.)[0]    run(cd %s;git pull%dir_name)@taskdef start():    flag = test_exist_dir()    if flag:        get_file()    else:        make_dir()@taskdef no_username_password():    run(cd /;git config --global credential.helper store)# fab -f test_fabric.py start --hide status,running,stdout,user,aborts,warnings,stderr 忽略所有输出

 

fabric 自动创建仓库并下载或更新代码