網管人雜誌
本文刊載於 網管人雜誌第 98 期 - 2014 年 3 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。文章目錄
1、前言2、實作環境
3、建立 Live CD 映像檔打包環境
安裝 Ubuntu Desktop 12.04(32 bit)
安裝及設定 Ubuntu Customization Kit
自訂 Live CD 內容
修改 Live CD 套件下載來源為台灣
移除不必要的系統及軟體套件
停用套件自動檢查更新功能
更改時區設定
移除桌面預設圖示加上 View Client 捷徑
開機後自動執行 Horizon View Client
解決 Horizon View Client 初始化設定
完成客製化動作後打包成 Live CD 映像檔
4、建立 Live CD 或 Live USB
5、測試 Live CD 或 Live USB 運作流程
6、結語
1、前言
當企業及組織了解到虛擬化的高彈性架構及高可用性之後,逐漸將營運用或測試研發的伺服器環境,紛紛遷移至虛擬化環境當中,當達成了第一個虛擬化里程碑階段也就是伺服器虛擬化之後,通常會接著往第二個虛擬化里程碑階段也就是桌面虛擬化前進。當企業或組織嘗試導入虛擬化桌面專案後,因為所有的運算都由資料中心的 VM 虛擬桌面完成後,再將運算結果傳回給前端的使用者畫面呈現而以,所以使用者端便不需要傳統的 PC 主機。因此,首先會開始考慮將使用者端的 PC 主機,更換成「精簡型電腦(Thin Client)」以有效減輕 IT 人員的管理負擔,甚至是更換成連 CPU 處理器、記憶體、硬碟等,這些相關元件都不需要的「極簡型電腦(Zero Client)」。
圖 1、傳統桌上型電腦(PC)與精簡型電腦(Thin Client)
圖片來源: 維基百科 – Thin Client
無論是 Thin Client 或 Zero Client,與傳統 PC 主機相比都具備了體積小、功耗低(平均約 5 ~ 15 瓦)、不易損壞(元件相對較少)、維修便利...等特性。但是,IT 管理人員首當其衝的最大問題,便是既有的 PC 主機並未損壞,並且尚未到達設備需要報廢的年限,那麼在編列預算購買 Thin Client 或 Zero Client 的空窗期間,該如何有效利用現有的 PC 主機。
本文將討論及實作如何製作 VMware Horizon View Client with Ubuntu Live CD/USB,當客製化的 Live CD/USB 製作完成後,傳統的 PC 主機(不需要硬碟機)只要調整 BIOS 設定,使用 Live CD 或 Live USB 開機後,傳統的 PC 主機馬上搖身一變成為 Thin Client,有效利用現有設備渡過採購空窗期。
2、實作環境
- VMware ESXi 虛擬化平台: VMware vSphere ESXi 5.1
- Live CD 打包環境: Ubuntu Desktop 12.04 (32bit)
- Ubuntu 客製化工具組: Ubuntu Customization Kit 2.4.5
- 虛擬桌面客戶端: VMware Horizon View Client 2.1.0
- Live USB 製作工具: Fedora Live USB Creator 3.12.0
3、建立 Live CD 映像檔打包環境
欲建立 Ubuntu Live CD 映像檔環境,你可以採用在實體主機上打包環境,或者是如同本文在 VMware vSphere ESXi 5.1 虛擬化環境中打包 Live CD。請使用 vSphere Client 連線至 vCenter Server 或 ESXi Host,先將此次實作的 Ubuntu Desktop 12.04 ISO 映像檔上傳至 Datastore 後,點選 ESXi Host 選擇 New Virtual Machine 項目建立 VM 虛擬主機。在新增 VM 虛擬主機互動精靈視窗中,在 Congiruation 視窗中點選「Custom」項目,給予 VM 虛擬主機名稱,此實作為命名為「Build-LiveCD」,接著選擇要存放的 Datastore 並採用預設的 Virtual Machine Version 8 即可,在 Guest Operating System 視窗中請選擇「Linux」選項,在 Version 下拉式選單中選擇至「Ubuntu Linux (32-bit)」,然後給予「1 Sockets、1 Core」的虛擬 CPU 處理器,以及「2 GB」的 vRAM 虛擬記憶體,而虛擬網路卡的部份給予「E1000」類型的網路卡(Adapter)即可,最後採用「LSI Logic SAS」的虛擬硬碟控制器(SCSI Controller),並給予「20 GB(Thin Provision)」硬碟空間即可。
建立 VM 虛擬主機完成後,請編輯 VM 虛擬主機內容將不必要的虛擬裝置移除(例如,Floppy),並且為虛擬光碟機掛載剛才上傳的 Ubuntu Desktop 12.04 ISO 映像檔。
圖 2、為打包 Live CD 的 VM 虛擬主機掛載 Ubuntu ISO 映像檔
安裝 Ubuntu Desktop 12.04(32 bit)
請開啟 VM 虛擬主機 Console 畫面並開機(Power On),準備開始幫 VM 虛擬主機安裝 Ubuntu 作業系統,在 Welcome 歡迎安裝的視窗中預設採用的語系為「英文(English)」,您可以下拉至最底部選擇「中文(繁體)」項目,切換語系為正體中文後按下「安裝 Ubuntu」鈕開始安裝程序。
圖 3、進入 Ubuntu 安裝程序
在此實作環境中已經有 NAT 及 DHCP Server 機制存在,所以 VM 虛擬主機會自動偵測到可以連上網際網路,於正在準備安裝 Ubuntu 視窗中,請勾選「當安裝時下載更新」項目以保持套件為最新版本(穩定性及安全性考量),採用預設分割格式安裝即可並採用「Taipei」時區設定,採用預設的 Chinese 鍵盤排列方式,在使用者帳號設定部份記得勾選「自動登入」項目即可,待些許時間後 Ubuntu 作業系統便安裝完成,請退出 ISO 映像檔並重新啟動 VM 虛擬主機。
圖 4、設定使用者帳號密碼以及電腦名稱
安裝及設定 Ubuntu Customization Kit
由於實作環境當中已經有 DHCP Server,因此 VM 虛擬主機開機完成後便自動取得 IP 位址。因為稍後在客製化 Live CD 時會使用到基礎映像檔,所以請將 Ubuntu Desktop 12.04 ISO 映像檔也上傳至 VM 虛擬主機當中,以便成為稍後製作 Live CD 打包環境時的基礎映像檔。
圖 5、VM 虛擬主機下載 Ubuntu Desktop 映像檔
接著,點選左邊工具列圖示中的「Ubuntu 軟體中心」項目,在搜尋框中輸入「UCK」便會自動透過此關鍵字進行搜尋,並且找到「Ubuntu 客製化工具組」後,你可以按下更多資訊鈕查看詳細的套件資訊,或按下「安裝」鈕後輸入密碼通過認證後即可安裝 UCK(Ubuntu Customization Kit)套件,安裝完畢後剛才的安裝鈕會轉變成「移除」鈕(表示該套件已安裝完畢 !!)。
圖 6、搜尋並安裝 Ubuntu 客製化工具組(UCK)
在執行 UCK 建立打包環境以前,先修改「/usr/lib/uck/remaster-live-cd.sh」Script 檔案內容,將檔案內容中第 358 列的「cp -f /etc/resolv.conf "$REMASTER_DIR/etc/resolv.conf" ||」,其中的參數「-f」修改為「-d」,否則稍後在初始建立 Live CD 封閉打包環境時,將會發生「Failed to copy resolv.conf, error=1?」的錯誤訊息,並且中斷 Live CD 打包運作程序(詳細資訊請參考 Question #195202 Questions Ubuntu Customization Kit)。
圖 7、中斷 Live CD 打包運作程序的錯誤訊息
修改完成後,可以點選左邊 UCK 圖示或透過 Dash 主目錄執行 UCK,在選擇安裝 Language Packs 視窗中勾選要安裝的語系檔案,此次實作勾選「正體中文(zh-hant)」,接著在 Boot of Live CD 語系及預設採用語系視窗中,都請勾選「正體中文(zh_TW)」項目,然後在 Customized CD 的桌面環境設定視窗中,此實作採用 Gnome 桌面環境因此請勾選「gnome」項目。
此時,將會彈出視窗請您選擇要製作 Live CD 的 ISO 映像檔,請選擇先前我們下載到 VM 虛擬主機當中的 Ubuntu Desktop 12.04 ISO 映像檔,然後為此次製作 Live CD 進行命名(最大為 32 個字元),此實作命名為「Horizon View Client Live CD」。接下來會詢問有關打包 Live CD 的過程,首先是詢問是否在打包 Live CD 過程中是否有自訂套件請選擇「yes」,接著詢問是否要在屆時打包的 Live CD 中,刪除有關整合 Windows 環境的檔案也請選擇「yes」(因為此實作僅會使用到 Horizon View Client),最後則是詢問是否要打包成混合的映像檔,也就是可以適用於 Live CD/Live USB 請選擇「yes」。
上述 Live CD 打包環境設定完成後,會出現 Ready to build 視窗,按下確定後會請您輸入管理密碼通過驗證後,會看到「Unpacking ISO Image、Unpacking SquashFS Image」及相關訊息,此時便是 UCK 套件將 Ubuntu Desktop ISO 映像檔解開,並且建立「封閉(Chroot)」的 Live CD 打包環境,此時會自動在執行 UCK 套件的使用者家目錄中,建立「~/tmp」及相關子資料夾及子檔案(視機器效能約需等待 5 ~ 10 分鐘)。
圖 8、完成建立封閉的 Live CD 打包環境
自訂 Live CD 內容
當 Live CD 封閉的打包環境建立完成後,便會彈出可以自訂 Live CD 內容的視窗(因為先前建立環境時,有選擇要自訂 Live CD 內容),請選擇「Run console application」項目,此時將會開啟一個 Terminal 視窗(UCK customization console),此時的 Terminal 環境其實便是處於 Live CD 的 Chroot 封閉環境當中,裡面所看到的檔案路徑掛載路徑,事實上是相對於「~/tmp/remaster-root/」,請在此環境中自訂屆時 Live CD 的運作環境。
圖 9、開啟 UCK Console 以客製化 Live CD 運作環境
修改 Live CD 套件下載來源為台灣
因為屆時打包好的 Live CD 其預設套件下載的來源為「美國」,我們將透過下列動作修改來源為「台灣」,請修改套件下載來源設定檔「/etc/apt/sources.list」內容,將預設由美國站台「archive.ubuntu.com」下載,修改為台灣站台「tw.archive.ubuntu.com」進行套件下載的動作。同時,為了稍後可以順利安裝 VMware Horizon View Client,必須在來源檔案內容中再加上二行內容「deb http://archive.canonical.com/ubuntu/ precise partner」、「deb http://tw.archive.ubuntu.com/ubuntu/ precise universe」,加上第一行後屆時才能順利安裝 VMware Horizon View Client 套件,否則會發生找不到該套件的錯誤情況,第二行則是會自動幫助你下載相依套件「libssl」,否則將會因為無法找到相依套件而導致安裝程序停止。
圖 10、下載來源未設定,導致無法找到相依套件使安裝程序停止
經過修改後的套件下載來源設定檔 /etc/apt/sources.list 內容如下,請修改後存檔離開即可。
deb http://tw.archive.ubuntu.com/ubuntu/ precise main restricted
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted
deb http://tw.archive.ubuntu.com/ubuntu/ precise-updates restricted
deb http://archive.canonical.com/ubuntu/ precise partner
deb http://tw.archive.ubuntu.com/ubuntu/ precise universe
回到 UCK Console 環境中,請鍵入指令「apt-get update」以便下載及更新軟體套件清單內容,順便確認是否從台灣站台進行下載更新,接著鍵入指令「apt-get install -y vmware-view-client」,以便安裝 VMware Horizon View Client 及相依套件,安裝程序執行完畢後可以看到目前所採用的版本為 2.1.0。
圖 11、VMware Horizon View Client 及相依套件安裝完畢
移除不必要的系統及軟體套件
由於此次實作是要打包客製化的 Ubuntu with Live CD/USB 環境,因此我們希望能夠讓 Live CD 內容盡量精簡,除了讓打包好的 Live CD 映像檔空間減小之外,對於屆時運作的 Live CD 環境而言工作負載也較輕。但預設的 Ubuntu Desktop ISO 像檔會安裝許多我們用不到的軟體套件,例如,辦公室軟體(LibreOffice)、藍牙(Bluetooth)、遊戲(Game)...等,以及使用不到的系統套件如 印表機(cups)...等。因此,我們可以在 UCK Console 當中,執行如下指令將不必要的系統及軟體套件進行移除的動作,您可以依個人環境選擇要移除哪些套件,本次實作環境則移除了 LibreOffice、Thunderbird、Ubuntu One、Bluetooth、Media、Game、CUPs、Avahi-daemon 等套件,經過測試原本的 Live CD 打包後映像檔大約「620 MB」左右,將上述不必要的軟體套件移除後打包的 Live CD 映像檔「462 MB」。
apt-get autoremove -y libreoffice*
apt-get autoremove -y thunderbird
apt-get autoremove -y ubuntuone-installer
apt-get autoremove -y gnome-bluetooth
apt-get autoremove -y gnome-media*
apt-get autoremove -y gnome-games*
apt-get autoremove -y cups
apt-get autoremove -y avahi-daemon
此外,屆時的 Live CD 預設開機後,仍然會出現「歡迎(Welcome)」視窗,需要按下「試用 Ubuntu」鈕才能進入 Live CD 運作環境。雖然只是簡單的按下試用 Ubuntu 鈕即可,但是此預設執行程序等於中斷自動化運作流程,進而影響到使用者操作體驗。所幸,我們可以透過移除「ubiquity」軟體套件的動作,來處理這個會中斷運作流程的機制,請鍵入指令「apt-get autoremove -y ubiquity」即可。
圖 12、Live CD 預設開機後,仍然會出現歡迎視窗中斷運作流程
停用套件自動檢查更新功能
預設情況下 Ubuntu 會自動偵測並更新套件版本,此套件自動更新機制除了使軟體套件運作更為穩定之外,修正套件本身的安全性漏洞也是主要考量之一,但此實作是要打造出僅執行 VMware Horizon View Client 的 Live CD 環境,因此便不需要此自動更新機制(間接也節省網路頻寬的耗用),若屆時有重大安全性漏洞時,再重新打包已更新安全性套件的 Live CD 即可。請於 UCK Console 環境中,修改自動更新套件設定檔「/etc/apt/apt.conf.d/10periodic」內容,將「APT::Periodic::Update-Package-Lists」參數值,由預設的「1」(啟動,並每天自動檢查更新),修改成「0」也就是「永不」自動檢查更新。
圖 13、停用套件自動檢查更新功能
更改時區設定
預設情況下,屆時的 Live CD 開機後會採用「世界協調時間 UTC(Universal Time, Coordinated)」,因此將打包的 Live CD 時區設定為適用於台灣的 CST 時區,請在 UCK Console 中執行指令「cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime」,也就是將時區設定改為「Taipei (CST)」。移除桌面預設圖示加上 View Client 捷徑
預設情況下 Live CD 進入 Ubuntu 作業系統後,你會在桌面看到二個圖示分別是「安裝 Ubuntu 12.04.3 LTS」、「範例資料夾」,但這二個預設圖示對我們來說並沒有用處,因此在 UCK Console 中執行指令「rm -f /etc/skel/examples.desktop」,以便移除這二個預設圖示。
圖 14、Live CD 進入 Ubuntu 作業系統桌面預設捷徑圖示
同時,為了避免屆時使用者不小心關閉 VMware Horizon View Client 執行程式後,找不到再次執行 View Client 的執行程式,因此在桌面上建立一個 VMware Horizon View Client 執行程式的捷徑。請依如下步驟建立「/etc/skel/Desktop」資料夾,並於其中建立「vmware-view-client.desktop」執行程式的捷徑檔案,其中參數「Exec」表示屆時將開啟 VMware Horizon View Client 在「全螢幕」模式,且自動輸入 Connection Server 或 Security Server 的 URL,而參數「Name」為該捷徑檔案的名稱,完成捷徑檔案的建立後記得給予該捷徑檔案具有「執行」的權限。
# mkdir /etc/skel/Desktop
# cd /etc/skel/Desktop
# vi vmware-view-client.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=vmware-view-client-vmware
Exec=vmware-view --fullsrceen --serverURL=https://sc.vdi.weithenn.org
Categories=Application;Network;
Name=VMware Horizon View Client
# chmod 755 vmware-view-client.desktop
開機後自動執行 Horizon View Client
此實作的主要目的是為了讓舊有的 PC 主機,能夠透過 Live CD 或 Live USB 的運作機制下,搖身一變成為 Thin Client 的替代方案。因此,當透過 Live CD 或 Live USB 開機進入 Ubuntu 作業系統後,能夠自動執行全螢幕的 VMware Horizon View Client,所以請依照如下步驟建立「/etc/skel/.config/autostart」資料夾,並建立自動執行檔案「vmview-client.desktop」,以達成開機便自動開啟 VMware Horizon View Client 程序,並且將 VMware Horizon View 管理環境當中,具備 Broker 功能角色的 Connection Server 或 Security Server 的連接網址鍵入。# mkdir -p /etc/skel/.config/autostart
# vi /etc/skel/.config/autostart/vmview-client.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=vmware-view-client-vmware
Exec=vmware-view --fullsrceen --serverURL=https://sc.vdi.weithenn.org
Categories=Application;Network;
Name=VMware Horizon View Client
解決 Horizon View Client 初始化設定
雖然已經將 Live CD 設定成開機後自動執行,但是 VMware Horizon View Client 若是在新主機上第一次執行時,便會自動彈出「使用者授權協議 EULA(End User License Agreement)」視窗(需要按下 Agree 鈕才能繼續),同時因為我們是 Live CD 運作環境,所以只要 PC 主機重新開機(例如,每天上班時開機),便需要再次按下 Agree 鈕以同意 EULA 使用者授權協議,此舉同樣會造成使用者操作體驗降低。
圖 15、初次執行 VMware Horizon View Client 自動彈出 EULA 視窗
因此,為了提升使用者操作體驗,請依如下操作步驟修改「/usr/bin/vmware-view」執行檔內容,將執行檔內容中自動判斷是否初次執行的程式碼進行註解或刪除,只留下直接執行 View Client 的程式碼即可,以便在初次執行 VMware Horizon View Client 的主機,都能夠自動略過 EULA 使用者授權協議的檢查機制。
# cat /usr/bin/vmware-view
#!/bin/sh
LICENSE_ACCEPTED=~/.vmware-view-client.license-accepted
touch $LICENSE_ACCEPTED
exec vmware-view.bin "$@"
完成客製化動作後打包成 Live CD 映像檔
至此,客製化 Live CD 映像檔的動作已經完成。最後,請鍵入指令「apt-get autoclean」移除軟體套件的快取(減少 Live CD 映像檔空間),接著鍵入指令「exit」離開 UCK Console 操作模式,回到 UCK 互動視窗後請選擇「Continue building」項目,開始打包客製化的 VMware Horizon View Client with Ubuntu Live CD 映像檔(可以看到進度百分比)。
圖 16、開始打包客製化的 Live CD 映像檔
Live CD 打包作業完成後,會顯示此次客製化 Live CD 映像檔的大小(此實作為「462 MB」),並且產生的 Live CD 映像檔路徑為「/home/vdiuser/tmp/remaster-new-files/livecd.iso」。日後如果想要再次客製化 Live CD 映像檔,只要將「~/tmp」資料夾刪除,然後再次執行 UCK 打包程序即可。
圖 17、客製化 Live CD 映像檔打包完成
4、建立 Live CD 或 Live USB
將客製化 Live CD 映像檔複製出來後,便可以進行製作 Live CD 或 Live USB 的動作。因為有些過舊的 PC 主機並不支援 USB 裝置開機,此時便可以將剛才製作的客製化 Live CD 映像檔,透過燒錄軟體(例如,CDBurnerXP)燒錄成 CD/DVD 光碟片後,將 PC 主機 BIOS 設定為光碟機開機即可。若 PC 主機支援 USB 裝置開機,那麼便可以透過將客製化 Live CD 映像檔,製作成可開機運作的 Live USB。但是,此次的實作過程中,筆者用個人習慣的 UnetBootIn 軟體來製作 Live USB 時,雖然可以順利製作並且開機運行,但是登入後的 Ubuntu 的預設語系卻變成是「英文」語系。改為採用另一套軟體 Fedora LiveUSB Creator,以相同的客製化 Live CD 映像檔再次製作 Live USB 後,不但能順利登入 Ubuntu 作業系統,同時語系也很正常為「正體中文」。
製作 Live USB 的方式很簡單,下載並安裝 Fedora LiveUSB Creator 完成後,先將 USB 隨身碟插入電腦主機(此實作採用 4 GB USB Flash),然後在製作視窗中先按下「Browse」鈕,選擇剛才客製化的「livecd.iso」檔案(462 MB),然後按下「Create Live USB」鈕開始製作 Live USB,此次製作出來的 Live USB 大小也是佔用 462 MB。
圖 18、以客製化 Live CD 映像檔製作 Live USB
5、測試 Live CD 或 Live USB 運作流程
完成客製化 Live CD 及 Live USB 後,接著測試是否達成我們所客製化的需求,你可以將 Live CD 光碟片放入 PC 主機當中並設定光碟開機,或者將 Live USB 插入 PC 主機並設定 USB 開機。若手邊沒有實體主機可供測試,一樣可以利用剛才的 VM 虛擬主機進行測試,為確保模擬 Thin Client 執行環境,我們將此台 VM 虛擬主機的硬碟移除,並掛載客製化 Live CD 映像檔。
圖 19、以 VM 虛擬主機模擬 Thin Client 運作模式
此時我們所打造的客製化 VMware Horizon View Client with Ubuntu Live CD 環境,應該要達成下列需求:
- Live CD(Ubuntu 作業系統)登入後,「不」會彈出 Ubuntu 歡迎視窗畫面。
- Live CD 登入後,「自動執行 VMware Horizon View Client」並且為「全螢幕」顯示,同時不會出現 EULA 使用者授權協議視窗,且已經將 VMware Horizon View 管理環境當中,具備 Broker 功能角色的 Connection Server 或 Security Server 的連接「網址自動鍵入」。
圖 20、自動執行全螢幕 View Client 並鍵入 URL 連接網址
關閉 VMware Horizon View Client 後,檢查 Live CD/USB 運作環境是否如同我們所客製化的一樣:
- 確認更新管理員設定內容中,是否已經將自動檢查更新的設定值從每天變成「永不」。
- 開啟 Terminal 鍵入指令「date」,確認主機時區是否為客製化所設定的「CST」。
- 桌面上預設的「範例資料夾、安裝 Ubuntu 12.04.3 LTS」圖示,已經順利被移除。
- 桌面上有客製化的「VMware Horizon View Client 執行捷徑」,點選圖示二下後可順利開啟 VMware Horizon View Client,並且呈現全螢幕及自動鍵入 URL 連接網址。
- 確認客製化階段中,用不到的系統及軟體套件是否真的被移除(例如,LibreOffice...等)。
圖 21、檢查 Live CD/USB 運作環境是否如同我們所客製化的一樣