GCP 定制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.raw.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]
成功后会出现以下的讯息
照着上述的步骤安装完毕后,等待一段时间后即可以ssh 进到该台机器。如下图所示,该台虚拟机有运行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。