這5個Ansible 模組你喜歡嗎

大雄45發表於2020-06-22
在我成長的時候,我爺爺在他的花園裡有一個棚子。他經常會花幾個小時在那裡製作和修復東西。這是在我們有網際網路之前的事情,所以我花了很多時間看他在那個棚子裡創造東西。雖然棚子裡有很多工具,從鑽頭到車床到電器配件,還有很多東西我至今都無法辨認,但他使用的只是他手頭的一小部分。然而,他能做到的事情似乎永遠沒有極限。

我之所以告訴你這個故事,是因為我覺得我的職業生涯是在一個隱喻的棚子裡度過的。計算機也是如此多的工具,都在一個狹小(虛擬?)的空間裡。而工具棚中又有工具棚 —— 我最喜歡的是 Ansible。最近的 2.9 版本有 3,681 個模組! **3,681 個啊!**當我在 2013 年夏天第一次開始使用 Ansible 時,1.2.1 版本只有 113 個模組,然而,正如我當時寫的,我仍然可以實現任何我想象到的東西。

模組是 Ansible 的支柱,是讓重任輕裝上陣的齒輪。它們被設計為做好一項工作,從而實現了 Unix 哲學。我們就是這樣來把這麼多的模組捆綁在一起,作為樂團的指揮,Ansible 現在有很多樂器可以聽從它的指揮。

回顧一下我多年來的 Ansible 劇本和角色的 Git 倉庫,我發現我只用了 35 個模組。這個小的子集被用來構建大型基礎設施。不過,我想知道如果用一個更小的子集可以實現什麼?當我回顧這 35 個模組時,我在思考,我能否只用 5 個模組就能達到同樣的效果。因此,以下是我最喜歡的五個模組,順序無關。

這5個Ansible 模組你喜歡嗎這5個Ansible 模組你喜歡嗎

authorized_key

SSH 是 Ansible 的核心,至少對於除了 Windows 以外的幾乎所有其他功能都是如此。在 Ansible 中高效使用 SSH 的關鍵(沒有雙關語)是……金鑰!順便提一下,你可以用 SSH 金鑰為安全性做很多非常酷的事情。值得仔細閱讀 sshd 手冊頁中的 “authorized_keys” 部分。如果你需要精細的使用者訪問控制,管理 SSH 金鑰可能會變得很費力,儘管我可以用接下來的兩個我最愛的模組中的任何一個,但我更喜歡使用 authorized_key 這個模組,因為它可以透過變數輕鬆管理。

file

除了顯而易見的將檔案放置在某個地方的功能外,file 模組還可以設定所有權和許可權。我想說的是,這樣一個模組就能帶來很多的好處。很大一部分安全問題也與設定許可權有關,所以 file 模組和 authorized_key 可以很好地配合在一起使用。

template

操作檔案內容的方法太多了,我看到很多人都在使用 lineinfile。我自己也用它做過小任務。但是,template 模組就清晰多了,因為你維護了整個檔案的上下文。我更喜歡以任何人都可以輕鬆理解的方式編寫 Ansible 的內容 —— 對我而言,這意味著容易理解正在發生的事情。template 的使用意味著能夠看到你正在放置內容的整個檔案、全部你正在改變的變數。

uri

當前釋出版中的許多模組利用 Ansible 作為編排工具。它們與另一個服務對話,而不是做一些具體的事情,比如把一個檔案放到一個地方。通常,這種對話也是透過 HTTP 進行的。在許多這樣的模組出現之前,你可以直接使用 uri 模組對 API 進行程式設計。它是一個強大的訪問工具,可以使你能夠做很多事情。在我的 Ansible 虛擬棚子裡,我不會少了它。

這是我們工具包裡的王牌、瑞士軍 刀。如果你為如何控制其他東西而非常苦惱,別說,說就是 shell。有人會說,我們這樣說是讓 Ansible 成為了 Bash   —— 但是,我想說的是,這還是有點好處的,因為可以在你的劇本和角色中使用 name 引數記錄下每一步。對我來說,這就像一個很大的獎勵一樣。早在我還在做諮詢的時候,我曾經幫助一個資料庫管理員(DBA)遷移到 Ansible。這位 DBA 並不喜歡改變,對改變工作方法也是推三阻四。於是,為了簡化遷移到 Ansible 方式,我們在 Ansible 中使用 shell 模組呼叫了一些現有的資料庫管理 。並在任務中附帶了翔實的 name 宣告。

透過這五個模組,你可以實現很多事情。是的,為完成特定任務而設計的模組會讓你的生活更加輕鬆。但是,藉助簡單的工程設計,你幾乎可以事半功倍。Ansible 開發者 Brian Coca 是這方面的大師,他的 總是值得一看。

你覺得這五大模組怎麼樣?如果你也必須限制在這麼多模組,你會選擇哪五個,為什麼?在下面的評論中告訴我吧!

via:

作者:Mark Phillips 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯, 中國 榮譽推出

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2700041/,如需轉載,請註明出處,否則將追究法律責任。

相關文章