基於web技術的操作系統安裝器的設計 頂 原 薦

什麼是基於web技術的安裝器(web-based installer)?

傳統的Linux操作系統安裝需要啓動一個LiveOS,然後在LiveOS中運行一個本地安裝程序,如Fedora下的Anaconda. LiveOS除了讓用戶在安裝操作系統之前能預先體驗之外,也爲安裝器提供了運行環境。這對於桌面操作系統已然足夠,因爲PC、筆記本電腦自帶終端設備——鍵盤、顯示器、鼠標。然而,如果要給一臺服務器安裝操作系統則稍微複雜了一點,因爲服務器通常沒有這些終端設備。這就需要利用網絡和VNC將服務器端的圖像傳送出來。這樣做的缺點在於,網絡負載很大,在網絡條件不好的環境下會帶給用戶非常差的安裝體驗。另外,本地安裝器也會依賴很多的圖形軟件包,不僅會增加ISO的大小,也會帶來很多版權及法律上的工作量。

基於web技術的安裝器則利用web開發技術——HTML5,Javascript,CSS,web server等,讓用戶可以通過瀏覽器直接安裝操作系統。目前,"KVM for IBM z Systems"已經採用這種安裝方式。

基於web技術安裝器的優勢

  • 依賴更少的軟件包
  • 非常小的網絡負載,網頁加載後只需要通過Ajax來與服務器通信
  • 可通過瀏覽器跨平臺訪問
  • 對於服務器及集羣安裝非常方便
  • 易於與其他軟件集成,提供RESTful API
  • 滿足可訪問性,方便殘障人士使用

使用web安裝器的安裝流程

使用web安裝器來安裝操作系統的流程非常簡單,只需要如下幾個步驟:

  1. 加載ISO
  2. 用https://{IP_OF_SERVER}作爲URL來訪問安裝器
  3. 按照安裝器的引導完成安裝
  4. 點擊安裝器的重啓按鈕重啓服務器,安裝完成

Web安裝器實現的功能

  • 國際化及多語言支持,選擇安裝語言與系統語言
  • 版權聲明
  • 磁盤列表及選擇安裝磁盤
  • 添加SCSI磁盤
  • 添加DASD磁盤
  • Swap分區加密
  • 自動分區
  • 手動分區
  • 分區操作列表
  • 激活網卡
  • IPv4配置
  • IPv6配置
  • 主機名及搜索域配置
  • NTP配置
  • Kdump配置
  • 時區設置
  • Root密碼設置
  • 添加、刪除用戶
  • 配置總結列表
  • 無人值守安裝
  • 安裝日誌下載

Web安裝器的架構設計

Web安裝器分爲前端和後端兩部分實現:前端負責UI展示及用戶交互,後端負責給前端提供RESTful API並根據前端的API調用來存儲用戶配置數據,執行分區、安裝、配置目標系統等操作。

Web安裝器由4個HTML頁面組成:

  • 歡迎頁:介紹操作系統,提供選擇安裝語言的下拉框,點擊下一步可進入到版權聲明頁
  • 版權聲明頁:顯示版權文件,在用戶同意後可跳轉到配置頁面
  • 配置頁:引導用戶進行系統配置
  • 安裝頁:展示安裝進度,安裝完成後可點擊重啓按鈕重啓系統

UI是基於HTML5、CSS3及Javascript等網頁開發技術,並利用如下工具:

  • jQuery:一個快速、小巧且功能豐富的js庫,可用來操作DOM,處理事件及Ajax請求
  • Bootstrap:最流行的前端開發框架之一,多用於開發響應式、移動優先的web項目
  • Bootstrap-select: jQuery 插件,利用Bootstrap,但提供了功能更加豐富的下拉選擇框控件
  • Jquery Validation :jQuery插件,用來檢驗表單的合法性

後端由以下幾個模塊組成:

  • CherryPy:一個輕量級的python web發佈器
  • Model:存儲用戶的配置數據
  • RESTful API:爲前端提供API接口
  • 子功能模塊:提供安裝器的各個子功能
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章