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