Lors du développement d'une application, vous aurez très probablement besoin d'architectures complexes. Pour simplifier le dépannage et la réplication de votre déploiement, nous vous recommandons de diviser votre configuration en modèles.
Un modèle est un fichier distinct qui définit un ensemble de ressources. Vous pouvez réutiliser des modèles pour différents déploiements, ce qui permet de garantir la cohérence des déploiements complexes.
Vous pouvez utiliser Python ou Jinja2 afin de créer des modèles pour Deployment Manager. Nous vous recommandons d'utiliser des modèles Python, car Python offre une plus grande flexibilité et davantage de fonctionnalités lors de l'évolution de votre application.
Modèles Python
Si vous choisissez d'écrire des modèles en Python, ceux-ci doivent répondre à ces exigences :
Le modèle doit être écrit en Python 3.x.
Le modèle doit définir une méthode appelée
GenerateConfig(context)
ougenerate_config(context)
. Si vous utilisez les deux noms de méthode dans le même modèle, la méthodegenerate_config()
prévaut.L'objet
context
contient des métadonnées relatives au déploiement et à votre environnement, telles que le nom du déploiement, le projet en cours, etc. Vous utiliserez ces variables spécifiques au déploiement dans les étapes ultérieures.La méthode doit renvoyer un dictionnaire Python.
Examiner des exemples de modèles
Dans le dépôt des exemples, ouvrez vm-template.py
:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano vm-template.py # use your preferred text editor
Ce modèle définit la première machine virtuelle (VM) à partir des exemples précédents :
Ouvrez le deuxième modèle, vm-template-2.py
, qui définit la deuxième VM :
Dans les deux modèles, remplacez MY_PROJECT par l'ID de votre projet.
Importer des modèles
Après avoir créé des modèles, vous devez les importer dans votre configuration. Ouvrez le nouveau fichier two-vms.yaml
:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano two-vms.yaml # use your preferred text editor
Ce fichier de configuration comporte une nouvelle section imports
qui appelle les deux modèles de VM, vm-template.py
et vm-template-2.py
:
Remarque sur les noms de ressources
Lorsque vous utilisez un modèle, vos noms de ressources sont définis à l'aide du champ name
fourni dans le modèle, et non du nom du fichier de configuration.
Par exemple, dans ce cas, les instances de machine virtuelle sont créées à l'aide des noms fournis dans les modèles (the-first-vm
et the-second-vm
). Les valeurs vm-1
et vm-2
, définies dans la configuration, sont utilisées pour nommer une instanciation du modèle, mais ne sont pas des noms de ressources.
Enregistrer et déployer votre configuration
Pour déployer la configuration, exécutez la commande suivante :
gcloud deployment-manager deployments create deployment-with-templates --config two-vms.yaml
Pour afficher votre déploiement, exécutez la commande suivante :
gcloud deployment-manager deployments describe deployment-with-templates
Utiliser plusieurs modèles en prévision de changements ultérieurs
À l'étape suivante, vous combinez des modèles de sorte que votre configuration n'appelle qu'un seul modèle pour déployer toutes vos ressources.
Supprimer le déploiement
Avant de continuer, nous vous recommandons de supprimer le déploiement afin d'éviter les frais. Ce déploiement n'est pas nécessaire pour l'étape suivante. Exécutez la commande suivante pour supprimer le déploiement :
gcloud deployment-manager deployments delete deployment-with-templates