登陸界面,登陸是對接了單點sso,單點認證後獲取username,根據username的權限,對應顯示前端的界面
前端
2.dashboard 顯示,包括用戶總數、機器總數、受權主機數、當前登陸用戶信息、最近登陸信息、報警信息shell
3.每日指標,主要包括天天須要例行檢查的服務狀態以及業務監控狀態數據庫
4.部門管理,主要是LDAP對應的cn地址,全部的用戶信息都與LDAP打通包括用戶的增長及刪除,增長用戶實現如下幾個功能:django
5. 用戶管理:後端
增長用戶實現如下幾個功能:運維
平臺用戶的增長
ssh
用戶的ssh key建立,並拷貝到跳板機上異步
LDAP 用戶增長ide
二次認證須要的條形驗證碼生成,主要是爲單點登陸生成google authenticator 二次認證的二維碼(基於時間進行驗證)google
google authenticator 二次認證登陸跳板機的密鑰文件生成
經過釘釘接口獲取用戶的電話號碼及中文名字
用戶角色
主要有運維人員,超級用戶,管理員,普通用戶
前端能夠根據不一樣的角色顯示不一樣
後端主要是用裝飾器實現用戶權限的管理
刪除用戶實現功能
刪除用戶時,判斷用戶是否屬於某個組,若屬於則提示先移除組再刪除用戶
刪除用戶的ECS登陸權限及sudo權限
刪除用戶ssh key
刪除用戶google authenticator 二次認證登陸跳板機的密鑰文件
刪除用戶二維碼
LDAP刪除用戶
平臺刪除用戶
用戶組
提供用戶檢索功能
組對應的ECS機器有登陸權限或sudo權限,當某個用戶增長到這個組下,也會賦予相應的權限
當從某個組移除用戶時,用戶組及用戶對應的ECS機器有登陸權限和sudo權限,都會被移除
點擊成員數目,能夠查看組下的具體成員信息
6.資產管理,主要包括機器管理和機器組管理
機器管理實現功能
機器信息經過阿里雲API接口獲取,並經過django-celery 的beat 定時同步主機信息,也能夠手動同步機器信息
機器分組實現功能
機器組對應的用戶及用戶擁有的ECS登陸權限及sudo權限,當某個機器加到此組下時,也會對應的用戶也會擁有此機器的ECS登陸權限及sudo權限
從組中移除機器時,刪除用戶的登陸權限及sudo權限
機器組列表:
7.受權管理
ECS 登陸受權
對用戶及用戶組進行登陸受權
拷貝用戶的公鑰文件到受權主機,實現ssh 免密登陸
Sudo 受權
對用戶及用戶組受權
sudo受權主要是將用戶加到某個用戶組下,用戶組的權限在機器初始化的時候,維護sudoers文件,對應擁有的權限
ECS受權列表:
ECS 受權添加:
sudo 受權添加:
8.自動化管理
任務操做
遠程主機單機命令執行
遠程主機腳本執行
較長命令及腳本支持後臺執行
後臺執行功能主要是celery 異步任務執行,返回執行結果
機器初始化
機器初始化主要用ansible 批量初始化
機器模版由多條ansible命令執行
機器初始化命令:
命令組合成模版:
機器初始化:
機器初始化列表:
實時查看執行初始化日誌:
任務執行模塊:
單一命令
shell 腳本
任務執行列表:
執行結果查看,也能夠下載
9.審計日誌,包括登陸日誌及平臺操做日誌
登陸日誌:
操做日誌:
10.審批管理
資源(ECS,RDS,SLB,MNS.MogoDB,Redis等)申請、釋放、變動配置的申請審批
權限申請(ECS登陸,sudo權限,應用平臺,數據庫白名單等)和釋放
郵件組申請
數據庫變動申請(數據庫修改數據,更改表結構,申請用戶權限)
全部的審批對接釘釘API接口,審批人通常爲2人,包括leader及運維人員,抄送個部門負責人
ECS登陸、Sudo、應用平臺實現自動受權,定時任務檢查釘釘審批狀態,審批經過以後,自動實現權限賦予,應用平臺經過API接口實現
申請列表:
ECS 資源申請,其餘的申請圖就不一一列出
權限申請列表:
11.值班管理
平常值班,能夠按天或按周來進行值班輪循
節假日值班,選擇具體值班人員,肯定值班範圍,按天來進行輪詢值班
平常值班列表:
節假日值班添加:
根據添加的值班信息展現:
因爲代碼涉及到公司隱私信息,就不開源啦,前端代碼使用的模版能夠在百度雲盤下載:
https://pan.baidu.com/s/1gfB2KPP