注:本教程由廖高祥釋出于實驗樓,版權歸原作者所有。
什麼是自動化運維?
自動化運維是指将IT運維中日常的、大量的重複性工作自動化,把過去的手工執行轉為自動化操作。自動化運維不單純是一個維護過程,更是一個管理的提升過程,是IT運維的最高層次,也是未來的發展趨勢。
自動化運維常用開源工具
Jekins 。一個具有許多插件的自動化伺服器。用于建構,測試和自動化部署應用程式。通常Jenkins用作軟體開發的CI/CD工具。Jenkins 的作業(建構)可以由各種觸發器啟動。例如送出代碼到版本控制系統,按計劃事件,通過通路特定URL建構或者在完成其它建構之後進行觸發。
Ansible。集合了衆多運維工具(puppet、chef、func、fabric)的優點,實作了批量系統配置、批量程式部署、批量運作指令等功能。
SaltStack 。基于Python開發的一套C/S架構配置管理工具,簡單易部署,同時支援伺服器/用戶端 和無代理模式。在後一種情況下,Salt 使用SSH連接配接到受管理的節點/虛拟機。Salt 使用以Python編寫的執行子產品,其中包含函數以定義配置任務。
Nagios 。網絡監控工具,能有效監控Windows、Linux和Unix的主機狀态,交換機、路由器等網絡裝置,并發送告警資訊。
Zabbix。 是一個為應用服務,網絡服務和硬體監控提供的解決方案。Zabbix 将收集的資料存儲在關系資料庫中,如MySQL,PostgreSQL等。Zabbix 允許你監控簡單的服務,如HTTP服務。Zabbix agent端可以安裝在Windows和 類Unix伺服器上,用來檢視系統參數,如CPU負載、記憶體和磁盤使用率等。另外,agent可用于監視标準服務和自定義應用程式。Zabbix也支援通過SNMP、SSH等方式,無需在要監視的伺服器上安裝代理。
Kubernets。 簡稱k8s,是來自 Google 雲平台的開源容器叢集管理系統,功能包括自動化容器的部署,排程和節點叢集間擴充,支援Docker和Rocket。
OpenShift 。由RedHat推出的一款面向開源開發人員開放的平台即服務(PaaS)。 OpenShift通過為開發人員提供在語言、架構和雲上的更多的選擇,使開發人員可以建構、測試、運作和管理他們的應用。
ELK。 Elasticsearch,Logstash,Kibana軟體的組合,它是用于記錄,日志分析,日志搜尋和可視化的完整工具。Elasticsearch是基于Apache Lucene的搜尋工具。Logstash是用于收集,解析和存儲日志的工具,可以通過Elasticsearch對其進行索引。
自動化運維系統的功能
具體應包括哪些功能沒有統一的标準,視每個公司業務和開發需求而定。大體上,一個成熟的自動化運維系統功能應包含如下五大功能子產品:
- (CMDB)配置管理 。 伺服器、網絡裝置、應用管理、業務屬性、監控屬性、架構拓撲、環境管理、營運狀态
- 集中監控報警 。網絡監控、主機監控、HTTP探測監控、日志監控、中間件監控
- (ITSM)流程管理。 變更管理、需求管理、事件管理、工單系統、服務請求、問題管理
- 日志分析與處理 。日志的備份、審計、分析,報表展示
- 持續內建與釋出 。自動化運維、Docker管理、流程編排、輕量ITSM、一緻性管理
推薦幾個Github上不錯的自動化運維平台:
- OpsManage 。代碼及應用部署CI/CD、資産管理CMDB、計劃任務管理平台、SQL稽核|復原、任務排程、站内WIKI。
- adminset 。CMDB、CD、DevOps、資産管理、任務編排、持續傳遞、系統監控、運維管理、配置管理。
- jumpserver。 全球首款完全開源的堡壘機,是符合 4A 的專業運維審計系統,官網位址。
今天推薦的這個教程是一個完整的自動化運維實戰教程,包含自動化運維的概念和基礎知識,常用開源軟體的使用場景,一個自動化運維系統需要具備哪些功能;通過Pexpect庫實作自動監控伺服器的負載、磁盤、記憶體、CPU、網絡接口(流量)、端口等。
通過完整的教程,你将學到以下知識點:
- Python自動化運維的概念和知識體系
- 如何開發一個成熟的自動化運維管理系統
- 使用nmap建構高效的端口掃描器
- 使用ClamAV搭建集中式病毒掃描器,實作自動化管理
- 使用Django+Echarts+openpyxl開發自動化報表系統
- 通過paramiko上傳/下載下傳,fabirc+git代碼釋出,熟悉自動化實踐中的批量主機管理方案
- Ansible自動化運維,從安裝介紹,到架構原理,到實戰演練
- Saltstack自動化運維入門到精通
實驗環境
- Python 3.6
- Xfce終端
- Pexpect子產品
想了解自動化運維或具有Python基礎的使用者都可以去學習一下;如果你想使用Python開發自動化運維系統,卻不知道應該從何入手,這個教程就是專門為你寫的啦。
完整的教程可以:點我學習,在環境中動手實操學習。
今日推薦