Cloud Image 是已經預先裝好作業系統的磁碟映像,常常被用來部署作業系統至雲端伺服器。在這篇文章中,我們要用它在虛擬機器中安裝作業系統。
這次我們要在 QEMU-KVM 中裝 Ubuntu 20.04。
為了在雲端部署的方便,一些 Cloud Image 像是 Ubuntu Cloud Image 會在初始化時執行 cloud-init。如果不設定,只照預設值的話,就算知道帳號還是無法登入。所以這篇文章主要要講的是如何手動設定 cloud-init。
1. 下載 Ubuntu Cloud Images到 Ubuntu Cloud Images 網站,點選 focal/ > current/(也就是這裡),下載最新的 Ubuntu 20.04 image。
Ubuntu 的開發代號
Ubuntu 每個版本都有一個代號,由形容詞加上動物名稱所組成,而且這兩個詞的第一個字母都相同。下面是最近長期支援版本(LTS)的開發代號:
20.04:Focal Fossa22.04:Jammy Jellyfish24.04:Noble Numbat可以發現剛剛點進去的 focal 是 20.04 代號的形容詞部分。如果要下載其他版本可以點選那個版本代號的形容詞的資料夾。資料夾旁邊的說明也寫的很清楚是哪個版本,所以不會很難找。
台灣的 Mirror
如同 Ubuntu 安裝程式一樣,Ubuntu Cloud Images 也有 mirror,在台灣的 mirror 下載通常會比較快。
mirror 列表:
國家高速網路與計算中心要下載的是這個檔名相對比較短的檔案:focal-server-cloudimg-amd64.img。
如果不是用 QEMU 的話,需要選擇適用自己虛擬機器軟體的格式。
2. 製作供 cloud-init 使用的映像檔我們要用 data source NoCloud 來設定 cloud-init。
要使用這個方式的話,需要一個 ISO 檔,它的 volume label(掛載之後顯示的名稱)要是 cidata 或 CIDATA,裡面要包含 2 個檔案:
meta-datauser-data我們可以用 cloud-localds 指令製作出符合格式的映像檔,當然也可以自己做。
使用 cloud-localdscloud-localds 指令包含在 cloud-utils 套件中,所以要先安裝 cloud-utils:
Terminal window# Arch Linuxsudo pacman -S cloud-utils# Ubuntusudo apt-get install cloud-image-utils然後要新增一個檔案記錄要寫入的設定,為了方便,就命名為 user-data.txt 吧。
如果只是要設定密碼,最簡單的設定是:
#cloud-configpassword: < 你的密碼 >chpasswd: { expire: False }ssh_pwauth: True這樣的話,登入帳號是 ubuntu,密碼是你設定的密碼。
如果想知道