成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Fabric:通過SSH來自動化管理Linux任務和布署應用

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

[[170444]]

當要管理遠程機器或者要布署應用時,雖然你有多種命令行工具可以選擇,但是其中很多工具都缺少詳細的使用文檔。

在這篇教程中,我們將會一步一步地向你介紹如何使用 fabric 來幫助你更好得管理多臺服務器。

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

在使用之前,如果你擁有使用 Python 的經(jīng)驗能幫你更好的使用 Fabric。當然,如果沒有那也不影響使用 Fabric。

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

  • 簡單
  • 完備的文檔
  • 如果你會 Python,不用增加學習其他語言的成本
  • 易于安裝使用
  • 使用便捷
  • 支持多臺機器并行操作

在 Linux 上如何安裝 Fabric

Fabric 有一個特點就是要遠程操作的機器只需要支持標準的 OpenSSH 服務即可。只要保證在機器上安裝并開啟了這個服務就能使用 Fabric 來管理機器。

依賴

  • Python 2.5 或更新版本,以及對應的開發(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。

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

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

  1. # apt-get install fabric 

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

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

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

  1. # pip install fabric 

如何使用 Fabric 來自動化管理 Linux 任務

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

在本地 Linux 機器上運行命令行

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

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

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

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

  1. # vi fabfile.py 

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

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

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

  1. # fab hello 

Fabric 工具使用說明

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

粘貼以下代碼至文件:

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

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

  1. # fab uptime 

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

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

在遠程 Linux 機器上運行命令來執(zhí)行自動化任務

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

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

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

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

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

  • run - 可以在遠程機器上運行的 shell 命令
  • local - 可以在本機上運行的 shell 命令
  • sudo - 使用 root 權限在遠程機器上運行的 shell 命令
  • get - 從遠程機器上下載一個或多個文件
  • put - 上傳一個或多個文件到遠程機器

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

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

運行以下命令執(zhí)行 Fabric 任務

  1. # fab echo 

fabric: 自動在遠程 Linux 機器上執(zhí)行任務

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

  1. #!/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í)行以下命令

  1. # fab uptime# fab disk_space 

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

在遠程服務器上自動化布署 LAMP

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

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

在 RHEL/CentOS 或 Fedora 上

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

在 Debian/Ubuntu 或 Linux Mint 上

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

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

  1. # fab deploy_lamp 

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

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

一些 Fabric 有用的選項

  • 你可以運行 fab -help 輸出幫助信息,里面列出了所有可以使用的命令行信息
  • –fabfile=PATH 選項可以讓你定義除了名為 fabfile.py 之外的模塊
  • 如果你想用指定的用戶名登錄遠程主機,請使用 -user=USER 選項
  • 如果你需要密碼進行驗證或者 sudo 提權,請使用 –password=PASSWORD 選項
  • 如果需要輸出某個命令的詳細信息,請使用 –display=命令名 選項
  • 使用 --list 輸出所有可用的任務
  • 使用 --list-format=FORMAT 選項能格式化 -list 選項輸出的信息,可選的有 short、normal、 nested
  • --config=PATH 選項可以指定讀取配置文件的地址
  • -–colorize-errors 能顯示彩色的錯誤輸出信息
  • --version 輸出當前版本

總結

Fabric 是一個強大并且文檔完備的工具,對于新手來說也能很快上手,閱讀提供的文檔能幫助你更好的了解它。如果你在安裝和使用 Fabric 時發(fā)現(xiàn)什么問題可以在評論區(qū)留言,我們會及時回復。

責任編輯:武曉燕 來源: Linux中國
相關推薦

2011-02-28 13:36:31

自動化管理VMControl

2019-11-14 10:00:18

Linuxcron任務自動化任務

2021-11-23 12:11:59

PowershellLinuxDevOps

2021-09-17 15:56:14

數(shù)據(jù)平臺自動化

2015-09-16 11:13:51

ChefWindows集群運維

2009-09-07 09:29:26

2023-08-03 09:10:37

2022-08-30 19:14:31

LinuxBash

2025-01-02 08:00:39

2015-12-30 14:50:45

Kubernetes容器技術Docker

2021-11-29 18:11:33

自動化現(xiàn)代化網(wǎng)絡優(yōu)化

2024-06-12 12:36:48

CrontabPython

2019-05-15 09:47:06

網(wǎng)絡自動化網(wǎng)絡中斷網(wǎng)絡

2022-10-09 14:50:44

Python腳本

2022-07-11 10:08:19

系統(tǒng)管理任務自動化

2020-01-16 09:00:00

AI人工智能ML

2015-10-21 15:08:25

電纜自動化

2013-08-28 10:38:01

2010-12-06 09:59:58

2012-05-05 21:28:44

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一区二区冲田杏梨 | 国产精品久久久久一区二区三区 | 中文福利视频 | 国产91九色 | 欧美成人精品 | 中文字幕91| 欧美日韩中文字幕在线 | 免费看欧美一级片 | www.操com | 国产精品一二三区 | 九九国产在线观看 | 欧美在线成人影院 | 久草欧美视频 | 久久香蕉精品视频 | 亚洲精品一二区 | 免费网站国产 | 亚洲精品一区二区在线观看 | 狠狠干狠狠操 | 国产毛片久久久久久久久春天 | 日本三级网址 | 亚洲 中文 欧美 日韩 在线观看 | 91porn成人精品 | 精品欧美激情精品一区 | 久久久久久久一区二区 | 91精品无人区卡一卡二卡三 | 国产三级大片 | 日日干夜夜操天天操 | 激情国产 | 自拍偷拍一区二区三区 | 99精品一区二区 | 91精品国产色综合久久 | 97精品视频在线 | 国产精品久久久久久福利一牛影视 | 久久国产精品精品国产色婷婷 | 久久久久久久久综合 | 日韩中出 | 中文字幕免费中文 | 日韩中文不卡 | 精品视频在线免费观看 | 午夜精品一区二区三区在线观看 | 欧美日韩福利 |