Crear un despliegue mediante gcloud o la API

En esta página se describe cómo crear una implementación. Una implementación es una instanciación de un conjunto de recursos definidos en una configuración. Proporcionas una configuración válida en la solicitud para crear el despliegue. Una implementación puede contener varios recursos de diferentes servicios. Google Cloud Cuando creas una implementación, Deployment Manager crea todos los recursos descritos en las APIs correspondientes. Google Cloud

Antes de empezar

Crear un despliegue

Cuando creas una implementación, creas un recurso de implementación que contiene una colección de recursos. Cada recurso se define explícitamente en una configuración que proporcione en su solicitud.

gcloud

Con Google Cloud CLI, usa el comando deployments create:

gcloud deployment-manager deployments create my-first-deployment \
    --config vm.yaml

La marca --config es una ruta relativa a tu archivo de configuración YAML.

De forma predeterminada, si tu configuración incluye recursos que ya están en tu proyecto, la implementación los adquiere y se pueden gestionar mediante la implementación. Si no quieres adquirir un recurso, debes usar la opción --create-policy, como en el siguiente comando gcloud beta:

gcloud beta deployment-manager deployments create my-first-deployment \
    --config vm.yaml --create-policy CREATE

Para obtener información sobre las políticas que puedes usar al crear implementaciones, consulta Definir la política para crear recursos.

Si la implementación se crea correctamente, puedes obtener una descripción de la implementación:

gcloud deployment-manager deployments describe my-first-deployment

API

En la API, haz una solicitud insert() con la configuración proporcionada de forma insertada en el cuerpo de la solicitud:

POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments

{
 "name": "example-config-with-templates",
 "target": {
  "config": {
   "content": "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
  }
 }
}

Si importa plantillas, también debe proporcionarlas como parte del cuerpo de la solicitud. Por ejemplo, la siguiente solicitud a la API tiene un target que importa una plantilla llamada vm_template.jinja:

POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments

{
 "name": "my-example-config-with-templates-2",
 "target": {
  "config": {
    "content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n  type: vm_template.jinja"
  },
  "imports": [
   {
    "content": "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
    "name": "vm_template.jinja"
   }
  ]
 }
}

Definir la política para crear recursos

Cuando creas un nuevo despliegue, si ya existe en tu proyecto un recurso que quieres crear, el despliegue lo adquiere. En estos casos, Deployment Manager no crea un nuevo recurso. Si no quieres adquirir un recurso, debes usar la política CREATE en tu implementación.

Puedes usar las siguientes políticas para crear tus recursos:

  • CREATE_OR_ACQUIRE: [Predeterminado] Deployment Manager adquiere recursos que ya existen en el proyecto o crea recursos si no existen. Para adquirir un recurso, Deployment Manager comprueba en tu configuración las propiedades del recurso que quieres crear. Si ya existe un recurso con las mismas propiedades, Deployment Manager lo adquiere como parte de su implementación.

    Las propiedades que comprueba Deployment Manager dependen del tipo de recurso que estés creando y pueden incluir lo siguiente:

    • El name del recurso
    • El type del recurso
    • El zone o el region del recurso, si procede

    Las propiedades forman parte de la URL de la solicitud a la API GET del recurso. Para ver qué propiedades usa Deployment Manager para obtener un recurso, consulta la documentación de la API del método GET del recurso. Por ejemplo, en el caso de las instancias de Compute Engine, la URL de solicitud del método instances.get incluye resourceId (name en tu configuración), zone y project.

  • CREATE - Deployment Manager crea recursos que no existen. Si alguno de los recursos de tu configuración ya existe en el proyecto, la implementación fallará.

  • ACQUIRE: Deployment Manager adquiere recursos que ya existen con los mismos criterios que CREATE_OR_ACQUIRE.

    Usa la política ACQUIRE si ya tienes varios recursos en tu proyecto y quieres gestionarlos juntos como una sola implementación.

    En tu plantilla o configuración, debes proporcionar las propiedades obligatorias de estos recursos como si los estuvieras creando. Si alguno de los recursos de tu configuración no existe en el proyecto, la implementación fallará.

Mostrar tus despliegues

Consulta una lista de tus implementaciones en la Google Cloud console, la API o Google Cloud CLI.

Consola

Ve a la página Deployments (Despliegues) de la Google Cloud consola.

gcloud

Con Google Cloud CLI, usa el subcomando deployments list:

gcloud deployment-manager deployments list

API

En la API, haz una solicitud GET vacía a la colección Deployments:

GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments

Siguientes pasos