首页 > 其他 > 详细

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

时间:2017-08-11 14:28:58      阅读:239      评论:0      收藏:0      [点我收藏+]
#!/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 = wangteng
env.email = wangteng@qq.cn
env.gitlab_url = http://git.qqq.cn/qq_devops/zq.git


def test_exist_dir():
    # 检查仓库是否已经存在
    if int(run(" [ -e ‘%s‘ ] && echo 11 || echo 10" % env.sdir)) == 11:
        result = True
    else:
        result = False
    return result


@task
def 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:
        pass


def 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)


@task
def start():
    flag = test_exist_dir()
    if flag:
        get_file()
    else:
        make_dir()


@task
def 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 自动创建仓库并下载或更新代码

原文:http://www.cnblogs.com/wt11/p/7345388.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!