python fabric

介绍

Fabric是一个Python(2.5-2.7)库和命令行工具,用来流水线化执行SSH以部署应用或系统管理任务。

更具体地说,面料是:

  • 一个让你通过命令行执行  任意Python函数  的工具;
  • 一个让通过SSH执行Shell命令更加容易和  pythonic  的子程序库(建立于一个更低层次的库)。

自然地,大部分用户把这两件事结合着用,使用Fabric来写和执行Python函数或任务,以实现与远程服务器的自动化交互。基于Fabric的特点,我们可以把其用作我们服务的自动化部署。现在通过****后台的自动化部署案例,了解下面料的基本语法

deploy.py

from __future__ import with_statement
from fabric.api import *
from fabric.contrib.console import confirm
import os
env.user = '****'
env.password = '**'
env.hosts = ['192.168.100.110']#此处可以有多个host

root_path = '/****'
data_path = '/****/data'
app_path = '/****/app'


def generate_directories():
    '''
    创建目录结构
    :return:
    :rtype:
    '''
    sudo('rm -rf {}'.format(root_path))
    sudo('mkdir -p -m 777 {}'.format(root_path))
    run("mkdir -p {}/logs/t99a".format(data_path))
    run("mkdir -p {}/videos".format(data_path))
    run("mkdir -p {}".format(app_path))



def copy_install_files():
    '''
    拷贝相关文件
    :return:
    :rtype:
    '''
    with cd('~/.ssh'):
        sudo('rm -rf config id_rsa_sxpdate')
    put('bootfiles/ssh/*','~/.ssh/')
    run('chmod 600 ~/.ssh/*')


def deploy_codes():
    '''
    部署应用
    :return:
    :rtype:
    '''
    with cd(app_path):
        run('git clone sxupdate:T99ALGORITHM.git ./t99a')


def deploy_models():
     '''
    部署模型
    :return:
    :rtype:
    '''
    with cd(os.path.join(app_path,'t99a')):
        run('wget  -r -nH --cut-dirs=2  ftp://sxkj:zfwzyzxq@192.168.199.31/datashare/t99a/models')


def launch_containers():
    '''
    启动所有容器
    :return:
    :rtype:
    '''
    with cd('{}/t99a/dockers/'.format(app_path)):
        with settings(warn_only=True):
            run('sh ./create_t99lan.sh')
        for compose_dir in ['performance_monitor','logio','t99_algorithm']:
            with cd(compose_dir):
                run('docker-compose down')
                run('docker-compose up -d')

def t99():
    '''
    部署应用的入口
    '''
    generate_directories()
    copy_install_files()
    deploy_codes()
    deploy_models()
    launch_containers()     
     
   


 



 
    


 
    


 
    


 
    

 

最后,我们的本地执行命令:

fab -f ./deploy.py t99

 

安装python(mac自带,window需要安装)
下载pip  
  curl -O https://bootstrap.pypa.io/get-pip.py
找到pip,执行
python get-pip.py
若无权限,则
sudo python get-pip.py
输入密码(电脑密码)
创建目录
mkdir .pip
进入目录 pip
cd pip
输入 nano pip.conf
复制粘贴 [global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
ctrl + o 保存,ctrl + o 退出
安装fabric
pip install fabric
若无权限,报错,则
sudo pip install fabric
输入密码
最后执行.py文件
fab -f ./所要执行的文件 文件里所要执行的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值