轻量级自动化运维工具fabric使用与安装

来源:互联网 发布:2016男女对唱新歌网络 编辑:程序博客网 时间:2024/06/06 01:22

Fabirc是基于python实现的SSH命令行工具,简化了SSH的应用程序的部署与系统管理服务。

Fabric的安装

首先需要配置好python的pip工具
使用wget命令下载好,然后解压

 wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

然后解压,进入解压目录中,执行setup的python代码,然后尝试更新pip

tar -xzvf pip-1.5.4.tar.gzcd pip-1.5.4/python setup.py installpip install --upgrade pip

在pip安装完成之后,需要使用yum安装好一些依赖性

yum install make gcc gcc-c++ python-devel python-setuptools -y

直接使用pip安装python的Fabric模块

pip install Fabric

然后即可进行Fabirc的源码安装

cd /usr/local/src/wget https://pypi.python.org/packages/source/F/Fabric/Fabric-1.3.0.tar.gz --no-check-certificate #下载压缩包tar xvf Fabric-1.3.0.tar.gz   #解压cd Fabric-1.3.0/python setup.py  install  #执行安装脚本

最后出现如下提示,即表示安装成功

Using /usr/lib/python2.7/site-packages/pycrypto-2.6.1-py2.7-linux-x86_64.eggFinished processing dependencies for Fabric==1.3.0

fab命令行的使用

fab是fabric的命令行入口
命令的格式为
fab [options] – [shell command]
参数有

-l 定义好的函数名-f 指定的fab入口文件,默认为fabfile.py,也可以自己指定-g 指定网关设备-H 指定目标主机,多台主机的话使用“,”分隔-P 以异步的方式来运行多个主机任务-R 指定角色-t 指定timeout,连接超时的时间-T 设置远程主机命令执行超时的时间-w 执行失败时发出警告,默认终止服务


通过远程主机查询172.25.254.45的主机名

touch fabfile.pyfab -p testroot -H 172.25.254.45 -- 'hostname'

执行结果为

[172.25.254.45] Executing task '<remainder>'[172.25.254.45] run: hostname[172.25.254.45] out: saltstackDone.Disconnecting from 172.25.254.45... done.

在Fabric中支持的常用命令有如下.
local:执行本地命令
lcd:切换本地目录
cd:切换远程目录
run:执行远程命令
sudo:下放权力
put:上传文件
get:下载文件
@task:函数修饰符,将函数转化为task子类
@runs_once:函数修饰符,标示此修饰符的函数只执行一次

几个函数修饰符的使用方式

@task:
为任务添加别名
我们在fab入口文件fabfile.py中编写如下

from fabric.api import task@task(alias='test')def deploy_with_migrantions():      pass 

执行命令

fab -f fabfile.py --list

结果如下

Available commands:    deploy_with_migrantions    test

其中–list参数为列出入口文件中存在的命令
设置默认的任务
入口文件编写如下

from fabric.api import task@task      def migrate():      pass   @task      def push():     pass   @task(default=True)def full_deploy():     provision()     push()      migrate()