欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

Ansible和Terraform以及Puppet這三者如何選擇

在“DevOps”世界中,組織正在使用基礎架構即代碼 (IAC) 實施或構建流程。AnsibleTerraformPuppet 允許企業(yè)擴展和創(chuàng)建可重復的配置,以測試和執(zhí)行程序以持續(xù)確保正確的結果。我們將更深入地研究這三者之間的差異。指導您選擇最適合您需求的平臺。這三個都是高級平臺,用于部署具有高度復雜要求的可復制和重復應用程序。比較這些應用程序在配置管理、架構和編排方面的異同,并做出明智的決定。

Ansible和Terraform以及Puppet這三者如何選擇

基礎設施即代碼

十多年前引入的?基礎設施即代碼 (IAC)的概念?是指管理和配置計算機數(shù)據(jù)中心的過程。這是一種管理數(shù)據(jù)中心服務器、網絡基礎設施和存儲的策略。其目的是顯著簡化大規(guī)模管理和配置。

IAC 允許通過機器可讀的定義文件配置和管理計算機數(shù)據(jù)中心,而無需配置工具或物理硬件。簡單來說,IAC 將手動配置、構建指南、運行手冊和相關過程視為代碼。由軟件讀取,維護基礎設施狀態(tài)的代碼。

IAC 旨在解決配置漂移、系統(tǒng)不一致、人為錯誤和上下文丟失,解決了所有這些潛在的嚴重問題。這些過程過去需要相當長的時間;現(xiàn)代 IAC 工具使所有流程更快。它消除了手動配置步驟,并使它們具有可重復性和可擴展性。它可以更快地加載數(shù)百臺服務器。它允許用戶獲得可預測的架構并自信地維護數(shù)據(jù)中心的配置或狀態(tài)。

有多種 IAC 工具可供選擇,其中三個主要示例是 Ansible、Terraform 和 Puppet。他們都有自己獨特的優(yōu)勢和劣勢,我們將進一步探討。

Terraform、Ansible 和 Puppet 的簡短背景

在我們開始比較這些工具之前,請參閱下面的簡要說明:

  • Terraform(2014 年發(fā)布——當前版本 0.12.8):??Hashicorp 將?Terraform開發(fā)?為基礎架構協(xié)調器和服務供應商。它與云無關,支持多個提供商。因此,用戶可以使用相同的編程語言和配置結構來管理多云或多產品環(huán)境。它使用 Haschorp 語言,與其他工具相比非常用戶友好。
  • Ansible(2012 年發(fā)布——當前版本 2.8.4):??Ansible?是一個強大的工具,用于利用各種類和配置方法將服務和服務器帶入所需狀態(tài)。此外,它還可以通過包裝模塊連接到不同的提供者來配置資源。用戶更喜歡它,因為它在編碼方面是輕量級的,具有快速部署能力。
  • Puppet(2005 年發(fā)布——當前版本 6.8.0):??Puppet?是可用的最古老的聲明性期望狀態(tài)工具之一。它是基于服務器/客戶端的,它通過目錄刷新客戶端的狀態(tài)。它使用“hiera data”,一種強大的元數(shù)據(jù)配置方法。它通過將基礎設施定義為代碼的能力來強制使用程序進行系統(tǒng)配置。它在 Windows 或 Linux 上廣泛用于同時在多個應用程序服務器上提取字符串。

編排與配置管理

Ansible 和 Terraform 有一些關鍵的區(qū)別,但兩者也有一些相似之處。當我們查看兩個 DevOps 概念時,它們會有所不同:編排和配置管理,它們是工具的類型。Terraform 是一個編排工具。Ansible主要是一個配置管理工具(CM);它們的表現(xiàn)不同,但確實有一些重疊,因為這些功能不是相互排斥的。針對各種用途和優(yōu)勢進行了優(yōu)化,將這些工具用于各種情況。

編排工具?有一個目標:確保環(huán)境持續(xù)處于“理想狀態(tài)”。Terraform 就是為此而構建的,因為它存儲了環(huán)境的狀態(tài),當某些東西不能正常運行時,它會在重新加載后自動計算并恢復系統(tǒng)。它非常適合需要恒定和不變狀態(tài)的環(huán)境。'Terraform Apply' 用于有效解決所有異常。

