fabric官方文件:
fabric最新的版本為2.4.0, 主要依賴模組為invoke
和paramiko
,安裝方式pip install fabric
。
>>> from fabric import connection
>>> c = connection('web1')
>>> result = c.run('uname -s')
linux
>>> result.stdout.strip() == 'linux'
true
>>> result.exited
0>>> result.ok
true
>>> result.command
'uname -s'
>>> result.connection
>>> result.connection.host
'web1'
>>> import getpass
>>> from fabric import connection, config
>>> sudo_pass = getpass.getpass("what's your sudo password?")
what's your sudo password?
>>> config = config(overrides=})
>>> c = connection('db1', config=config)
>>> c.sudo('whoami', hide='stderr')
root
>>> c.sudo('useradd mydbuser')
>>> c.run('id -u mydbuser')
1001
>>> from fabric import connection
>>> result = connection('web1').put('myfiles.tgz', remote='/opt/mydata/')
>>> print("uploaded to ".format(result))
uploaded /local/myfiles.tgz to /opt/mydata/
from fabric import serialgroup as group
def upload_and_unpack(c):
if c.run('test -f /opt/mydata/myfile', warn=true).failed:
c.put('myfiles.tgz', '/opt/mydata')
c.run('tar -c /opt/mydata -xzvf /opt/mydata/myfiles.tgz')
for connection in group('web1', 'web2', 'web3'):
upload_and_unpack(connection)
connection例項建立時並不會主動連線伺服器,而內部實現會在執行命令前嘗試連線,但需要時也可以自行選擇連線,密碼傳輸需要在connection中傳入connect_kwargs=
;
缺省會列印遠端終端的所有資訊,若需要選擇性列印資訊,需要在run
傳入hide
引數,這部分可以檢視invoke
的文件說明。hide
的可選引數如下:
hide = none # default
hide = true or 'both' # 隱藏stdout和stderr流資訊
hide = 'out' or 'stdout' # 隱藏stdout流資訊
hide = 'err' or 'stderr' # 隱藏stderr流資訊
以上。 python Requests模組的簡要介紹
pip install requests import requests url response requests.get url 獲得請求 response.encoding utf 8 改變其編碼 html response.text 獲得網頁內容 binary content respons...
Python fabric遠端自動部署簡介
fabric是乙個python 2.5 2.7 庫,用於簡化使用ssh的應用程式部署或系統管理任務。它提供的操作包括 執行本地或遠端shell 本文主要介紹centos 6.3上使用fabric進行自動部署的基本方法。1.環境部署 本節主要介紹python版本公升級,pip及fabric部署方法。1...
Python Fabric遠端自動部署簡介
fabric是乙個python 2.5 2.7 庫,用於簡化使用ssh的應用程式部署或系統管理任務。本文主要介紹centos 6.3上使用fabric進行自動化部署的基本方法。本節主要介紹python版本公升級,pip及fabric安裝方法。centos 6.3自帶的python版本為2.6,首先需...