溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在Linux上如何安裝 Fabric

發(fā)布時間:2021-10-25 11:43:49 來源:億速云 閱讀:431 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹在Linux上如何安裝 Fabric,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

Fabric 是一個用 Python 編寫的命令行工具庫,它可以幫助系統(tǒng)管理員高效地執(zhí)行某些任務(wù),比如通過 SSH  到多臺機(jī)器上執(zhí)行某些命令,遠(yuǎn)程布署應(yīng)用等。

在使用之前,如果你擁有使用 Python 的經(jīng)驗?zāi)軒湍愀玫氖褂?Fabric。當(dāng)然,如果沒有那也不影響使用 Fabric。

我們?yōu)槭裁匆x擇 Fabric:

  • 簡單

  • 完備的文檔

  • 如果你會 Python,不用增加學(xué)習(xí)其他語言的成本

  • 易于安裝使用

  • 使用便捷

  • 支持多臺機(jī)器并行操作

在 Linux 上如何安裝 Fabric

Fabric 有一個特點就是要遠(yuǎn)程操作的機(jī)器只需要支持標(biāo)準(zhǔn)的 OpenSSH 服務(wù)即可。只要保證在機(jī)器上安裝并開啟了這個服務(wù)就能使用 Fabric  來管理機(jī)器。

依賴

  • Python 2.5 或更新版本,以及對應(yīng)的開發(fā)組件

  • Python-setuptools 和 pip(可選,但是非常推薦)gcc

我們推薦使用 pip 安裝 Fabric,但是你也可以使用系統(tǒng)自帶的包管理器如 yum, dnf 或 apt-get 來安裝,包名一般是fabric 或  python-fabric。

如果是基于 RHEL/CentOS 的發(fā)行版本的系統(tǒng),你可以使用系統(tǒng)自帶的 EPEL 源 來安裝 fabric。

# yum install fabric   [適用于基于 RedHat 系統(tǒng)] # dnf install fabric   [適用于 Fedora 22+ 版本]

如果你是 Debian 或者其派生的系統(tǒng)如 Ubuntu 和 Mint 的用戶,你可以使用 apt-get 來安裝,如下所示:

# apt-get install fabric

如果你要安裝開發(fā)版的 Fabric,你需要安裝 pip 來安裝 master 分支上***版本。

# yum install python-pip       [適用于基于 RedHat 系統(tǒng)] # dnf install python-pip       [適用于Fedora 22+ 版本] # apt-get install python-pip   [適用于基于 Debian 系統(tǒng)]

安裝好 pip 后,你可以使用 pip 獲取***版本的 Fabric。

# pip install fabric

如何使用 Fabric 來自動化管理 Linux 任務(wù)

現(xiàn)在我們來開始使用 Fabric,在之前的安裝的過程中,F(xiàn)abric Python 腳本已經(jīng)被放到我們的系統(tǒng)目錄,當(dāng)我們要運(yùn)行 Fabric 時輸入  fab 命令即可。

在本地 Linux 機(jī)器上運(yùn)行命令行

按照慣例,先用你喜歡的編輯器創(chuàng)建一個名為 fabfile.py 的 Python  腳本。你可以使用其他名字來命名腳本,但是就需要指定這個腳本的路徑,如下所示:

# fabric --fabfile /path/to/the/file.py

Fabric 使用 fabfile.py 來執(zhí)行任務(wù),這個文件應(yīng)該放在你執(zhí)行 Fabric 命令的目錄里面。

例子 1:創(chuàng)建入門的 Hello World 任務(wù):

# vi fabfile.py

在文件內(nèi)輸入如下內(nèi)容:

def hello(): print('Hello world, Tecmint community')

保存文件并執(zhí)行以下命令:

# fab hello

在Linux上如何安裝 Fabric

Fabric 工具使用說明

例子 2:新建一個名為 fabfile.py 的文件并打開:

粘貼以下代碼至文件:

#!  /usr/bin/env python from fabric.api import local def uptime():     local('uptime')

保存文件并執(zhí)行以下命令:

# fab uptime

在Linux上如何安裝 Fabric

Fabric: 檢查系統(tǒng)運(yùn)行時間

讓我們看看這個例子,fabfile.py 文件在本機(jī)執(zhí)行了 uptime 這個命令。

在遠(yuǎn)程 Linux 機(jī)器上運(yùn)行命令來執(zhí)行自動化任務(wù)

Fabric API 使用了一個名為 env 的關(guān)聯(lián)數(shù)組(Python 中的詞典)作為配置目錄,來儲存 Fabric 要控制的機(jī)器的相關(guān)信息。

