Fabric自动化部署的简单使用
来源:互联网 发布:网络性能参数指标 编辑:程序博客网 时间:2024/05/20 07:17
Fabric 使用 ssh(通过 paramiko 库)在多个服务器上批量执行任务、上传、下载。
使用前首先需要安装fabric包(我使用的系统为ubuntu16.04)
pip install fabric
我们使用fabric部署之前,首先要花简单的几分钟写一个部署脚本(脚本名字尽量为fabfile.py),如果我们使用git pull的方式进行部署,可能只要一分钟就可以了
下面是示例代码:
# -*- coding=utf-8 -*-from fabric.api import *# 远程服务器登陆使用的用户名env.user = 'root'# 需要进行操作的服务器地址env.hosts = ['test.com', ]def deploy(): with cd('/tmp/example'): run('git pull')
运行时仅需要在命令行输入fab deploy
脚本就会自动链接所有给出的服务器执行deploy函数下的命令了。如果我们还有一个叫example的函数需要执行,运行fab deploy example
即可
如果创建脚本时脚本名不为fabfile.py,当然这也是可以的,但是执行脚本的命令就要修改成fab -f test.py deploy
默认情况下,当命令执行失败时,Fabric会停止执行后续命令。有时,我们允许忽略失败的命令继续执行,比如run(‘rm /tmp/example’)在文件不存在的时候有可能失败,这时可以用with settings(warn_only=True):
执行命令,这样Fabric只会显示警告信息而不会中断执行。
Fabric所有的操作都是基于SSH执行的,必要时会要求用户输入密码
管理SSH密码、用户、端口
尽管更推荐使用SSH公钥认证,但是Fabric还是提供了管理密码的机制。Fabric提供了两层密码。
如果你的server有相同的密码,可以在env.password
中设置默认的密码;如果server密码不同,还可以在env.passwords
中设置(host,password)
对,为每个server设置单独的ssh密码。
上面的host字符串采用这种格式:username@hostname:port。所以,在指定ssh密码的同时,也就指定了ssh用户。同密码一样,你也可以在env.user
中指定一个默认的用户。如果都没有指定,执行fab命令时会提示你输入密码。
函数说明:
1:from fabric.api import *local #执行本地命令,如local('uname -s')lcd #切换本地目录,如lcd('/home')cd #切换远程目录,如cd('/var/logs')run #执行远程命令,如run('free -m')sudo #sudo方式执行远程命令,如sudo('/etc/init.d/httpd start')put #上次本地文件导远程主机,如put('/home/user.info','/data/user.info')get #从远程主机下载文件到本地,如:get('/data/user.info','/home/user.info')prompt #获得用户输入信息,如:prompt('please input user password:')confirm #获得提示信息确认,如:confirm('Test failed,Continue[Y/N]?')reboot #重启远程主机,如:reboot()@task #函数修饰符,标识的函数为fab可调用的,非标记对fab不可见,纯业务逻辑@runs_once #函数修饰符,标识的函数只会执行一次,不受多台主机影响@roles() #运行指定的角色组里,通过env.roledefs里的定义2:from fabric.colors import *print blue(text)print cyan(text)print green(text)print magenta(text)print red(text)print white(text)print yellow(text)
函数说明部分转载于Fabric远程自动化使用说明
- Fabric自动化部署的简单使用
- 基于fabric和hg的自动化部署
- 自动化部署工具Fabric
- 使用fabric实现简单自动部署
- 使用Fabric自动化你的任务
- 使用Fabric自动化你的任务
- 使用Fabric自动化你的任务
- 自动化部署工具Fabric简介
- python 自动化部署工具-fabric
- Fabric集群简单部署
- python之使用Fabric自动化你的任务
- fabric简单使用
- 使用Fabric部署网站应用
- 使用Fabric部署网站应用
- 使用Fabric部署网站应用
- 基于Fabric的代码自动化发布
- 使用Fabric部署Hadoop和HBase
- 使用Chef自动化部署框架的好处
- Win10子系统Bash安装 Ubuntu安装Katoolin 实现自动安装kali工具
- I can 前端-05 DOM模型与Window对象
- HDU 3697 Selecting courses(贪心)
- cpio打包和压包的方法示例
- 5.6 final关键字
- Fabric自动化部署的简单使用
- wxWidgets教程(16)——wxMenuBar、wxToolBar与wxStatusBar用法
- 论Linux文件系统
- 用两个栈实现队列
- 计算机视觉中,有哪些比较好的目标跟踪算法?(下)
- msyql完全离线安装(系统为ubuntu14 32位系统, MySQL为32位数据库,依赖包全部都有详细说明)
- python 切片+增删改查...
- [BZOJ2120][BZOJ2453]-带修改莫队-时间复杂度理解
- 第六章 接口与实现 编程题