可以参考: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