2015-04-23

Ubuntu 用 uvtool 快速建立 Ubuntu 虛擬機器

阿舍在看 Container 的東西的時候發現,Ubuntu 從 14.04 LTS 開始,有提供一個叫做「uvtool」的虛擬機器簡易管理工具,可以利用 Ubuntu 提供的 Ubuntu Cloud Image 和 KVM 來快速建立虛擬機器,阿舍想瞭解一下,這種方式有沒有比用 LXC Container 的方式來的快,所以,就來試了一下哩 !



這個 uvtool 工具並不是預載的程式,因此,需要先透過下面第一行的指令來安裝,而安裝完成之後,在開始建立虛擬機器之前,要先把要使用的 Ubuntu Cloud Image 的檔案給下載下來,之後,操作方式有二種,第一種是用下面第三行的指令來把所有指定架構 (以 64 位元為例) 的 Cloud Image 都下載下來,而第二種,則是用下面第三指令的方式只下載指定版本的 Image 檔 (以只下載 14.04 LTS 版 64 位元為例)。

$ sudo apt-get install uvtool

$ sudo uvt-simplestreams-libvirt sync arch=amd64

$ sudo uvt-simplestreams-libvirt sync release=trusty arch=amd64

由於 Ubuntu Cloud Image 會持續更新,因此,之後如果要更新已下載的 Ubuntu Cloud Image 檔案的話,只要再執行上面第二或第三行相同的指令,就會執行同步的動作,而如果要查看已經下載過的 Ubuntu Cloud Image 檔案有那些,則是可以使用下面這一行指令來檢視,原則上,阿舍是建議至少要用上面第三行的指令下載最新的  LTS 版本會比較方便哩 !

$ sudo uvt-simplestreams-libvirt query

接下來,在開始建立虛擬機器之前,需要先建立 Host 的金錀,來讓新建立的虛擬機器以金鑰的方式來使用 SSH 連線登入,因此,請執行下面這一行指令來產生金鑰,這個 ssh-keygen 指令執行後,會陸續出現好幾個問題,如果你不瞭解這些問題的用途的話,就請一直按 Enter 鍵來完成動作。

$ ssh-keygen

上面的動作都完成之後,接著,就可以來建立虛擬機器了,最快的方式就是用下面第一行的方式,直接給要建立的虛擬機器的名稱後, uvtool 就會用最新版的 LTS 版的 Ubuntu Cloud Image 來建立一個 512MB RAM、8G 硬碟空間和單核 CPU 的虛擬機器了,但是,如果沒有事先下載過的話,就會出現錯誤哩 ! 所以,要指定 Ubuntu 版本的話,就要用下面第二行的指令囉 ! 而如果想要建立一個自訂規格的虛擬機器的話,則是要用下面第三行的方式來指定囉 !

# 建立一個名稱為 vm01 的虛擬機器
$ sudo uvt-kvm create vm01

# 建立一個 Ubuntu 12.10 的虛擬機器
$ sudo uvt-kvm create vm01 release=quantal arch=amd64

# 建立一個 1G RAM/ 4G HD / 2 CPU Cores,名稱為 vm01 的虛擬機器
$ sudo uvt-kvm create vm01 --memory 1024 --disk 4 --cpu 2

建立虛擬機器的指令順利執行完成之後就會自動啟動在背景了,這個時候,要先用下第一行指令來查一下新建立的虛擬機器的 IP 位址,然後,就可以利用下面第二行指令以取得的 IP 位址用 SSH 和金鑰登入到新建立的虛擬機器 (Ubuntu Cloud Image 的預設使用者帳號是「ubuntu」),只有第一次使用 SSH 登入時要使用到 -i 選項來指定金鑰檔,登入成功之後,就不需要了。

$ sudo uvt-kvm ip vm01

$ ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.88

$ ssh ubuntu@192.168.1.88

登入之後,就可以像一般在操作虛擬機器或是 Ubuntu Server 一樣了,然後,在用完這個虛擬機器之後,不需要關閉這個虛擬機器就可以直接用下面這一行指令來把這個新建的虛擬機器給刪除,而如果是關機之後要再啟動的話,就請用下面第二行的指令來啟動囉 !

$ sudo uvt-kvm destroy vm01

$ sudo virsh start vm01

阿舍覺得用這個 uvtool 來建立虛擬機器還滿方便的,除了一開始要做一些安裝和下載的動作,有點小煩人之外,之後,在建立虛擬機器的速度還滿快的和方便,阿舍用起來有點像阿舍之前介紹過的抛棄式 Container 的感覺,如果你不熟 Conatiner 或想要很快的弄一個 Ubuntu 的環境來測試的話,阿舍就建議可以試看看這個 uvtool,應該會提高一些效率,同時,也會比較方便來做自動化哩 ! ...

Ubuntu Cloud Image 會保持更新
最後,阿舍要提一下的有二點,第一項是,在使用 uvtool 建立或啟動虛擬機器前,請先關閉所有執行中的 VirtualBox 的虛擬機器,不然,就會出現錯誤,而第二項是,阿舍在第一次用 uvtool 建立虛擬機器時有遇到「libvirt: internal error: Network 'default' is not active.」的錯誤訊息,阿舍是下面這一行指令來排除的哩 !

$ sudo virsh net-start default





推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