Fabric實現閘道器模式檔案上傳與執行

2021-09-11 18:05:59 字數 2198 閱讀 2422

一 點睛

本實戰通過fabric的env物件定義閘道器模式,即俗稱的中轉、堡壘機環境。

定義格式為「env.gateway='192.168.0.105'」,其中 ip「192.168.0.105」為堡壘機ip,再結合任務函式實現目標主機檔案上傳與執行的操作。

二 **

#coding=utf-8

#!/usr/bin/env python

from fabric.api import *

from fabric.context_managers import *

from fabric.contrib.console import confirm

env.user='root'

env.gateway='192.168.0.105' # 定義堡壘機ip,作為檔案上傳、執行的中轉裝置

env.hosts=['192.168.0.101'] # 目標業務機

# 通過env.passwords字典變數指定各主機的密碼

env.passwords =

lpackpath="/home/test.tar.gz" # 本地安裝包路徑

rpackpath="/tmp/install" # 遠端安裝包路徑

@task

def put_task():

run("mkdir -p /tmp/install")

with settings(warn_only=true):

result = put(lpackpath, rpackpath) # 上傳安裝包

if result.failed and not confirm("put file failed, continue[y/n]?"):

abort("aborting file put task!")

@task

def run_task(): # 執行遠端命令

with cd("/tmp/install"):

run("tar -zxvf test.tar.gz")

with cd("data/"): # 使用with繼續繼承/tmp/install目錄位置

run("date")

@task

def go(): # 上傳、安裝組合

put_task()

run_task()

三 執行結果

[root@localhost pymaintain]# fab -f 7_3_5.py go

[192.168.0.101] executing task 'go'

[192.168.0.101] run: mkdir -p /tmp/install

[192.168.0.101] login password for 'root':

[192.168.0.101] put: /home/test.tar.gz -> /tmp/install/test.tar.gz

[192.168.0.101] run: tar -zxvf test.tar.gz

[192.168.0.101] out: data/test.txt

[192.168.0.101] out:

[192.168.0.101] run: date

[192.168.0.101] out: sat mar 2 11:52:39 cst 2019

[192.168.0.101] out:

done.

disconnecting from 192.168.0.105... done.

disconnecting from 192.168.0.101... done.

四 說明

通過簡單的配置env.gateway='192.168.0.105',就可以輕鬆實現堡壘機環境的檔案上傳及執行,相比paramiko的實現方法簡潔了很多,編寫的任務函式完全不用考慮堡壘機環境,配置env.gateway即可。

jQuery Mobile PHP實現檔案上傳

很簡單的乙個小例子 jquery mobile php 通過超全域性 files 上傳,然後用move uploaded file 方法把上傳的移動到到本地伺服器下的資料夾,下面是html和php的 複製 如下 css 首頁 nbs程式設計客棧p 複製 如下 if files file error ...

ubuntu上實現遠端訪問和ftp檔案上傳

1.sudo apt get install openssh server 2.cd etc ssh 3.sudo vim sshd config 4.修改 permitrootlogin yes 5.重啟服務 service sshd restart 6.ifconfig 檢視ip 遠端連線 7....

singleton設計模式的C 實現 上

singleton 設計模式的c 實現電子科技大學 張申 handi sina.com 關鍵字 singleton 設計模式 同步 c 1 singleton模式。singleton 譯為單件或單態 模式是 設計模式中比較簡單而常用的模式。有些時候在整個應用程式中,會要求某個類有且只有乙個例項,這個...