配置管理工具不同;他們不會重置系統(tǒng)。相反,他們在本地修復問題。Puppet 的設計可以在服務器上安裝和管理軟件。與 Puppet 一樣,Ansible 也可以配置每個動作和工具,并確保其正常運行而不會出現(xiàn)任何錯誤或損壞。CM 工具用于修復問題,而不是完全更換系統(tǒng)。在這種情況下,Ansible 有點混合,因為它可以同時執(zhí)行編排和替換基礎架構。Terraform 使用更廣泛。它被認為是卓越的產品,因為它具有先進的狀態(tài)管理功能,而 Ansible 沒有。

這里要知道的重要一點是這里的功能重疊。大多數(shù) CM 工具可以在一定程度上進行配置,反之亦然,許多配置工具可以進行一些配置管理。現(xiàn)實情況是,不同的工具更適合某些類型的任務,因此這取決于您的服務器的要求。

程序性與聲明性

DevOps ?分為兩類來定義其操作:“聲明式”和“程序式”。由于存在重疊,并非每個工具都適合這種模具。Procedural 定義了一個需要精確方向和程序的工具,您必須在代碼中進行布局。聲明式是指一種工具“聲明”確切需要什么。它沒有概述獲得結果所需的過程。

在這種情況下,Terraform 完全是聲明性的。有一個定義的環(huán)境。如果該環(huán)境有任何改變,它會在下一個“Terraform Apply”中得到糾正。簡而言之,該工具會嘗試達到系統(tǒng)管理員所描述的所需最終狀態(tài)。Puppet 也旨在以這種方式進行聲明。
使用 Terraform,您只需要描述所需的狀態(tài),Terraform 就會自動計算出如何從一種狀態(tài)進入下一種狀態(tài)。

或者,在這種情況下,Ansible 有點混合。它可以兩者兼而有之。它執(zhí)行實現(xiàn)過程式配置的臨時命令,并使用大多數(shù)以聲明式執(zhí)行的模塊。

如果您決定使用 Ansible,請仔細閱讀文檔,以便了解它的作用并了解預期的行為。必須知道您是否需要添加或減少資源以獲得正確的結果,或者您是否需要明確指出所需的資源。

比較配置

自動化配置任何基礎設施是自動化應用程序及其部署的整個運營生命周期的第一步。在云中,軟件從 VM、Docker 容器或?裸機服務器運行。Terraform 或 Ansible 都是配置此類系統(tǒng)的不錯選擇。Puppet 是較舊的工具,因此我們將仔細研究用于管理多個服務器的較新的 DevOps 程序。

Terraform 和 Ansible 以不同的方式處理配置過程,如下所述,但存在一些重疊。

使用 Terraform 進行配置:

Terraform 現(xiàn)有的聲明性模型中沒有體現(xiàn)某些行為。當以下列方式使用 Terraform 時,此設置會增加大量的不確定性和復雜性:

當 Terraform 模型是計劃的一部分時,它無法對供應商的操作進行建模。它需要協(xié)調比正常使用 Terraform 成功使用配置器所需的更多細節(jié)。

它需要額外的措施,例如授予對用戶服務器的直接網絡訪問權限、安裝必要的外部軟件以及頒發(fā) Terraform 憑據(jù)以進行登錄。

使用 Ansible 進行配置:

Ansible 可以可靠地配置最新的云平臺、網絡設備、裸機服務器、虛擬主機和管理程序。

完成引導后,Ansible 允許單獨的團隊將節(jié)點連接到存儲。它可以將它們添加到負載均衡器,或任何安全補丁或其他操作任務。這種設置使 Ansible 成為任何流程管道的完美連接工具。

它有助于自動將裸基礎設施直接用于日常管理。使用 Ansible 進行配置,允許用戶在配置管理、應用程序部署和編排中無縫地使用通用的、人類可讀的自動化語言。

適用于 AWS 的 Ansible 和 Terraform 之間的差異

AWS 代表 Amazon Web Services,它是亞馬遜的子公司,為個人、公司和商業(yè)實體提供按需云計算平臺。Terraform 和 Ansible 對待 AWS 管理的方式截然不同。

