python fabric
来源:互联网 发布:ios 网络图片尺寸 编辑:程序博客网 时间:2024/06/14 08:22
介绍
Fabric 是一个 Python (2.5-2.7) 库和命令行工具,用来流水线化执行 SSH 以部署应用或系统管理任务。
更具体地说,Fabric 是:
- 一个让你通过 命令行 执行 任意 Python 函数 的工具;
- 一个让通过 SSH 执行 Shell 命令更加 容易 和 pythonic 的子程序库(建立于一个更低层次的库)。
自然地,大部分用户把这两件事结合着用,使用 Fabric 来写和执行 Python 函数或 任务 ,以实现与远程服务器的自动化交互。基于Fabric的特点,我们可以把其用作我们服务的自动化部署。现在通过T99a后台的自动化部署案例,了解下Fabric的基本语法
deploy.py
from __future__ import with_statementfrom fabric.api import *from fabric.contrib.console import confirmimport osenv.user = 'sxkj'env.password = 'sx'env.hosts = ['192.168.199.110']#此处可以有多个hostroot_path = '/sxkj'data_path = '/sxkj/data'app_path = '/sxkj/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
阅读全文
0 0
- python fabric
- Python部署管理工具fabric
- Python lib "Fabric"
- Python: overview of Fabric
- Python Fabric 部署工具
- 项目部署 python fabric
- python fabric模块
- Python fabric实践操作
- python Fabric库学习
- python fabric shell登录
- python + fabric 实现批量部署
- python fabric实现远程部署
- python fabric原来还有rsync
- Python下Fabric的使用
- python 自动化部署工具-fabric
- python运维之fabric
- fabric
- fabric
- ◆竞赛题目◆◇NOIP 2017 普及组◇ 图书管理员
- Android学习——SystenUIService启动
- 注册热键及使用方法
- 关于细粒度图像识别的一些思考
- python sort sorted key cmp
- python fabric
- 分布式系统一致性保障方案总结
- VsCode放大缩小
- 关于3个div在一行,左右固定宽度,中间自适应
- InnoDB log file 设置多大合适?
- 唯快不破:TCP/IP协议疑难杂症全景解析
- deep learning 专项课程一 深层神经网络
- mariadb配置双主多从
- install spawn-fcgi