Python 運維總結

IvanGuXXXX發表於2019-02-13

傳統運維

        -命令列

        -批量指令碼

自動化運維

雲運維

 

自動化運維工具

部署類: jenkins

環境類:ansible

監控類:ngios

 

適合自動化運維的程式語言的特點:

豐富的第三方庫

學習成本低

 

自動化運維的缺點

資料無法共享

無法主動發現問題

部署成本高

標準不統一

 

雲運維簡介

資源資料共享

主動發現問題

統一標準

成本低

 

ansbile 教程簡介

一個自動化管理IT資源的工具

功能:

系統環境配置、

安裝軟體

持續整合

熱回滾

 

優點:

無客戶端

推送式

豐富的module

基於YAML的Playbook

商業化的支援

 

缺點:

效率低,易掛起

併發效能差

 

安裝ansbile

環境準備:python setuptools Pip(可選)

 

執行ansible的流程

ansible all -m ping

 

喚起ansible ----查詢hosts,獲取指定目標的IP -----呼叫指定的模組 -----傳入指定的引數----返回執行結果

 

指定host連線的埠:

在host檔案中的IP:埠號

例:192.168.0.10:5000

 

Ad-Hoc

類似與命令列shell命令與shell script兩者之間的關係

 

ansible -playbook簡介

一種簡單的配置管理系統與多機器部署系統的基礎

可以編排有序的執行過程甚至做到多組機器之間來回有序執行特定的步驟

 

 

呼叫ansible 模組

1.引入ansible runner庫

2.初始化runner物件,傳入相關引數

3.執行runner物件的run函式

 

 

 

自動化運維之saltstack

概念:

1.一個配置遠端管理系統,能夠維護預定義狀態的遠端節點

2.一個分散式遠端執行系統,用來在遠端節點上執行命令和查詢資料

 

特點 :

1.簡單 (相對)puppet

2.並行執行

3.基於成熟技術(ZeroMQ,AES)

4.Python API

5.靈活開放

 

服務架構

1.master---- 負責管理所有節點

2.minion----節點服務

3.ZeroMQ----通訊服務

4.AES----資料加密演算法

 

安裝依賴:

1.python 2.6-3.0

2.ZeroMQ or REAT

3,mako(可選) :一個可選的Salt States解析器

4.gcc

 

啟動:

1.執行master節點

2.修改minion節點配置,填入master節點資訊

3.啟動minion

4.master新增minion

 

grains

minion啟動的時候採集的系統靜態,包括cpu,作業系統,檔案系統,硬碟等

 

pillar

與grains類似,可以將minion資料通過key/value的格式進行儲存

 

targeting minions

為salt指定minion的方法

例:salt web1 apache.signal restart

 

salt -c "G@os:debian and webserver* or E@db.*" test.ping

G@指定了grains

webserver指定了ID以webserver開頭的minion

E@是以正則的額方式指定minion的ID

 

salt runners

執行在 master上命令的方法

 

遠端執行

salt '*' cmd.run 'uname -a'

salt '*' exec_code python "import sys; print sys,version"

 

saltstack API

配置API

1.安裝saltapi

2.新增呼叫API使用者

3.生成加密證照

4.修改配置檔案

 

 

 

 

監控工具:Nagios

一款免費的開源IT基礎設施監控系統,功能強大,靈活性強,能有效監控windows linux vmware 和unix主機狀態 交換機 路由器等網路設定

 

結構上分為兩部分:核心功能 外掛

 

特性:

1.監控網路服務

2.監控主機資源

3.主動通知

4.web頁面

5.可擴充套件

 

優點:

1.輕量級,架構簡單

2.容易部署

3.文件健全

4.靈活 全面

 

缺點:

1.修改配置麻煩

2.太靈活,學習成本高

3.監控報警缺乏歷史資料

4.嚴重依賴外部外掛

 

 

nagios配置web頁面

1.安裝web server(nginx apache等)

2.配置web server 到nagios

3.啟動php-fpm,perl-fcgi

4.啟動web server

 

nagios圖形化配置管理工具:nagiosQL

pnp4nagios:監控資訊圖表工具

nagiosgraph:監控資訊圖表工具

 

 

 

 

buildbot

一個開源的框架,可以自動化構建,測試和釋出程式碼等過程,每當程式碼有改變,伺服器要求不同平臺上的客戶端立即進行程式碼構建和測試,收集並報告不同平臺的構建和測試結果

 

各個元件模組

1.repository: 程式碼管理庫

2.Buildmaster:決策中心

3.Buildslave :執行模組

4.Notifiers :訊息通知

 

通訊方式:

1.BuildSlave執行在需要測試的機器上

2.Tcp通訊,由BuildSlave主動發起

3.命令都只能由buildmaster 下發到buildslave中

4.buildslave從repository上獲取整合程式碼

 

優點:

1.跨平臺 ----python

2.跨語言 java php

3.環境依賴低

4.多樣化通知

5.配置靈活

6.分散式

 

 

 

 

相關文章