本文件說明如何將 VM 複製到其他專案。
事前準備
- 請參閱「 永久磁碟快照的最佳做法」,並為開機磁碟做好快照的準備。
-
如果尚未設定,請先設定驗證機制。「驗證」是指驗證身分,以便存取 Trusted Cloud by S3NS 服務和 API 的程序。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,以便對 Compute Engine 進行驗證:
-
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
必要的角色
如要取得在專案之間複製 VM 所需的權限,請要求管理員為您授予專案的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色包含在專案之間複製 VM 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要在專案之間複製 VM,必須具備下列權限:
-
compute.instances.create
專案 -
如要使用自訂映像檔建立 VM,請按照下列步驟操作:
compute.images.useReadOnly
在映像檔上 -
如要使用快照建立 VM,請按照下列步驟操作:
compute.snapshots.useReadOnly
在快照上 -
如要使用執行個體範本建立 VM,請按照下列步驟操作:
compute.instanceTemplates.useReadOnly
在執行個體範本上 -
如要將舊版網路指派給 VM:
compute.networks.use
專案上 -
如要為 VM 指定靜態 IP 位址:
compute.addresses.use
專案上的 -
如要在使用舊版網路時將外部 IP 位址指派給 VM,請按照下列步驟操作:
compute.networks.useExternalIp
專案 -
如要為 VM 指定子網路:
compute.subnetworks.use
在專案或所選子網路上 -
如要在使用虛擬私有雲網路時,將外部 IP 位址指派給 VM,請按照下列步驟操作:
compute.subnetworks.useExternalIp
在專案或所選子網路上 -
如要為 VM 設定 VM 執行個體中繼資料,請按照下列步驟操作:
compute.instances.setMetadata
在專案中 -
如要為 VM 設定標記:
compute.instances.setTags
在 VM 上 -
如要為 VM 設定標籤,請按照下列步驟操作:
compute.instances.setLabels
VM 上 -
如要設定 VM 使用的服務帳戶,請按照下列步驟操作:
compute.instances.setServiceAccount
在 VM 上 -
如要為 VM 建立新磁碟,請按照下列步驟操作:
compute.disks.create
專案 -
如要以唯讀或讀寫模式連接現有磁碟:
磁碟的
compute.disks.use
權限 -
如要以唯讀模式連接現有磁碟,請執行下列操作:
compute.disks.useReadOnly
磁碟上的權限
將 VM 複製到其他專案
在來源專案中,使用下列任一指令建立 VM 的開機磁碟快照:
區域開機磁碟
如果您的 VM 有區域開機磁碟,請使用下列指令建立快照:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --snapshot-type SNAPSHOT_TYPE \ --source-disk-zone SOURCE_DISK_ZONE
更改下列內容:
- SNAPSHOT_NAME:快照的名稱。
- SOURCE_DISK:您要用來建立快照的區域永久磁碟磁區名稱。
- SNAPSHOT_TYPE:快照類型,可選「標準」或「封存」。如果未指定快照類型,系統會建立 STANDARD 快照。選擇「封存」可以更低廉的成本保留資料。
- SOURCE_DISK_ZONE:您要用來建立快照的區域永久磁碟磁區。
區域性開機磁碟
如果您的 VM 有區域開機磁碟,請使用以下指令建立快照:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --source-disk-region=SOURCE_DISK_REGION \ --snapshot-type=SNAPSHOT_TYPE
更改下列內容:
- SNAPSHOT_NAME:快照的名稱。
- SOURCE_DISK:您要用來建立快照的地區永久磁碟磁區名稱。
- SOURCE_DISK_REGION:您要用來建立快照的地區永久磁碟磁區。
- SNAPSHOT_TYPE:快照類型,可選「標準」或「封存」。如果未指定快照類型,系統會建立 STANDARD 快照。
使用下列指令,從快照建立自訂映像檔:
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]
更改下列內容:
IMAGE_NAME
:新圖片的名稱SOURCE_SNAPSHOT
:您要用來建立映像檔的快照LOCATION
:選用:這個標記可讓您指定要儲存圖片的地區或多地區。例如,指定us
會將圖片儲存在us
多地區;指定us-central1
則會儲存在us-central1
地區。如果未選擇位置,Compute Engine 會將映像檔儲存在最靠近映像檔來源位置的多地區。
選用步驟:與在目的專案中建立 VM 的使用者分享自訂映像檔。如要進一步瞭解如何共用自訂圖片,請參閱「在機構中共用自訂圖片」。
在目的專案中,使用下列指令從自訂映像檔建立 VM:
gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ IMAGE_FLAG \ --subnet SUBNET
更改下列內容:
VM_NAME
:VM 名稱IMAGE_PROJECT
:包含圖片的 Trusted Cloud 專案 IDIMAGE_FLAG
:請指定下列任一值:- 使用
--image IMAGE_NAME
標記指定自訂映像檔。例如
--image my-debian-image-v2
。 - 如果您將自訂映像檔建立為自訂映像檔系列的一部分,請使用
--image-family IMAGE_FAMILY_NAME
旗標指定該自訂映像檔系列。這會根據自訂映像檔系列中未淘汰的最新 OS 映像檔和 OS 版本建立 VM。舉例來說,如果您指定
--image-family my-debian-family
,Compute Engine 會從自訂my-debian-family
映像檔系列中的最新 OS 映像檔建立 VM。
- 使用
SUBNET
:如果子網路和執行個體位於同一個專案中,請將SUBNET
替換為與執行個體位於同一地區的子網路名稱。如要在共用虛擬私有雲網路中指定子網路,請將
SUBNET
替換為以下格式的字串:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
更改下列內容:
HOST_PROJECT_ID
:共用虛擬私有雲主專案的專案 IDREGION
:子網路的區域SUBNET_NAME
:子網路名稱
共用虛擬私有雲網路的子網路區域也必須與包含執行個體的區域相符。