這篇文章給大家介紹Ansible中怎么實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)專注于樂(lè)東黎族網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供樂(lè)東黎族營(yíng)銷型網(wǎng)站建設(shè),樂(lè)東黎族網(wǎng)站制作、樂(lè)東黎族網(wǎng)頁(yè)設(shè)計(jì)、樂(lè)東黎族網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造樂(lè)東黎族網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供樂(lè)東黎族網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
隨著 IT 行業(yè)的技術(shù)變化,從服務(wù)器虛擬化到公有云和私有云,以及自服務(wù)能力、容器化應(yīng)用、平臺(tái)即服務(wù)(PaaS)交付,而一直以來(lái)落后的一個(gè)領(lǐng)域就是網(wǎng)絡(luò)。
在過(guò)去的五年多,網(wǎng)絡(luò)行業(yè)似乎有很多新的趨勢(shì)出現(xiàn),它們中的很多被歸入到軟件定義網(wǎng)絡(luò)(SDN)。
注意:
SDN 是新出現(xiàn)的一種構(gòu)建、管理、操作和部署網(wǎng)絡(luò)的方法。SDN 最初的定義是出于將控制層和數(shù)據(jù)層(包轉(zhuǎn)發(fā))物理分離的需要,并且,解耦合的控制層必須管理好各自的設(shè)備。
如今,在 SDN 旗下已經(jīng)有許多技術(shù),包括基于控制器的網(wǎng)絡(luò)、網(wǎng)絡(luò)設(shè)備 API、網(wǎng)絡(luò)自動(dòng)化、白盒交換機(jī)、策略網(wǎng)絡(luò)化、網(wǎng)絡(luò)功能虛擬化(NFV)等等。
出于這篇報(bào)告的目的,我們參考 SDN 的解決方案作為我們的解決方案,其中包括一個(gè)網(wǎng)絡(luò)控制器作為解決方案的一部分,并且提升了該網(wǎng)絡(luò)的可管理性,但并不需要從數(shù)據(jù)層解耦控制層。
這些趨勢(shì)的之一是,網(wǎng)絡(luò)設(shè)備的 API 作為管理和操作這些設(shè)備的一種方法而出現(xiàn),真正地提供了機(jī)器對(duì)機(jī)器的通訊。當(dāng)需要自動(dòng)化和構(gòu)建網(wǎng)絡(luò)應(yīng)用時(shí) API 簡(jiǎn)化了開發(fā)過(guò)程,在數(shù)據(jù)如何建模時(shí)提供了更多結(jié)構(gòu)。例如,當(dāng)啟用 API 的設(shè)備以 JSON/XML 返回?cái)?shù)據(jù)時(shí),它是結(jié)構(gòu)化的,并且比返回原生文本信息 —— 需要手工去解析的僅支持命令行的設(shè)備更易于使用。
在 API 之前,用于配置和管理網(wǎng)絡(luò)設(shè)備的兩個(gè)主要機(jī)制是命令行接口(CLI)和簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)。讓我們來(lái)了解一下它們,CLI 是一個(gè)設(shè)備的人機(jī)界面,而 SNMP 并不是為設(shè)備提供的實(shí)時(shí)編程接口。
幸運(yùn)的是,因?yàn)楹芏喙?yīng)商爭(zhēng)相為設(shè)備增加 API,有時(shí)候 只是因?yàn)?/em> 它被放到需求建議書(RFP)中,這就帶來(lái)了一個(gè)非常好的副作用 —— 支持網(wǎng)絡(luò)自動(dòng)化。當(dāng)真正的 API 發(fā)布時(shí),訪問(wèn)設(shè)備內(nèi)數(shù)據(jù)的過(guò)程,以及管理配置,就會(huì)被極大簡(jiǎn)化,因此,我們將在本報(bào)告中對(duì)此進(jìn)行評(píng)估。雖然使用許多傳統(tǒng)方法也可以實(shí)現(xiàn)自動(dòng)化,比如,CLI/SNMP。
注意:
隨著未來(lái)幾個(gè)月或幾年(LCTT 譯注:本文發(fā)表于 2016 年)的網(wǎng)絡(luò)設(shè)備更新,供應(yīng)商的 API 無(wú)疑應(yīng)該被做為采購(gòu)網(wǎng)絡(luò)設(shè)備(虛擬和物理)的關(guān)鍵決策標(biāo)準(zhǔn)而測(cè)試和使用。如果供應(yīng)商提供一些庫(kù)或集成到自動(dòng)化工具中,或者如果被用于一個(gè)開放的標(biāo)準(zhǔn)或協(xié)議,用戶應(yīng)該知道數(shù)據(jù)是如何通過(guò)設(shè)備建模的,API 使用的傳輸類型是什么。
總而言之,網(wǎng)絡(luò)自動(dòng)化,像大多數(shù)類型的自動(dòng)化一樣,是為了更快地工作。工作的更快是好事,減少部署和配置改變的時(shí)間并不總是許多 IT 組織需要去解決的問(wèn)題。
包括速度在內(nèi),我們現(xiàn)在看看這些各種類型的 IT 組織逐漸采用網(wǎng)絡(luò)自動(dòng)化的幾種原因。你應(yīng)該注意到,同樣的原則也適用于其它類型的自動(dòng)化。
今天,每個(gè)網(wǎng)絡(luò)都是一片獨(dú)特的“雪花”,并且,網(wǎng)絡(luò)工程師們?yōu)槟軌蛲ㄟ^(guò)一次性的網(wǎng)絡(luò)改變來(lái)解決傳輸和應(yīng)用問(wèn)題而感到自豪,而這最終導(dǎo)致網(wǎng)絡(luò)不僅難以維護(hù)和管理,而且也很難去實(shí)現(xiàn)自動(dòng)化。
網(wǎng)絡(luò)自動(dòng)化和管理需要從一開始就包含到新的架構(gòu)和設(shè)計(jì)中去部署,而不是作為一個(gè)二級(jí)或三級(jí)項(xiàng)目。哪個(gè)特性可以跨不同的供應(yīng)商工作?哪個(gè)擴(kuò)展可以跨不同的平臺(tái)工作?當(dāng)使用具體的網(wǎng)絡(luò)設(shè)備平臺(tái)時(shí),API 類型或者自動(dòng)化工程是什么?當(dāng)這些問(wèn)題在設(shè)計(jì)過(guò)程之前得到答案,最終的架構(gòu)將變成簡(jiǎn)單的、可重復(fù)的、并且易于維護(hù) 和 自動(dòng)化的,在整個(gè)網(wǎng)絡(luò)中將很少啟用供應(yīng)商專用的擴(kuò)展。
在一個(gè)企業(yè)組織中,改變審查會(huì)議會(huì)評(píng)估面臨的網(wǎng)絡(luò)變化、它們對(duì)外部系統(tǒng)的影響、以及回滾計(jì)劃。在人們通過(guò) CLI 來(lái)執(zhí)行這些 面臨的變化 的世界上,輸入錯(cuò)誤的命令造成的影響是災(zāi)難性的。想像一下,一個(gè)有 3 位、4 位、5位,或者 50 位工程師的團(tuán)隊(duì)。每位工程師應(yīng)對(duì) 面臨的變化 都有他們自己的獨(dú)特的方法。并且,在管理這些變化的期間,一個(gè)人使用 CLI 或者 GUI 的能力并不會(huì)消除和減少出現(xiàn)錯(cuò)誤的機(jī)率。
使用經(jīng)過(guò)驗(yàn)證的和測(cè)試過(guò)的網(wǎng)絡(luò)自動(dòng)化可以幫助實(shí)現(xiàn)更多的可預(yù)測(cè)行為,并且使執(zhí)行團(tuán)隊(duì)更有可能實(shí)現(xiàn)確實(shí)性的結(jié)果,***在保證任務(wù)沒(méi)有人為錯(cuò)誤的情況下正確完成的道路上更進(jìn)一步。
不用說(shuō),網(wǎng)絡(luò)自動(dòng)化不僅為部署變化提供了速度和靈活性,而且使得根據(jù)業(yè)務(wù)需要去從網(wǎng)絡(luò)設(shè)備中檢索數(shù)據(jù)的速度變得更快。自從服務(wù)器虛擬化到來(lái)以后,服務(wù)器和虛擬化使得管理員有能力在瞬間去部署一個(gè)新的應(yīng)用程序。而且,隨著應(yīng)用程序可以更快地部署,隨之浮現(xiàn)的問(wèn)題是為什么還需要花費(fèi)如此長(zhǎng)的時(shí)間配置一個(gè) VLAN(虛擬局域網(wǎng))、路由器、FW ACL(防火墻的訪問(wèn)控制列表)或者負(fù)載均衡策略呢?
通過(guò)了解在一個(gè)組織內(nèi)最常見的工作流和 為什么 真正需要改變網(wǎng)絡(luò),部署如 Ansible 這樣的現(xiàn)代的自動(dòng)化工具將使這些變得非常簡(jiǎn)單。
這一章介紹了一些關(guān)于為什么應(yīng)該去考慮網(wǎng)絡(luò)自動(dòng)化的高級(jí)知識(shí)點(diǎn)。在下一節(jié),我們將帶你去了解 Ansible 是什么,并且繼續(xù)深入了解各種不同規(guī)模的 IT 組織的網(wǎng)絡(luò)自動(dòng)化的不同類型。
Ansible 是存在于開源世界里的一種***的 IT 自動(dòng)化和配置管理平臺(tái)。它經(jīng)常被拿來(lái)與其它工具如 Puppet、Chef 和 SaltStack 去比較。Ansible 作為一個(gè)由 Michael DeHaan 創(chuàng)建的開源項(xiàng)目出現(xiàn)于 2012 年,Michael DeHaan 也創(chuàng)建了 Cobbler 和 cocreated Func,它們?cè)陂_源社區(qū)都非常流行。在 Ansible 開源項(xiàng)目創(chuàng)建之后不足 18 個(gè)月時(shí)間, Ansilbe 公司成立,并收到了六百萬(wàn)美金 A 輪投資。該公司成為 Ansible 開源項(xiàng)目***的貢獻(xiàn)者和支持者,并一直保持著。在 2015 年 10 月,Red Hat 收購(gòu)了 Ansible 公司。
但是,Ansible 到底是什么?
Ansible 是一個(gè)無(wú)需代理和可擴(kuò)展的超級(jí)簡(jiǎn)單的自動(dòng)化平臺(tái)。
讓我們更深入地了解它的細(xì)節(jié),并且看一看那些使 Ansible 在行業(yè)內(nèi)獲得廣泛認(rèn)可的屬性。
Ansible 的其中一個(gè)吸引人的屬性是,使用它你 不需要特定的編程技能。所有的指令,或者說(shuō)任務(wù)都是自動(dòng)化的,以一個(gè)標(biāo)準(zhǔn)的、任何人都可以理解的人類可讀的數(shù)據(jù)格式的文檔化。在 30 分鐘之內(nèi)完成安裝和自動(dòng)化任務(wù)的情況并不罕見!
例如,下列來(lái)自一個(gè) Ansible劇本的任務(wù)用于去確保在一個(gè) VLAN 存在于一個(gè) Cisco Nexus 交換機(jī)中:
- nxos_vlan: vlan_id=100 name=web_vlan
你無(wú)需熟悉或?qū)懭魏未a就可以明確地看出它將要做什么!
注意:
這個(gè)報(bào)告的下半部分涉到 Ansible 術(shù)語(yǔ)(劇本、劇集、任務(wù)、模塊等等)的細(xì)節(jié)。在我們使用 Ansible 進(jìn)行網(wǎng)絡(luò)自動(dòng)化時(shí),提及這些關(guān)鍵概念時(shí)我們會(huì)有一些簡(jiǎn)短的示例。
如果你看過(guò)市面上的其它工具,比如 Puppet 和 Chef,你會(huì)發(fā)現(xiàn),一般情況下,它們要求每個(gè)實(shí)現(xiàn)自動(dòng)化的設(shè)備必須安裝特定的軟件。這種情況在 Ansible 上 并不需要,這就是為什么 Ansible 是實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化的***選擇的主要原因。
這很好理解,那些 IT 自動(dòng)化工具,包括 Puppet、Chef、CFEngine、SaltStack、和 Ansible,它們最初構(gòu)建是為管理和自動(dòng)化配置 Linux 主機(jī),以跟得上部署的應(yīng)用程序增長(zhǎng)的步伐。因?yàn)?Linux 系統(tǒng)是被配置成自動(dòng)化的,要安裝代理并不是一個(gè)技術(shù)難題。如果有的話,它也只會(huì)延誤安裝過(guò)程,因?yàn)?,現(xiàn)在有 N 多個(gè)(你希望去實(shí)現(xiàn)自動(dòng)化的)主機(jī)需要在它們上面部署軟件。
再加上,當(dāng)使用代理時(shí),它們需要的 DNS 和 NTP 配置更加復(fù)雜。這些都是大多數(shù)環(huán)境中已經(jīng)配置好的服務(wù),但是,當(dāng)你希望快速地獲取一些東西或者只是簡(jiǎn)單地想去測(cè)試一下它能做什么的時(shí)候,它將極大地耽誤整個(gè)設(shè)置和安裝的過(guò)程。
由于本報(bào)告只是為介紹利用 Ansible 實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化,我們希望指出,Ansible 作為一個(gè)無(wú)代理平臺(tái),對(duì)于網(wǎng)絡(luò)管理員來(lái)說(shuō),其比對(duì)系統(tǒng)管理員更具有吸引力。這是為什么呢?
正如前面所說(shuō)的那樣,對(duì)網(wǎng)絡(luò)管理員來(lái)說(shuō),它是非常有吸引力的,Linux 操作系統(tǒng)是開源的,并且,任何東西都可以安裝在它上面。對(duì)于網(wǎng)絡(luò)來(lái)說(shuō),卻并非如此,雖然它正在逐漸改變。如果我們更廣泛地部署網(wǎng)絡(luò)操作系統(tǒng),如 Cisco IOS,它就是這樣的一個(gè)例子,并且問(wèn)一個(gè)問(wèn)題, “第三方軟件能否部署在基于 IOS (LCTT 譯注:此處的 IOS,指的是思科的網(wǎng)絡(luò)操作系統(tǒng) IOS)的平臺(tái)上嗎?”毫無(wú)疑問(wèn),它的回答是 NO。
在過(guò)去的二十多年里,幾乎所有的網(wǎng)絡(luò)操作系統(tǒng)都是閉源的,并且,垂直整合到底層的網(wǎng)絡(luò)硬件中。沒(méi)有供應(yīng)商的支持,在一個(gè)網(wǎng)絡(luò)設(shè)備中(路由器、交換機(jī)、負(fù)載均衡、防火墻、等等)載入一個(gè)代理并不那么輕松。有一個(gè)像 Ansible 這樣的自動(dòng)化平臺(tái),從頭開始去構(gòu)建一個(gè)無(wú)代理、可擴(kuò)展的自動(dòng)化平臺(tái),就像是它專門為網(wǎng)絡(luò)行業(yè)訂制的一樣。我們最終將開始減少并消除與網(wǎng)絡(luò)的人工交互。
Ansible 的可擴(kuò)展性也非常的好。從開源、代碼開始在網(wǎng)絡(luò)行業(yè)中發(fā)揮重要的作用時(shí)起,有一個(gè)可擴(kuò)展的平臺(tái)是必需的。這意味著如果供應(yīng)商或社區(qū)不提供一個(gè)特定的特性或功能,開源社區(qū)、終端用戶、消費(fèi)者、顧問(wèn),或者任何的人能夠 擴(kuò)展 Ansible 來(lái)啟用一個(gè)給定的功能集。過(guò)去,網(wǎng)絡(luò)供應(yīng)商或者工具供應(yīng)商通過(guò)一個(gè) hook 去提供新的插件和集成。想像一下,使用一個(gè)像 Ansible 這樣的自動(dòng)化平臺(tái),并且,你選擇的網(wǎng)絡(luò)供應(yīng)商發(fā)布了你 真正 需要的一個(gè)自動(dòng)化的新特性。從理論上說(shuō),網(wǎng)絡(luò)供應(yīng)商或者 Ansible 可以發(fā)行一個(gè)新的插件去實(shí)現(xiàn)自動(dòng)化這個(gè)獨(dú)特的特性,這是一件非常好的事情,從你的內(nèi)部工程師到你的增值分銷商(VAR)或者你的顧問(wèn)中的任何一個(gè)人,都可以去提供這種集成。
正如前面所說(shuō)的那樣,Ansible 實(shí)際上是***擴(kuò)展性的,Ansible 最初就是為自動(dòng)化應(yīng)用程序和系統(tǒng)構(gòu)建的。這是因?yàn)?,Ansible 的可擴(kuò)展性來(lái)自于其集成性是為網(wǎng)絡(luò)供應(yīng)商編寫的,包括但不限于 Cisco、Arista、Juniper、F5、HP、A10、Cumulus 和 Palo Alto Networks。
我們已經(jīng)簡(jiǎn)單了解除了 Ansible 是什么,以及一些網(wǎng)絡(luò)自動(dòng)化的好處,但是,對(duì)于網(wǎng)絡(luò)自動(dòng)化,我們?yōu)槭裁匆褂?Ansible?
大家很清楚,使得 Ansible 成為如此偉大的一個(gè)自動(dòng)化應(yīng)用部署平臺(tái)的許多原因已經(jīng)被大家所提及了。但是,我們現(xiàn)在要深入一些,更多地關(guān)注于網(wǎng)絡(luò),并且繼續(xù)總結(jié)一些更需要注意的其它關(guān)鍵點(diǎn)。
在實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化的時(shí)候,無(wú)代理架構(gòu)的重要性并不是重點(diǎn)強(qiáng)調(diào)的,特別是當(dāng)它適用于現(xiàn)有的自動(dòng)化設(shè)備時(shí)。如果,我們看一下當(dāng)前網(wǎng)絡(luò)中已經(jīng)安裝的各種設(shè)備時(shí),從 DMZ 和園區(qū),到分支機(jī)構(gòu)和數(shù)據(jù)中心,***份額的設(shè)備 并不 具有*** API 的設(shè)備。從自動(dòng)化的角度來(lái)看,API 可以使做一些事情變得很簡(jiǎn)單,像 Ansible 這樣的無(wú)代理平臺(tái)有可能去自動(dòng)化和管理那些 老舊(傳統(tǒng)) 的設(shè)備。例如,基于 CLI 的設(shè)備,它的工具可以被用于任何網(wǎng)絡(luò)環(huán)境中。
注意:
如果僅支持 CLI 的設(shè)備已經(jīng)集成進(jìn) Ansible,它的機(jī)制就像是,怎么在設(shè)備上通過(guò)協(xié)議如 telnet、SSH 和 SNMP 去進(jìn)行只讀訪問(wèn)和讀寫操作。
作為一個(gè)獨(dú)立的網(wǎng)絡(luò)設(shè)備,像路由器、交換機(jī)、和防火墻正在持續(xù)去增加 API 的支持,SDN 解決方案也正在出現(xiàn)。SDN 解決方案的其中一個(gè)常見主題是,它們都提供一個(gè)單點(diǎn)集成和策略管理,通常是以一個(gè) SDN 控制器的形式出現(xiàn)。這對(duì)于 Cisco ACI、VMware NSX、Big Switch Big Cloud Fabric 和 Juniper Contrail,以及其它的 SDN 提供者,比如 Nuage、Plexxi、Plumgrid、Midokura 和 Viptela,是一個(gè)真實(shí)的解決方案。這甚至包含開源的控制器,比如 OpenDaylight。
所有的這些解決方案都簡(jiǎn)化了網(wǎng)絡(luò)管理,就像它們可以讓一個(gè)管理員開始從“box-by-box”管理(LCTT 譯者注:指的是單個(gè)設(shè)備挨個(gè)去操作的意思)遷移到網(wǎng)絡(luò)范圍的管理。這是在正確方向上邁出的很大的一步,這些解決方案并不能消除在變更期間中人類犯錯(cuò)的機(jī)率。例如,比起配置 N 個(gè)交換機(jī),你可能需要去配置一個(gè)單個(gè)的 GUI,它需要很長(zhǎng)的時(shí)間才能實(shí)現(xiàn)所需要的配置改變 —— 它甚至可能更復(fù)雜,畢竟,相對(duì)于一個(gè) CLI,他們更喜歡 GUI!另外,你可能有不同類型的 SDN 解決方案部署在每個(gè)應(yīng)用程序、網(wǎng)絡(luò)、區(qū)域或者數(shù)據(jù)中心。
在需要自動(dòng)化的網(wǎng)絡(luò)中,對(duì)于配置管理、監(jiān)視和數(shù)據(jù)收集,當(dāng)行業(yè)開始向基于控制器的網(wǎng)絡(luò)架構(gòu)中遷移時(shí),這些需求并不會(huì)消失。
大量的軟件定義網(wǎng)絡(luò)中都部署有控制器,幾乎所有的控制器都提供一個(gè)***的 REST API。并且,因?yàn)?Ansible 是一個(gè)無(wú)代理架構(gòu),它實(shí)現(xiàn)自動(dòng)化是非常簡(jiǎn)單的,而不僅僅是對(duì)那些沒(méi)有 API 的傳統(tǒng)設(shè)備,但也有通過(guò) REST API 的軟件定義網(wǎng)絡(luò)解決方案,在所有的終端上不需要有額外的軟件(LCTT 譯注:指的是代理)。最終的結(jié)果是,使用 Ansible,無(wú)論有或沒(méi)有 API,可以使任何類型的設(shè)備都能夠自動(dòng)化。
Ansible 是一個(gè)開源軟件,它的全部代碼在 GitHub 上都是公開可訪問(wèn)的,使用 Ansible 是完全免費(fèi)的。它可以在幾分鐘內(nèi)完成安裝并為網(wǎng)絡(luò)工程師提供有用的價(jià)值。Ansible 這個(gè)開源項(xiàng)目,或者 Ansible 公司,在它們交付軟件之前,你不會(huì)遇到任何一個(gè)銷售代表。那是顯而易見的事實(shí),因?yàn)樗且粋€(gè)真正的開源項(xiàng)目,但是,作為開源的、社區(qū)驅(qū)動(dòng)的軟件項(xiàng)目在網(wǎng)絡(luò)行業(yè)中的使用是非常少的,但是,也在逐漸增加,我們想明確指出這一點(diǎn)。
同樣需要指出的一點(diǎn)是,Ansible, Inc. 也是一個(gè)公司,它也需要去賺錢,對(duì)嗎?雖然 Ansible 是開源的,它也有一個(gè)叫 Ansible Tower 的企業(yè)產(chǎn)品,它增加了一些特性,比如,基于規(guī)則的訪問(wèn)控制(RBAC)、報(bào)告、 web UI、REST API、多租戶等等,(相比 Ansible)它更適合于企業(yè)去部署。并且,更重要的是,Ansible Tower 甚至可以最多在 10 臺(tái)設(shè)備上 免費(fèi) 使用,至少,你可以去體驗(yàn)一下,它是否會(huì)為你的組織帶來(lái)好處,而無(wú)需花費(fèi)一分錢,并且,也不需要與無(wú)數(shù)的銷售代表去打交道。
我們?cè)谇懊嬲f(shuō)過(guò),Ansible 主要是為部署 Linux 應(yīng)用程序而構(gòu)建的自動(dòng)化平臺(tái),雖然從早期開始已經(jīng)擴(kuò)展到 Windows。需要指出的是,Ansible 開源項(xiàng)目并沒(méi)有“自動(dòng)化網(wǎng)絡(luò)基礎(chǔ)設(shè)施”的目標(biāo)。事實(shí)上是,Ansible 社區(qū)更明白如何在底層的 Ansible 架構(gòu)上更具靈活性和可擴(kuò)展性,對(duì)于他們的自動(dòng)化需要(包括網(wǎng)絡(luò))更容易成為一個(gè) 擴(kuò)展 的 Ansible。在過(guò)去的兩年中,部署有許多的 Ansible 集成,許多是有行業(yè)獨(dú)立人士進(jìn)行的,比如,Matt Oswalt、Jason Edelman、Kirk Byers、Elisa Jasinska、David Barroso、Michael Ben-Ami、Patrick Ogenstad 和 Gabriele Gerbino,也有網(wǎng)絡(luò)系統(tǒng)供應(yīng)商的***,比如,Arista、Juniper、Cumulus、Cisco、F5、和 Palo Alto Networks。
Ansible 在 IT 組織中被用于應(yīng)用程序部署。它被用于需要管理部署、監(jiān)視和管理各種類型的應(yīng)用程序的運(yùn)維團(tuán)隊(duì)中。通過(guò)將 Ansible 集成到網(wǎng)絡(luò)基礎(chǔ)設(shè)施中,當(dāng)新應(yīng)用程序到來(lái)或遷移后,它擴(kuò)展了可能的范圍。而不是去等待一個(gè)新的頂架交換機(jī)(LCTT 譯注:TOR,一種數(shù)據(jù)中心設(shè)備接入的方式)的到來(lái)、去添加一個(gè) VLAN、或者去檢查接口的速度/雙工,所有的這些以網(wǎng)絡(luò)為中心的任務(wù)都可以被自動(dòng)化,并且可以集成到 IT 組織內(nèi)已經(jīng)存在的工作流中。
術(shù)語(yǔ)冪等性 (讀作 item-potency)經(jīng)常用于軟件開發(fā)的領(lǐng)域中,尤其是當(dāng)使用 REST API 工作的時(shí)候,以及在 DevOps 自動(dòng)化和配置管理框架的領(lǐng)域中,包括 Ansible。Ansible 的其中一個(gè)信念是,所有的 Ansible 模塊(集成的)應(yīng)該是冪等的。那么,對(duì)于一個(gè)模塊來(lái)說(shuō),冪等是什么意思呢?畢竟,對(duì)大多數(shù)網(wǎng)絡(luò)工程師來(lái)說(shuō),這是一個(gè)新的術(shù)語(yǔ)。
答案很簡(jiǎn)單。冪等性的本質(zhì)是允許定義的任務(wù),運(yùn)行一次或者上千次都不會(huì)在目標(biāo)系統(tǒng)上產(chǎn)生不利影響,僅僅是一種一次性的改變。換句話說(shuō),如果有一個(gè)要做的改變?nèi)ナ瓜到y(tǒng)進(jìn)入到它期望的狀態(tài),這種改變完成之后,并且,如果這個(gè)設(shè)備已經(jīng)達(dá)到這種狀態(tài),就不會(huì)再發(fā)生改變。這不像大多數(shù)傳統(tǒng)的定制腳本和拷貝、黏貼到那些終端窗口中的 CLI 命令。當(dāng)相同的命令或者腳本在同一個(gè)系統(tǒng)上重復(fù)運(yùn)行,(有時(shí)候)會(huì)出現(xiàn)錯(cuò)誤。即使是粘貼一組命令到一個(gè)路由器中,也可能會(huì)遇到一些使你的其余的配置失效的錯(cuò)誤。好玩吧?
另外的例子是,如果你有一個(gè)配置 10 個(gè) VLAN 的文件文件或者腳本,那么 每次 運(yùn)行這個(gè)腳本,相同的命令命令會(huì)被輸入 10 次。如果使用一個(gè)冪等的 Ansible 模塊,首先會(huì)從網(wǎng)絡(luò)設(shè)備中采集已存在的配置,并且,每個(gè)新的 VLAN 被配置后會(huì)再次檢查當(dāng)前配置。僅僅當(dāng)這個(gè)新的 VLAN 需要被添加(或者,比如說(shuō)改變 VLAN 名字)是一個(gè)變更,命令才會(huì)真實(shí)地推送到設(shè)備。
當(dāng)一個(gè)技術(shù)越來(lái)越復(fù)雜,冪等性的價(jià)值就越高,在你修改的時(shí)候,你并不能注意到 已存在 的網(wǎng)絡(luò)設(shè)備的狀態(tài),而僅僅是從一個(gè)網(wǎng)絡(luò)配置和策略角度去嘗試達(dá)到 期望的 狀態(tài)。
用配置管理工具解決的其中一個(gè)問(wèn)題是,配置“飄移”(當(dāng)設(shè)備的期望配置逐漸漂移,或者改變,隨著時(shí)間的推移,手動(dòng)改變和/或在一個(gè)環(huán)境中使用了多個(gè)不同的工具),事實(shí)上,這也是像 Puppet 和 Chef 所使用的地方。代理商電聯(lián)到前端服務(wù)器,驗(yàn)證它的配置,并且,如果需要變更,則改變它。這個(gè)方法是非常簡(jiǎn)單的。如果有故障了,需要去排除怎么辦?你通常需要跳過(guò)管理系統(tǒng),直接連到設(shè)備,找到并修復(fù)它,然后,馬上離開,對(duì)不對(duì)?果然,在下次當(dāng)代理電連回來(lái),這個(gè)修復(fù)問(wèn)題的改變被覆蓋了(基于主/前端服務(wù)器是怎么配置的)。在高度自動(dòng)化的環(huán)境中,一次性的改變應(yīng)該被限制,但是,仍然允許使用它們(LCTT 譯注:指的是一次性改變)的工具是非常有價(jià)值的。正如你想到的,其中一個(gè)這樣的工具是 Ansible。
因?yàn)?Ansible 是無(wú)代理的,這里并沒(méi)有一個(gè)默認(rèn)的推送或者拉取去防止配置漂移。自動(dòng)化任務(wù)被定義在 Ansible 缺省運(yùn)行一次的劇本對(duì)網(wǎng)絡(luò)工程師是很具有吸引力的,讓人欣慰的是,在設(shè)備上手動(dòng)進(jìn)行的改變不會(huì)自動(dòng)被覆蓋。另外,當(dāng)需要的時(shí)候,一個(gè)劇本所運(yùn)行的設(shè)備范圍很容易被改變,即使是對(duì)一個(gè)單個(gè)設(shè)備進(jìn)行自動(dòng)化的單次變更,Ansible 仍然可以用,設(shè)備的 范圍 由一個(gè)被稱為 Ansible清單的文件決定;這個(gè)清單可以是一臺(tái)設(shè)備或者是一千臺(tái)設(shè)備。 下面展示的一個(gè)清單文件示例,它定義了兩組共六臺(tái)設(shè)備: 為了自動(dòng)化所有的主機(jī),你的劇本中的劇集定義的一個(gè)片段看起來(lái)應(yīng)該是這樣的: 并且,要只自動(dòng)化一個(gè)葉子節(jié)點(diǎn)交換機(jī),它看起來(lái)應(yīng)該像這樣: 這是一個(gè)核心交換機(jī): 關(guān)于Ansible中怎么實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。[core-switches]dc-core-1dc-core-2 [leaf-switches]leaf1leaf2leaf3leaf4
hosts: all
hosts: leaf1
hosts: core-switches
分享名稱:Ansible中怎么實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化
分享地址:http://weahome.cn/article/gpgjso.html