env.hosts 是一個用來存儲你要執(zhí)行 Fabric 任務(wù)的機(jī)器的列表,如果你的 IP 地址是 192.168.0.0,想要用 Fabric  來管理地址為 192.168.0.2 和 192.168.0.6 的機(jī)器,需要的配置如下所示:

#!/usr/bin/env python from fabric.api import env     env.hosts = [ '192.168.0.2', '192.168.0.6' ]

上面這幾行代碼只是聲明了你要執(zhí)行 Fabric 任務(wù)的主機(jī)地址,但是實際上并沒有執(zhí)行任何任務(wù),下面我們就來定義一些任務(wù)。Fabric  提供了一系列可以與遠(yuǎn)程服務(wù)器交互的方法。

Fabric 提供了眾多的方法,這里列出幾個經(jīng)常會用到的:

  • run - 可以在遠(yuǎn)程機(jī)器上運(yùn)行的 shell 命令

  • local - 可以在本機(jī)上運(yùn)行的 shell 命令

  • sudo - 使用 root 權(quán)限在遠(yuǎn)程機(jī)器上運(yùn)行的 shell 命令

  • get - 從遠(yuǎn)程機(jī)器上下載一個或多個文件

  • put - 上傳一個或多個文件到遠(yuǎn)程機(jī)器

例子 3:在多臺機(jī)子上輸出信息,新建新的 fabfile.py 文件如下所示

#!/usr/bin/env python from fabric.api import env, run env.hosts = ['192.168.0.2','192.168.0.6'] def echo():     run("echo -n 'Hello, you are tuned to Tecmint ' ")

運(yùn)行以下命令執(zhí)行 Fabric 任務(wù)

# fab echo

在Linux上如何安裝 Fabric

fabric: 自動在遠(yuǎn)程 Linux 機(jī)器上執(zhí)行任務(wù)

例子 4:你可以繼續(xù)改進(jìn)之前創(chuàng)建的執(zhí)行 uptime 任務(wù)的 fabfile.py  文件,讓它可以在多臺服務(wù)器上運(yùn)行 uptime 命令,也可以檢查其磁盤使用情況,如下所示:

#!/usr/bin/env pythonfrom fabric.api import env, runenv.hosts = ['192.168.0.2','192.168.0.6']def uptime(): run('uptime')def disk_space(): run('df -h')

保存并執(zhí)行以下命令

# fab uptime# fab disk_space

在Linux上如何安裝 Fabric

Fabric:自動在多臺服務(wù)器上執(zhí)行任務(wù)

在遠(yuǎn)程服務(wù)器上自動化布署 LAMP

例子 5:我們來嘗試一下在遠(yuǎn)程服務(wù)器上布署 LAMP(Linux, Apache, MySQL/MariaDB and PHP)

我們要寫個函數(shù)在遠(yuǎn)程使用 root 權(quán)限安裝 LAMP。

在 RHEL/CentOS 或 Fedora 上

#!/usr/bin/env python from fabric.api import env, run env.hosts = ['192.168.0.2','192.168.0.6'] def deploy_lamp():     run ("yum install -y httpd mariadb-server php php-mysql")

在 Debian/Ubuntu 或 Linux Mint 上

#!/usr/bin/env python from fabric.api import env, run env.hosts = ['192.168.0.2','192.168.0.6'] def deploy_lamp():     sudo("apt-get install -q apache2 mysql-server libapache2-mod-php5 php5-mysql")

保存并執(zhí)行以下命令:

# fab deploy_lamp

注:由于安裝時會輸出大量信息,這個例子我們就不提供屏幕 gif 圖了

現(xiàn)在你可以使用 Fabric 和上文例子所示的功能來自動化的管理 Linux 服務(wù)器上的任務(wù)了。

一些 Fabric 有用的選項

  • 你可以運(yùn)行 fab -help 輸出幫助信息,里面列出了所有可以使用的命令行信息

  • –fabfile=PATH 選項可以讓你定義除了名為 fabfile.py 之外的模塊

  • 如果你想用指定的用戶名登錄遠(yuǎn)程主機(jī),請使用 -user=USER 選項

  • 如果你需要密碼進(jìn)行驗證或者 sudo 提權(quán),請使用 –password=PASSWORD 選項

  • 如果需要輸出某個命令的詳細(xì)信息,請使用 –display=命令名 選項

  • 使用 --list 輸出所有可用的任務(wù)

  • 使用 --list-format=FORMAT 選項能格式化 -list 選項輸出的信息,可選的有 short、normal、 nested

  • --config=PATH 選項可以指定讀取配置文件的地址

  • -–colorize-errors 能顯示彩色的錯誤輸出信息

  • --version 輸出當(dāng)前版本

以上是“在Linux上如何安裝 Fabric”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI