赞
踩
文中部分内容整理自官方文档。如果文中出现错误,欢迎指出与交流。
Fabric 是一个 Python的库和命令行工具,用来提高基于 SSH 的应用部署和系统管理效率。可以实现与远程服务器的自动化交互。Fabric底层基于paramiko模块。其特点即为简单高效,并且支持多线程。在需要运维数十台至几百台机器(视情况而定)的情况下非常好用。但如果需要运维上千台并不推荐使用Fabric,可以尝试使用saltstack。
在搞清Fabric的作用后,我们可以尝试通过一些简单的程序,来更加深入的了解Fabric。
注:文中实验环境均为Centos7.3。使用的python版本为python2.7。
需要先安装paramiko模块(上文提到了,Fabric基于这个模块)。
#yum install gcc python-crypto python-devel python-paramiko -y
通过pip命令安装Fabric
#pip install fabric
如果没有pip命令,可以通过以下命令安装:
#yum install python-pip
至此Fabric模块就安装好了。
一个合格的教程,一定少不了hello world这个国际惯例:
#vim fabfile.py
注:fabric执行的时候会默认寻找当前路径下的fabfile.py文件。如果文件名为其它,需要在执行的时候通过
-f 文件名
的方式手动指定文件。
def hello():
print "hello world"
Fabric脚本执行并不使用python命令,而是使用fab命令(在安装模块时会一起安装)。所以这个脚本的执行方法为:
#fab hello #hello对应脚本中你想执行的函数名。
Hello world!
Done.
或
#fab -f 你的文件名 hello #此方法针对文件名不为fabfile时
至此我们便基于Fabric完成了一个非常简单的脚本,甚至连Fabric模块都不需要导入。但从中大家可以了解到Fabric脚本就是在文件中定义一个或多个函数,函数中是你要执行的任务。然后通过fab命令执行fabfile.py文件,执行你要执行的函数。
Fabric.api是Fabric中最常用也是最核心的模块。可以使用此模块来实现与远程服务器的交互。简单的使用这些API就可以完成大部分应用场景的需求。
常用api | 说明 | 例子 |
---|---|---|
local | 在本地执行命令 | local(‘username -r’) |
run | 在远程执行命令 | run(‘username -r’) |
lcd | 切换本机路径 | lcd(‘/usr’) |
cd | 切换远程服务器路径 | cd(‘/usr’) |
put | 上传文件到远程服务器 | put(‘本地文件’,’远程路径’) |
get | 从远程服务器下载文件 | get(‘远程文件’,’本地路径’) |
prompt | 获取用户输入(类似input) | prompt(‘input path’) |
confirm | 让用户确认是否继续 | confirm(‘continue?’) |
env | 定义全局信息,如主机、密码等 | env.hosts=’localhost’ |
注:Fabric基于paramiko模块,paramiko底层就是调用ssh命令来对远程主机进行管理。所以要使用Fabric来管理远程主机,要保证服务器端开启sshd服务,并且保证可以成功访问。
查看本地和远程主机的内核版本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。