cloud - tagxedo - Google Compute Engine: ¿Usar una instantánea de otro proyecto?
wordle create free (7)
Tengo dos proyectos en mi consola de desarrolladores. He tomado una "instantánea" de una de las máquinas virtuales en el proyecto-1. Quiero crear una nueva máquina virtual en el proyecto 2 utilizando la instantánea creada en el proyecto 1. En este momento la instantánea no se muestra en la opción. ¿Cómo puedo importar instantáneas de un proyecto a otro?
AFAIK, no es posible. Para lograr lo que ha descrito, el mejor curso de acción es utilizar este tutorial . Tiene unos pocos pasos para crear un disco en blanco, adjuntarlo a la máquina en cuestión, bloquear la partición de arranque y cargarlo en el almacenamiento en la nube. Una vez hecho esto, descárguelo localmente, cambie de proyecto y cárguelo en el otro proyecto. Entonces podrá seleccionar la máquina de la lista de Imágenes al hacer clic en New Instance
La respuesta publicada por @chrispomeroy funcionó para mí, pero pude simplificarla un poco, ya que necesito hacer esto más y más.
Digamos que tiene una imagen en el proyecto 1 y necesita crear una instancia utilizando esa imagen en el proyecto 2 .
gcloud config set project "project-2"
gcloud compute instances create <name-of-new-instance> /
--image <name-of-your-image-from-project-1> /
--image-project "project-1"
Esto elimina la necesidad de preocuparse por usar una URL
para cualquier cosa.
EDIT: Mi respuesta se parece mucho a la de él en este punto, pero la documentación para esto está aquí:
La solución provista por "chrispomeroy" funciona bien pero requiere iniciar gcloud con su cuenta de usuario personal de google (en lugar de la cuenta de servicio project2) primero (ya que es el que tiene permiso para acceder a ambos proyectos):
gcloud init (y eligió [2] Iniciar sesión con nuevas credenciales)
Entonces puede crear la VM en el proyecto 2 (desde una imagen base en el proyecto 1) con:
Las instancias de proceso de gcloud crean testimg --image --image-project (sin necesidad de URL) que probé hoy (noviembre de 2015) y funciona bien
No necesita una imagen o una VM virtual, y no tiene que interrumpir la VM de origen. Solo crea una instantánea en el proyecto fuente:
$ gcloud compute --project p1 disks snapshot the-snapshot src-disk --snapshot-names=the-snapshot
Created [https://www.googleapis.com/compute/v1/projects/p1/global/snapshots/the-snapshot].
Luego, cree un disco en el proyecto de destino con --source-snapshot
apuntando a la URL ''Creada'' que se --source-snapshot
arriba:
$ gcloud compute --project p2 disks create the-disk /
--source-snapshot https://www.googleapis.com/compute/v1/projects/p1/global/snapshots/the-snapshot
Este uso no se mostró en los docs gcloud
, lo encontré en la respuesta de @krishna praveen, pero su explicación es incorrecta; no es necesario eliminar ninguna instancia, o utilizar imágenes. Y esto funciona incluso si tanto el origen como el destino son discos de arranque:
$ gcloud compute --project p2 instances create the-vm --disk name=the-disk,boot=yes
Si, por algún motivo, necesita una imagen, aún puede restaurar una instantánea en un disco y usarla para crear la imagen sin una VM virtual. Esto es preferible si una máquina virtual no iniciada inicia automáticamente los servicios en el arranque, lo que podría interferir con otras máquinas virtuales en ejecución en la misma red del proyecto.
$ gcloud compute images create image-1 --source-disk=src-disk-image --source-disk-zone=zone1
Esta imagen ahora se puede usar desde otro proyecto (como se muestra en @jiminikiz arriba).
$ gcloud compute --project p2 instances create <name-of-new-instance> --image image-1 /
--image-project p1 --zone=zone
Puede crear una imagen desde el complemento en el Proyecto 1, luego crear una instancia a partir de esa imagen utilizando el Proyecto 2.
Supongo que tiene derechos de edición en ambos proyectos.
Su pregunta dice que tiene una instantánea y desea crear una instancia en el proyecto 2 a partir de la instantánea en el proyecto 1.
Si aún tiene el disco disponible que había tomado instantáneamente , asegúrese de que ya no esté adjunto a una instancia. Si aún está adjunto a la instancia, desmarque "eliminar disco de arranque al eliminar instancia" y elimine la instancia. Vaya a Imágenes y haga clic en crear imagen desde el disco, y cree una imagen desde este disco.
Si no tiene el disco disponible, pero solo la instantánea , cree una instancia y configure el disco de arranque como instantánea y seleccione su instantánea. Luego siga las instrucciones anteriores para crear una imagen eliminando la instancia primero.
Ahora tienes una imagen en el proyecto 1. Deberías verla en la lista debajo de las imágenes.
No estoy seguro de por qué, pero no verá la imagen listada en la consola en el proyecto 2, sin embargo, puede usar gcloud para crear una instancia en el proyecto 2 usando la imagen del proyecto 1. En el proyecto 1, haga clic en la imagen y haga clic en "ver REST" habrá una URL completa para la imagen, similar a esto:
https://www.googleapis.com/compute/v1/projects/cpomeroy-whitelist/global/images/ruby-image
Use gcloud para crear una instancia en el proyecto 2 usando la imagen en el proyecto 1:
gcloud config set project <project-id-of-project-2>
gcloud config list
(Debes verificar que estás en el proyecto 2)
gcloud compute instances create <name of instance> --image https://www.googleapis.com/compute/v1/projects/cpomeroy-whitelist/global/images/ruby-image
Obviamente su URL será diferente.
Acabo de probar esto y funciona. Dejame saber si necesitas mas ayuda.
Se pueden crear instancias en todo el proyecto usando imágenes. Ahora, si tiene una imagen en el Proyecto 1, también puede seleccionarla en el Proyecto 2.
Pero, a partir de hoy, no puede ver los discos en todo el proyecto. Si tiene que migrar una máquina virtual con discos adicionales asociados del Proyecto 1 al Proyecto 2, siga estos pasos.
Use la instantánea y cree el disco en el Proyecto 2 conectando la interfaz de comandos de
gcloud
. Conéctese al Proyecto 2, y luego ejecute:gcloud compute --project "GCPProject2" disks create "myserver-disk1" --size "50" --zone "us-east1-b" --source-snapshot https://www.googleapis.com/compute/v1/projects/GCPProject1/global/snapshots/snapshot-myserver-disk1 --description "DriveName" --type "pd-standard"
Arriba se creará el disco en Project2. Entonces necesita eliminar la instancia en Project1 conservando el disco de arranque. Luego, cree la imagen del disco
myserver-bootdisk
. Una vez que se haya creado la imagen, cambie al Proyecto 2 y luego cree el servidor desde la imagen, use el menú desplegable y seleccione la imagen del Proyecto 1.Agregue el disco adicional que ha creado a partir de la instantánea y cree la máquina virtual.
¿Que necesitas? Necesitas tener imagen. Para crear una imagen desde el disco, el disco se debe desconectar de cualquier instancia.
¿Cuáles son los pasos si solo tiene instancia en Project1:
Crea una instantánea desde la instancia en Project1.
Crear instancia de esta instantánea en Project1. Desmarque "Eliminar disco de arranque cuando se borra la instancia". Esta instancia solo se usa para
ahora y va a ser eliminadoEliminar la instancia que acaba de crear
Vaya al menú "Discos" y debe ver el disco desde la instancia.
Vaya al menú "Imágenes" -> "Crear una imagen". Aquí puedes crear la imagen. Si no tiene un disco separado, no tendrá ningún disco disponible en el menú desplegable.
Vaya al Proyecto 2 y cree una instancia utilizando la imagen personalizada que creó para el Proyecto 1. ¿Cómo? Disco de inicio -> cambiar -> Imágenes personalizadas -> Proyecto seleccionado 1-> Aquí puede ver su imagen personalizada