Fabirc是基于python实现的SSH命令行工具,简化了SSH的应用程序的部署与系统管理服务。
首先需要配置好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.gz
cd pip-1.5.4/
python setup.py install
pip 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.egg
Finished processing dependencies for Fabric==1.3.0
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.py
fab -p testroot -H 172.25.254.45 -- 'hostname'
执行结果为
[172.25.254.45] Executing task ''
[172.25.254.45] run: hostname
[172.25.254.45] out: saltstack
Done.
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()