Cette page vous explique comment créer un déploiement. Il s'agit d'une instanciation d'un ensemble de ressources définies dans une configuration. Vous devez fournir une configuration valide dans la requête pour créer le déploiement. Celui-ci peut contenir un certain nombre de ressources de divers services Google Cloud. Lorsque vous créez un déploiement, Deployment Manager génère toutes les ressources décrites dans les API Google Cloud correspondantes.
Avant de commencer
- Si vous voulez vous servir des exemples de ligne de commande de ce guide, installez l'outil de ligne de commande gcloud.
- Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
- Créez une configuration.
Créer un déploiement
Lorsque vous créez un déploiement, vous générez une ressource de déploiement qui contient un ensemble de ressources. Chaque ressource est explicitement définie dans une configuration que vous fournissez dans votre requête.
gcloud
Avec Google Cloud CLI, utilisez la commande deployments create
:
gcloud deployment-manager deployments create my-first-deployment \
--config vm.yaml
L'indicateur --config
correspond à un chemin relatif vers votre fichier de configuration YAML.
Par défaut, si des ressources de votre configuration existent déjà dans votre projet, elles sont acquises par le déploiement et peuvent être gérées à l'aide de celui-ci. Si vous ne souhaitez pas acquérir de ressource, vous devez utiliser l'option --create-policy
, comme dans la commande gcloud beta
suivante :
gcloud beta deployment-manager deployments create my-first-deployment \
--config vm.yaml --create-policy CREATE
Pour en savoir plus sur les règles que vous pouvez utiliser lors de la création de déploiements, consultez la section Définir la règle pour créer des ressources.
Si le déploiement a bien été créé, vous pouvez en obtenir la description :
gcloud deployment-manager deployments describe my-first-deployment
API
Dans l'API, exécutez une requête insert()
en intégrant la configuration fournie dans le corps :
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 vous importez des modèles, vous devez également les fournir dans le corps de la requête. Par exemple, la requête API suivante comporte un target
qui importe un modèle, nommé 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"
}
]
}
}
Définir la règle pour créer des ressources
Si une ressource que vous souhaitez créer lors du déploiement existe déjà dans votre projet, elle est acquise par le déploiement.
Dans ce cas, Deployment Manager ne crée pas de ressource.
Si vous ne souhaitez pas acquérir une ressource existante, vous devez utiliser la règle CREATE
dans votre déploiement.
Vous pouvez utiliser les règles suivantes pour créer vos ressources :
CREATE_OR_ACQUIRE
[Par défaut] : Deployment Manager acquiert des ressources qui existent dans le projet ou en crée si ce n'est pas le cas. Pour acquérir une ressource, Deployment Manager vérifie les propriétés de la ressource que vous essayez de créer dans votre configuration. Si une ressource existante possède les mêmes propriétés, Deployment Manager acquiert cette ressource dans le cadre de votre déploiement.Les propriétés vérifiées par Deployment Manager varient en fonction du type de ressource que vous créez et peuvent inclure les informations suivantes :
- Le
name
de la ressource - Le
type
de la ressource - La
zone
ou laregion
de la ressource, le cas échéant
Les propriétés font partie de l'URL de la requête API
GET
pour la ressource. Pour afficher les propriétés que Deployment Manager utilise pour acquérir une ressource, consultez la documentation de l'API sur la méthodeGET
de la ressource. Par exemple, pour les instances Compute Engine, l'URL de la requête pour la méthodeinstances.get
inclutresourceId
(name
dans votre configuration),zone
etproject
.- Le
CREATE
: Deployment Manager crée des ressources qui n'existent pas. Si l'une des ressources de votre configuration existe déjà dans le projet, le déploiement échoue.ACQUIRE
: Deployment Manager acquiert les ressources existantes à l'aide des mêmes critères queCREATE_OR_ACQUIRE
.Utilisez la règle
ACQUIRE
si vous possédez déjà un certain nombre de ressources dans votre projet et que vous souhaitez les gérer ensemble en tant que déploiement unique.Dans votre modèle ou votre configuration, vous devez indiquer les propriétés requises pour ces ressources comme si vous les créiez. Si l'une des ressources de votre configuration n'existe pas dans le projet, le déploiement échoue.
Répertorier vos déploiements
Affichez la liste de vos déploiements dans la console Google Cloud, l'API ou la Google Cloud CLI.
Console
Accédez à la page Déploiements de la console Google Cloud.
gcloud
Avec la Google Cloud CLI, utilisez la sous-commande deployments list
:
gcloud deployment-manager deployments list
API
Dans l'API, envoyez une requête GET
vide à l'ensemble des déploiements :
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments