登錄界面,登錄是對接了單點sso,單點認證後獲取username,根據username的權限,對應顯示前端的界面
2.dashboard 顯示,包括用戶總數、機器總數、授權主機數、當前登錄用戶信息、最近登錄信息、報警信息
3.每日指標,主要包括每天需要例行檢查的服務狀態以及業務監控狀態
4.部門管理,主要是LDAP對應的cn地址,所有的用戶信息都與LDAP打通包括用戶的增加及刪除,增加用戶實現以下幾個功能:
5. 用戶管理:
增加用戶實現以下幾個功能:
平臺用戶的增加
用戶的ssh key創建,並拷貝到跳板機上
LDAP 用戶增加
二次認證需要的條形驗證碼生成,主要是爲單點登錄生成google authenticator 二次認證的二維碼(基於時間進行驗證)
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