En esta página se describe cómo crear una implementación. Una implementación es una creación de instancias de un conjunto de recursos definidos en una configuración. Proporcionas una configuración válida en una solicitud para crear la implementación. Una implementación puede contener diferentes recursos, en diferentes servicios de Google Cloud. Cuando creas una implementación, Deployment Manager crea todos los recursos descritos en las APIs correspondientes de Google Cloud.
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos de esta guía, instala la herramienta de línea de comandos de gcloud.
- Si deseas usar los ejemplos de la API en esta guía, configura el acceso a la API.
- Crea una configuración.
Crea una implementación
Cuando creas una implementación, creas un recurso de implementación que contiene un conjunto de recursos. Cada recurso se define de manera explícita en una configuración que proporcionas en tu 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 adquiere esos recursos y se los puede administrar mediante ella. Si no deseas 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 qué políticas puedes usar cuando creas implementaciones, consulta Establecer la política de creación de recursos.
Si tu implementación se crea correctamente, puedes obtener una descripción de ella.
gcloud deployment-manager deployments describe my-first-deployment
API
En la API, realiza una solicitud insert()
con la configuración proporcionada en línea, 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 importas plantillas, también debes 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"
}
]
}
}
Establecer la política de creación de recursos
Cuando creas una implementación nueva, si un recurso que quieres crear ya existe en tu proyecto, la implementación lo adquiere.
En esos casos, Deployment Manager no crea un nuevo recurso.
Si no quieres adquirir un recurso existente, debes usar la política CREATE
para tu implementación.
Puedes usar las siguientes políticas para crear tus recursos:
CREATE_OR_ACQUIRE
: [Predeterminado] Deployment Manager adquiere recursos que existen en el proyecto o los crea si no existen. A fin de adquirir un recurso, Deployment Manager revisa tu configuración para las propiedades del recurso que intentas crear. Si hay un recurso existente con las mismas propiedades, Deployment Manager adquiere ese recurso como parte de tu implementación.Las propiedades que Deployment Manager revisa dependen del tipo de recurso que creas y pueden incluir lo siguiente:
- El
name
del recurso - El
type
del recurso - El
zone
oregion
del recurso, si corresponde
Las propiedades son parte del URL para la solicitud a la API
GET
del recurso. Si deseas ver qué propiedades usa Deployment Manager a fin de adquirir un recurso, consulta la documentación de la API para el métodoGET
del recurso. Por ejemplo, en las instancias de Compute Engine, la URL de la solicitud para el métodoinstances.get
incluyeresourceId
(name
en tu configuración),zone
yproject
.- El
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 el mismo criterio deCREATE_OR_ACQUIRE
.Usa la política
ACQUIRE
si ya tienes varios recursos en tu proyecto y quieres administrarlos juntos, como una sola implementación.En tu plantilla o configuración, debes proveer las propiedades que se requieren para esos recursos como si los estuvieras creando. Si alguno de los recursos de tu configuración no existe en el proyecto, la implementación fallará.
Enumerar las implementaciones
Consulta una lista de tus implementaciones en la consola de Google Cloud, la API o Google Cloud CLI.
Console
Ve a la página Implementaciones en la consola de Google Cloud.
gcloud
Con Google Cloud CLI, usa el subcomando deployments list
:
gcloud deployment-manager deployments list
API
En la API, realiza una solicitud GET
vacía en la colección de implementaciones:
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments
¿Qué sigue?
- Agrega etiquetas a tu implementación.
- Actualiza tu implementación.