CMDB小计1
?
1.web開發(fā)(Django,flask, tornado)。
2.自動(dòng)化運(yùn)維(CMDB項(xiàng)目)。
3.爬蟲 和 數(shù)據(jù)分析。
4.自動(dòng)化測試。
4.人工智能,機(jī)械學(xué)習(xí), 算法
?
```
CMDB 項(xiàng)目:
自動(dòng)化運(yùn)維:
運(yùn)維:管理服務(wù)器的
ps: 分為基礎(chǔ)運(yùn)維,應(yīng)用運(yùn)維
為什么需要自動(dòng)化運(yùn)維?
1.項(xiàng)目上線:
流程:產(chǎn)品經(jīng)理調(diào)研(畫出原型圖)------定需求----------三方會(huì)談(產(chǎn)品經(jīng)理,研發(fā),老大)-----定日期-------測試項(xiàng)目--------最終上線--------應(yīng)用運(yùn)維
目前:是把代碼打包給運(yùn)維,運(yùn)維解壓上線
問題:隨著機(jī)器數(shù)量的線性增加,運(yùn)維的工作量也是線性增加,重復(fù)而且是無意義的勞動(dòng)
解決:
1,寫一個(gè)shell腳本,進(jìn)行部署
2,搞一個(gè)自動(dòng)化代碼上線系統(tǒng)
必要條件:
服務(wù)器的各種信息(主機(jī)名,CPU,硬盤大小等)
2.監(jiān)控系統(tǒng):
檢測服務(wù)器的各種信息(硬盤是否滿,CPU的使用率,內(nèi)存的使用率,網(wǎng)站服務(wù)運(yùn)行是否正常)
問題:之前寫簡單的腳本,檢測服務(wù)器的信息,比較麻煩
解決:想將服務(wù)器的各種信息,以圖標(biāo)的形式展示在web界面上(可視化)
必要條件:
服務(wù)器的各種信息(主機(jī)名,CPU,硬盤大小等)
3.自動(dòng)裝機(jī)系統(tǒng):
問題:人工工作量大(ps要人一臺(tái)臺(tái)裝)
解決:搞一個(gè)裝機(jī)系統(tǒng)(一鍵裝機(jī)),cobbler軟件
必要條件:服務(wù)器的各種信息(主機(jī)名,CPU等)
4.Excel表格審計(jì)管理資產(chǎn)
cmdb系統(tǒng):
配置管理系統(tǒng):
運(yùn)維自動(dòng)化無法實(shí)現(xiàn)
cmdb實(shí)現(xiàn)的核心:
目標(biāo):收集服務(wù)器的信息(CPU,內(nèi)存,網(wǎng)卡,硬盤等)
實(shí)現(xiàn)方式:
1.linux命令獲取CPU,內(nèi)存
2.python執(zhí)行l(wèi)inux的命令:
subprocess模塊, getoutput函數(shù)
```
```
df -h內(nèi)存信息
cat /proc/cpuinfo IP信息
?
4種實(shí)現(xiàn)方案: agent方案: 其本質(zhì)上就是在各個(gè)服務(wù)器上執(zhí)行subprocess.getoutput()命令,然后將每臺(tái)機(jī)器上執(zhí)行的結(jié) 果,通過request模塊返回給主機(jī)API,然后主機(jī)API收到這些數(shù)據(jù)之后,放入到數(shù)據(jù)庫中,然后 通過web界面將數(shù)據(jù)展現(xiàn)給用戶 缺點(diǎn):需要在每一臺(tái)服務(wù)器上進(jìn)行部署 優(yōu)點(diǎn):速度快 使用場景:服務(wù)器比較多的時(shí)候
?
?
ssh類方案: 中控機(jī)通過parmiko(py模塊)登錄到各個(gè)服務(wù)器上,然后執(zhí)行命令的方式去獲取各個(gè)服務(wù)器上的信息 API從數(shù)據(jù)庫中獲取到未采集的機(jī)器列表后發(fā)送到中控機(jī)服務(wù)器中,中控機(jī)服務(wù)器通過parmiko模塊登錄到服務(wù)器上,進(jìn)行信息的采集,服務(wù)器采集完后再將結(jié)果返回給中控機(jī),仍后將從服務(wù)器中得到 的信息通過 request模塊發(fā)送給API,API通過主機(jī)名和SN作為唯一標(biāo)識(shí),將信息錄入到數(shù)據(jù)中,然后通過web界面將數(shù)據(jù)展現(xiàn)給用戶 paramiko模塊 缺點(diǎn): 1:網(wǎng)絡(luò)有延遲,有一個(gè)中控機(jī),網(wǎng)絡(luò)有延遲,速度較第一種要慢一些(有其是數(shù)據(jù)比較大的時(shí)候更加明顯) 優(yōu)點(diǎn):不用每臺(tái)都部署 使用場景: 服務(wù)器比較少的時(shí)候
?
?
?
salt-stack方式: 中控機(jī)從API中獲取未采集的資產(chǎn)信息后通過隊(duì)列發(fā)送命令給服務(wù)器執(zhí)行。服務(wù)器執(zhí)行完后將結(jié)果放到入另一個(gè)隊(duì)列中,中控機(jī)將獲取到的服務(wù)信息結(jié)果發(fā)送到API進(jìn)而錄入數(shù)據(jù)庫。然后通過web界面將數(shù)據(jù)展現(xiàn)給用戶
使用場景:公司已經(jīng)使用salt-stack軟件 優(yōu)點(diǎn):速度快,開發(fā)成本低 缺點(diǎn):過于依賴salt-stack軟件 安裝salt-master: yum install salt -master 配置配置文件: interface: 本機(jī)IP service salt-master start#(ps啟動(dòng)) 安裝 salt-minion yum install salt-minion 配置文件配置: master:10.0.0.51 salt -ket -L:列出所有的minion主機(jī) salt "主機(jī)名“ cmd.run "命令"
?
?
?
puppet方式:(不用特別學(xué)習(xí))
rubby寫的 ?
?
分為三大部分: 1.服務(wù)器數(shù)據(jù)采集 目標(biāo): 實(shí)現(xiàn)上述三種方案,然后通過配置,可以任意的切換方案。 規(guī)劃采集項(xiàng)目: bin:啟動(dòng)文件 conf:配置 lib:庫文件或公共文件 src:源代碼 test:測試目錄 配置文件的管理: django的全局配置文件: 管理一些不常用的默認(rèn)的配置 比如:語言, email配置等。 核心點(diǎn): setattr, getattr, dir 的用法 代碼: class Settings(): def init(self)
核心點(diǎn):
setattr, getattr, dir 的用法
代碼:
class Settings():
def __init__(self):
## 整合全局配置文件
for k in dir(global_settings):
if k.isupper():
v = getattr(global_settings, k)
setattr(self, k, v)
## 整合自定義配置文件
for k in dir(config):
if k.isupper():
v = getattr(config, k)
setattr(self, k, v)
settings = Settings()
?
?
2.API獲取數(shù)據(jù)并清洗入DB
3.web界面的展示 ?```
轉(zhuǎn)載于:https://www.cnblogs.com/sudaguo/p/10867377.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
- 上一篇: 微信支付app支付怎么快速开通
- 下一篇: visio2016 数据库模型图_数据库