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.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命令行的使用
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 '<remainder>'
[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()