使用 Func 批量管理 Linux 伺服器

func 應用命令實例

接下來一口氣介紹多個實例,讓大家更了解它如何運作。例如要取得主機 bogon 檔案系統的 i 節點使用情況,便可用以下命令(圖4)。
func “bogon” call command run “df –i”    (ENTER)
要查看所有主機 uptime,開啟3個線程同步運行,超時時間為 5 秒,可用以下命令。
func -t 3 “*” call –forks=‘5′ –sync command run “uptime”    (ENTER)
格式化輸出預設格式為 Python,並可加入「–json」或「–xml」來輸出 JSON (JavaScript Object Notation)。JSON 是一種輕量級的數據交換格式,採用完全獨立於語言的文本格式,這些特性使 JSON 成為理想的數據交換語言。JSON 易於人閱讀和編寫,同時也易於機器解析和生成 XML 格式。

圖4:取得主機 bogon 檔案系統的 i 節點使用情況。
圖4:取得主機 bogon 檔案系統的 i 節點使用情況。

要查看遠程主機 bogon 的 /etc 目錄權限,可用以下命令。
func “bogon” call command run “ls -dl /etc/”    (ENTER)
要為遠程主機的 /tmp/f1 目錄加入可執行權限,,可用以下命令。
func “bogon” call command run “chmod u+x/tmp/f1”    (ENTER)
要查看所有 Minions本機的22埠號開放情況,可用以下命令。
func “*” call networktest isportopen localhost22    (ENTER)
要殺掉所有Minions 主機的 httpd 進程,可用以下命令。
func “*” call process pkill httpd -9    (ENTER)
要查看當前有哪些伺服器註冊到主控機,可用以下命令。
func “*” ping    (ENTER)
要查看所有伺服器的硬體訊息,可用以下命令。
func “*” call hardware info    (ENTER)
要啟動遠程主機 bogon 上的 httpd 服務,可用以下命令。
func “*” call command run “systemctl restart httpd” | sed ‘s/\\n/\n/g’    (ENTER)
要在所有伺服器上統一掛載某個儲存目錄,可用以下命令。
func “*” call mount xxx:/yyy/zzz /path/to/dir    (ENTER)
要在遠程主機上安裝套件,可用以下命令。
func “bogon” call yumcmd install “mariadb-server” | sed ‘s/\\n/\n/g’    (ENTER)

生產應用場景示例

哪麼在實際環境下應該如何侯用呢?例如系統管理員要在幾個 Linux 主機執行一個 shell 腳本檔案,可以使用通過 func工具實現,第一步可為所有 Minions 主機複製腳本檔案。
func “*” copyfile -f /tmp/check.sh –remotepath=/tmp/file    (ENTER)
第二步判斷檔案是否上傳成功。
func “*” call command exists /tmp/file    (ENTER)
第三步在所有 Minions 主機上執行腳本。
func “*” call command run ” /tmp/file”    (ENTER)
最後刪除使用的臨時檔案。
func “*” call command run “rm /tmp/file”    (ENTER)
在運維的日常工作中,集中控制是相關人員很關心的問題。使用 Func 工具可以實現對所有伺服器的批量操作、單點操作、以及同類機器的操作。

作者簡介


曹江華
畢業於工科大學機電一體化專業,從事 CAD 設計。1999 年開始從事架設網路、管理維護、資料庫管理工作。1999 年後開始接觸 Linux,先後在《51CTO》、《電腦世界》、《IBM 開發者》、《中國電腦報》、《IT168》、《網管員世界》發表 Linux 文章 300 多篇,已出版著作包括《Linux 伺服器安全策略詳解》、《Red Hat Enterprise Linux 5.0 伺服器架設與故障排除》等書。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *