redfish_Redfish和Ansible的带外管理
redfish
在本文中,我將解釋如何將Redfish和Ansible一起使用,以從一個(gè)中心位置大規(guī)模地完全自動(dòng)化系統(tǒng)管理任務(wù),從而顯著降低復(fù)雜性并幫助提高IT管理員的生產(chǎn)力。
Redfish是由分布式管理任務(wù)組(DMTF)發(fā)布的開放式行業(yè)標(biāo)準(zhǔn)規(guī)范,旨在對(duì)平臺(tái)硬件進(jìn)行現(xiàn)代化和安全的管理。 在Dell EMC PowerEdge服務(wù)器上,可通過集成的Dell遠(yuǎn)程訪問控制器(iDRAC)獲得Redfish管理API,該控制器是一種帶外管理控制器,用于遠(yuǎn)程管理服務(wù)器上的所有硬件組件。 IT管??理員可以在iDRAC上使用Redfish API來執(zhí)行所有生命周期管理任務(wù)。 而且,由于這些API是通過HTTPS發(fā)送統(tǒng)一資源標(biāo)識(shí)符(URI)來訪問的,因此管理員可以從不同的工具(例如命令行界面(CLI)或Web瀏覽器)中進(jìn)行選擇,并可以從任何設(shè)備(例如筆記本電腦或移動(dòng)設(shè)備。
Ansible是一個(gè)開源自動(dòng)化引擎,用于運(yùn)行任務(wù),包括安裝軟件和配置應(yīng)用程序。 它是一對(duì)多的無代理機(jī)制,可以從一臺(tái)控制機(jī)調(diào)用和監(jiān)視重復(fù)的部署任務(wù)。 因?yàn)樗兄噶疃际峭ㄟ^YAML或JSON文件指定的,所以Ansible比shell腳本更易于學(xué)習(xí),并且具有不同技術(shù)背景的IT人員也更容易適應(yīng)。 與其他流行的配置管理工具相比,Ansible是最簡(jiǎn)單的安裝和配置。通過iDRAC進(jìn)行帶外管理
iDRAC已為數(shù)代服務(wù)器支持傳統(tǒng)協(xié)議(例如IPMI , SNMP和WS-MAN) 。 除這些協(xié)議外, RACADM工具(Dell EMC OpenManage的一部分)易于使用,是iDRAC管理的不錯(cuò)選擇。 但是,隨著硬件復(fù)雜性(包括網(wǎng)絡(luò)和存儲(chǔ)設(shè)備)的指數(shù)級(jí)增長(zhǎng),帶外管理的復(fù)雜性也有所提高。 盡管安全一直是主要關(guān)注的問題,但在今天它變得更加重要。 這些要求的結(jié)果是創(chuàng)建了Redfish規(guī)范,以簡(jiǎn)化和鞏固對(duì)各種硬件的管理,同時(shí)提供最大的安全性。
使用紅魚
可以通過Redfish API向iDRAC發(fā)送URI和用戶憑證來查詢它。 一種簡(jiǎn)單的方法是通過curl CLI命令。 本示例向iDRAC查詢服務(wù)器的整體運(yùn)行狀況:
$ curl -s https: //< idrac-ip >/ redfish / v1 / Systems / System.Embedded.1 \-k -u root:password | jq .Status.Health
"OK"
Redfish返回的所有數(shù)據(jù)均為JSON格式,因此我們需要解析所需的信息。 在這種情況下,我使用了jq解析器來提取所需的信息。
下一個(gè)示例向iDRAC查詢服務(wù)器的CPU信息:
$ curl -s https: //< idrac-ip >/ redfish / v1 / Systems / System.Embedded.1 \-k -u root:password | jq .ProcessorSummary.Model
"Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz"
這些簡(jiǎn)單的示例說明了使用PowerEdge iDRAC中提供的Redfish API從服務(wù)器收集信息有多么容易。
使用Ansible
Ansible指令在稱為劇本的YAML文件中指定。 盡管完整的劇本教程不在本文討論范圍之內(nèi),但此常規(guī)示例顯示了直觀的劇本是如何實(shí)現(xiàn)的:
- name : daily system admin taskshosts : my_100_servers
tasks :
- user : name=hacker state=absent remove= yes
- yum : name=* state=latest
- file : path=/etc/motd state=absent
調(diào)用劇本時(shí),這些命令在/ etc / ansible / hosts中定義的變量my_100_servers指定的100臺(tái)服務(wù)器中運(yùn)行。 要執(zhí)行的任務(wù)是:刪除黑客用戶,使用yum更新所有軟件包,并刪除文件/ etc / motd 。 由于Ansible劇本定義了所需的狀態(tài),因此可以在不影響服務(wù)器狀態(tài)的情況下針對(duì)服務(wù)器多次運(yùn)行該劇本。 如果某個(gè)任務(wù)已經(jīng)實(shí)現(xiàn)(例如,“用戶黑客不存在”),則劇本將忽略該任務(wù)并繼續(xù)前進(jìn)。
盡管大多數(shù)Ansible用例都是通過SSH與主機(jī)通信的(盡管還支持其他方法,例如PowerShell遠(yuǎn)程處理),但是帶外管理實(shí)現(xiàn)還是通過HTTPS與主機(jī)(或更確切地說,與主機(jī)的iDRAC)進(jìn)行通信。
iDRAC + Redfish + Ansible =安全,可擴(kuò)展的自動(dòng)化服務(wù)器管理
下圖說明了如何將所有內(nèi)容整合在一起以提供一個(gè)自動(dòng)化的,可擴(kuò)展的帶外管理解決方案。
將Redfish URI發(fā)送到服務(wù)器,取回?cái)?shù)據(jù)并進(jìn)行相應(yīng)的排序。
1. Ansible劇本定義了我們想要從iDRAC獲得的信息。 在此示例中,我們要求當(dāng)前的功耗。 然后,將構(gòu)建特定的Redfish URI并將其發(fā)送到所有iDRAC。
2. iDRAC接收URI,調(diào)用相應(yīng)的Redfish API收集數(shù)據(jù)或執(zhí)行任務(wù),然后以JSON格式發(fā)送回響應(yīng)。
3. Ansible控制機(jī)器接收J(rèn)SON格式的數(shù)據(jù),對(duì)其進(jìn)行解析以獲取特定信息,并可以調(diào)用腳本對(duì)其進(jìn)行格式化以將其導(dǎo)入電子表格或存儲(chǔ)在數(shù)據(jù)庫(kù)中。
發(fā)展歷程
實(shí)現(xiàn)該解決方案的Ansible手冊(cè)和模塊位于項(xiàng)目的GitHub頁(yè)面上 。 請(qǐng)注意,尚未實(shí)現(xiàn)所有功能,但是開發(fā)仍在進(jìn)行中。 歡迎請(qǐng)求請(qǐng)求和功能。
如果您想了解更多信息,請(qǐng)與Jose Delarosa一起參加2017年10月23日舉行的2017年歐洲開源峰會(huì) 。在他的演講《 Ansible和Redfish的自動(dòng)帶外管理》中 ,他將分享有關(guān)使用的更多詳細(xì)信息。開源工具和開放行業(yè)標(biāo)準(zhǔn),以實(shí)現(xiàn)可擴(kuò)展的自動(dòng)化帶外系統(tǒng)管理。
翻譯自: https://opensource.com/article/17/9/out-band-management-redfish-and-ansible
redfish
總結(jié)
以上是生活随笔為你收集整理的redfish_Redfish和Ansible的带外管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java高级:面试题-1
- 下一篇: SAR成像(一):线性调频信号(LFM)