可以参考:Fabric官方文档
可以参考:廖雪峰的官方网站
可以参考:Python模块之Fabric

可以搭配使用:Portainer,是一个轻量级的Docker环境管理UI,可以管理docker host和docker swarm


1 为什么使用Fabric

Fabric的神奇之处在于,在本地执行的是py文件,就可以在远程服务器执行一系列写好的shell脚本


2 安装

本机目标机器安装对应包(注意,本机和目标机器都要有)
pip install fabric


3 本地代码示例

新手疑问解答:下面出现的env和本地虚拟环境没有联系,本地没有py虚拟环境也能正常运行。

# -*- coding: utf-8 -*-
#!/usr/bin/env python
from fabric.api import run, env
from fabric.decorators import task

from invoke.util import cd

env.hosts = ['192.168.37.133']
env.port = '22'
env.user = 'root'
env.password = '123456'

@task
def init():
    with cd('/'):
        run('echo hello',pyt=True)

@task
def deploy():
    with cd('/'):
        run('pwd')
        run('whoami')
        run('ls -l')
        run('cd /home/hanquan/ && touch mytest1')
        run('cd /home/hanquan/ && ls -l')

4 执行

本地切进py目录,运行:fab deploy
运行结果如下:
在这里插入图片描述

  • 如果提示ImportError: No module named 'fabric.api'找不到模块,经过网上查阅,发现是版本的问题,高版本把这个模块移除了
    在这里插入图片描述
    安装个低版本就行,下面这个就可以:
    pip install fabric==1.14.0
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