使用 AWS 的 Terraform:

對于沒有大量虛擬化經驗的用戶來說,Terraform 是管理 AWS 的絕佳方式。盡管起初感覺??很復雜,但 Terraform 已經大大減少了阻礙提高采用率的障礙。

將 Terraform 與 A??WS 結合使用有幾個顯著優(yōu)勢。

  • Terraform 是開源的,它帶來了使用開源軟件的所有常見優(yōu)勢,以及它背后不斷增長和熱切的用戶社區(qū)。
  • 它對資源關系有內在的理解。
  • 如果發(fā)生故障,它們會隔離到相關資源。另一方面,非依賴資源會繼續(xù)被創(chuàng)建、更新和銷毀。
  • Terraform 使用戶能夠在應用之前預覽更改。
  • Terraform 帶有 JSON 支持和用戶友好的自定義語法。

使用 AWS 的 Ansible:

Ansible 長期以來一直為 AWS 提供重要支持。這種支持允許使用 Ansible 劇本解釋甚至最復雜的 AWS 環(huán)境。描述后,用戶可以根據(jù)需要多次部署它們,并能夠擴展到不同區(qū)域的數(shù)百甚至數(shù)千個實例。

Ansible 有近 100 個支持 AWS 功能的模塊。例如虛擬私有云 (VPC)、簡單存儲服務 (S3)、安全令牌服務、安全組、Route53、關系數(shù)據(jù)庫服務、Lambda、身份訪問管理器 (IAM)、AMI 管理和 CloudTrail 等等。此外,它還包括 1300 多個附加模塊,用于管理用戶的 Linux、Windows、UNIX 等的不同方面。

以下是將 Ansible 與 AWS 結合使用時的優(yōu)勢。

  • 借助 Ansible Tower 的云庫存同步,您將準確了解哪些 AWS 實例已注冊,無論它們是如何啟動的。
  • 您可以通過在其生命周期內準確跟蹤部署的基礎設施來控制庫存。因此,您可以確保系統(tǒng)管理正確,安全策略正確執(zhí)行。
  • 自動化的安全性及其基于角色的訪問控制,確保用戶只能訪問他們完成工作所需的 AWS 資源。
  • 相同的簡單劇本語言可以輕松管理基礎架構并將應用程序大規(guī)模部署到不同的基礎架構。

Ansible、Puppet 和 Terraform 的比較

Puppet、Terraform 和 Ansible 已經存在了相當長的一段時間。但是,它們在設置、GUI、CLI、語言、用法和其他功能方面有所不同。

您可以找到以下三者之間的詳細比較:

差異點 Ansible 木偶 地形
管理和調度 在 Ansible 中,即時部署是可能的,因為服務器將配置推送到節(jié)點。在調度方面,企業(yè)版 Ansible Tower 具有免費版所沒有的功能。 Puppet 主要關注推送和拉取配置,客戶端從服務器拉取配置。配置必須用 Puppet 的語言編寫。在調度方面,Puppet 的默認設置允許它檢查所有節(jié)點以查看它們是否處于所需狀態(tài)。?? 在 Terraform 中,資源調度程序的工作方式與提供程序類似,使其能夠向它們請求資源。因此,它不僅限于 AWS 等物理提供商,還允許分層使用。Terraform 可用于配置到已調度的網格,以及設置運行調度程序的物理基礎設施。
易于設置和使用 Ansible 更易于安裝和使用。它有一個沒有代理的主機,在客戶端機器上運行。它是無代理的這一事實大大有助于其簡單性。Ansible 使用以 Python 語言編寫的 YAML 語法,該語法內置于大多數(shù) Linux 和 Unix 部署中。 Puppet 更受模型驅動,適用于系統(tǒng)管理員。Puppet 服務器可以安裝在一臺或多臺服務器上,而 puppet 代理需要安裝在所有需要管理的節(jié)點上。因此,該模型是客戶端-服務器或代理主控模型。安裝時間可能需要大約十到三十分鐘。 Terraform 在設置和使用方面也更容易理解。如果需要運行安裝程序,它甚至允許用戶使用代理服務器。
可用性: Ansible 有一個輔助節(jié)點,以防活動節(jié)點下降。 Puppet 有一個或多個 master,以防原來的 master 失敗。 不適用于 Terraform 的情況。
可擴展性: 可擴展性更容易實現(xiàn) 可擴展性不太容易實現(xiàn) 可擴展性相對容易實現(xiàn)
模塊 Ansible 的存儲庫或庫稱為 Ansible Galaxy。它沒有單獨的排序功能,需要人工干預。 Puppet 的存儲庫或庫稱為 Puppet Forge。它包含近 6000 個模塊。用戶可以將 puppet 模塊標記為 Puppet 批準或支持,從而節(jié)省大量時間。 在 Terraform 的案例中,模塊允許用戶抽象出任何可重用的部分。這些部件可以配置一次,并且可以在任何地方使用。因此,它使用戶能夠對資源進行分組,以及定義輸入和輸出變量。
圖形用戶界面 開發(fā)較少的是 Ansible 的 GUI,最初是作為僅命令行工具引入的。即使企業(yè)版提供了一個 UI,但由于與命令行的同步問題,它仍然達不到預期。 Puppet 的 GUI 優(yōu)于 Ansible,能夠執(zhí)行許多復雜的任務。用于有效地管理、查看和監(jiān)視活動。 只有第三方 GUI 可用于 Terraform。例如,Codeherent 的 Terraform GUI。
支持 Ansible 還包括對其企業(yè)版的兩個級別的專業(yè)支持。此外,AnsibleFest 是用戶和貢獻者的大型聚會,每年舉行一次。與 Puppet 相比,它背后的社區(qū)更小。 Puppet 有一個專門的支持門戶以及一個知識庫。此外,還存在兩個級別的專業(yè)支持;標準版和高級版。Puppet 社區(qū)每年都會制作一份“DevOps 狀態(tài)”報告。 Terraform 通過 Web 門戶提供對 HashiCorp 支持渠道的直接訪問。

需要考慮的三個綜合解決方案

在查看了上述比較之后,Ansible 對于以類似腳本的方式存儲和配置系統(tǒng)非常有利,而不是其他方式。用戶可以在短暫的環(huán)境中高效工作。它還可以與 Kubernetes 無縫協(xié)作以配置容器主機。

Puppet 在社區(qū)支持方面更加成熟。Puppet 具有出色的模塊,使其能夠更多地作為企業(yè)級解決方案工作。其強大的模塊測試易于使用。Ansible 適用于小型、臨時和快速部署。鑒于 Puppet 被推薦用于長期或更復雜的部署,并且可以管理 Docker 容器和?容器編排器Terraform 在管理服務器下方的云服務方面表現(xiàn)更好。Ansible 擅長配置軟件和機器;Terraform 擅長管理云資源。在為自動化設計 IAC 環(huán)境時,這三者都有其優(yōu)點和局限性。成功取決于知道哪些工具用于哪些工作。

文章鏈接: http://m.qzkangyuan.com/5986.html

文章標題:Ansible和Terraform以及Puppet這三者如何選擇

文章版權:夢飛科技所發(fā)布的內容,部分為原創(chuàng)文章,轉載請注明來源,網絡轉載文章如有侵權請聯(lián)系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發(fā)布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯(lián)系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
IDC云庫

Kubernetes監(jiān)控:獲得全棧可見性

2022-4-21 11:09:22

IDC云庫

如何找出網站的WordPress主題?

2022-4-21 12:30:54

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 屏东县| 西华县| 庆阳市| 镇康县| 东乡| 元氏县| 荣昌县| 罗甸县| 宁远县| 三台县| 永春县| 彰武县| 玛沁县| 荣成市| 安徽省| 乌苏市| 新疆| 湄潭县| 桐乡市| 牟定县| 西乌珠穆沁旗| 巨鹿县| 东阿县| 兴化市| 巫溪县| 肇庆市| 尤溪县| 沙河市| 永靖县| 元朗区| 收藏| 蒲城县| 金塔县| 成武县| 台北县| 泰和县| 房产| 平湖市| 桃源县| 武义县| 板桥市|