[手把手教學] Custom image 客製化映像檔

建立 GCP 的虛擬機時,可以透過 GCP 本身提供的映像檔一鍵開啟,或是透過自製的映像檔來建立,而本篇教學將由小編帶領各位製作客製化的映像檔。這裡取樣的公開映像檔為『CentOS-6-x86_64-GenericCloud.raw.tar.gz』並使用 MacOS 來進行測試,此教學適用於以下的映像檔版本。

  • Debian 7 and Debian 8
  • RHEL/CentOS 6
  • openSUSE 13.x
  • Ubuntu 12.04, 14.04, and 16.04

準備欲上傳的映像

根據 GCP 官方文件的要求,映像檔的檔案名稱必須為 disk.raw。所以需要解壓縮該檔案,重新命名裡面的 .raw 檔之後重新壓縮。MacOS 的用戶需要安裝 gnu-tar 並使用 gtar,而 Linux 用戶使用 tar。

解壓縮 CentOS-6-x86_64-GenericCloud.raw.tar.gz,需要等待一段時間。

gtar zxvf CentOS-6-x86_64-GenericCloud.raw.tar.gz

重新命名該檔案成 disk.raw重新命名該檔案成 disk.raw

mv CentOS-6-x86_64-GenericCloud-1805.raw disk.raw

重新壓縮該檔案,名稱不限,壓縮時也需要等待數分鐘。

gtar zcvf disk.raw.tar.gz disk.raw

上傳映像檔至 GCS bucket

創立 GCS bukcet

gsutil mb gs://[BUCKET_NAME]

上傳 disk.raw 至 bucket

gsutil cp disk.tar.gz gs://[BUCKET_NAME]

生成 GCE 映像檔並安裝 driver

匯入 GCE 映像檔,[IMAGE_NAME] 為映像檔名稱

gcloud compute images create [IMAGE_NAME] --source-uri gs://[BUCKET_NAME]/disk.raw.tar.gz

安裝 GCE 映像檔的相關 driver,[IMAGE_NAME]為最終的映像檔名稱、[SOURCE_IMAGE] 為上述步驟的映像檔名稱、[OS]為作業系統版本,需要為以下的選項:centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, rhel-6-byol, rhel-7-byol, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012r2, windows-2016。此步驟需要執行 30分鐘左右。

gcloud compute images import [IMAGE_NAME] \
--source-image [SOURCE_IMAGE] \
--os [OS]

成功後會出現以下的訊息

需要注意的是,匯入映像檔之後必須依照上述步驟安裝 GCP 的 network daemon,如下圖所示,該台虛擬機有運行 Google network daemon。

使用客製映像檔創建虛擬機並測試網路

創建一台虛擬機,[INSTANCE_NAME] 為虛擬機的名稱

gcloud compute instances create [INSTANCE_NAME] --zone=us-central1-c --machine-type=f1-micro

創建完畢後試著 ssh 至該台虛擬機。

gcloud compute ssh [INSTANCE_NAME]

建立一個暫時的 HTTP server

python -m SimpleHTTPServer 8080

SSH 至另外一台 VM 並下 curl 指令測試,[INTERNAL_IP]是指使用客製映像檔的虛擬機內部 IP

curl [INTERNAL_IP]:8080

成功連通會出現以下訊息,表示有成功連到剛剛暫時架設的 HTTP server。


連絡「GCP 專門家」