Consulter un fichier manifeste

Chaque déploiement possède un fichier manifeste correspondant. Un fichier manifeste est une propriété en lecture seule qui décrit toutes les ressources d'un déploiement et est automatiquement créé à chaque nouveau déploiement. Un fichier manifeste ne peut pas être modifié après sa création. Un fichier manifeste n'est pas identique à un fichier de configuration, mais il est créé en fonction.

Avant de commencer

Structure du fichier manifeste

Un fichier manifeste fournit trois vues d'un déploiement :

  • La configuration initiale
  • La configuration entièrement évaluée après l'expansion de l'ensemble des modèles et des importations
  • La structure du déploiement décrivant toutes les ressources du déploiement et les modèles associés de manière hiérarchique

Configuration d'origine

La configuration d'origine correspond à la configuration que vous avez fournie au déploiement, avant l'expansion des modèles. La configuration initiale est indiquée dans la propriété config :

config: |
  imports:
  - path: vm-template.jinja
  - path: network-template.jinja
  - path: firewall-template.jinja
  - path: compute-engine-template.jinja

  resources:
  - name: compute-engine-setup
    type: compute-engine-template.jinja

Configuration développée

La configuration développée est une description complète du déploiement, comprenant toutes les ressources et leurs propriétés. Il s'agit de l'état final de la configuration contenant toutes les ressources réelles à déployer.

La partie de la configuration développée est indiquée par la propriété expandedConfig dans le fichier manifeste :

expandedConfig: |
  resources:
  - name: datadisk-example-config-with-templates
    properties:
      sizeGb: 100
      type: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/diskTypes/pd-standard
      zone: us-central1-a
    type: compute.v1.disk
  - name: vm-example-config-with-templates
    properties:
      disks:
      - autoDelete: true
        boot: true
        deviceName: boot
        initializeParams:
          diskName: disk-example-config-with-templates
          sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619
        type: PERSISTENT
      - autoDelete: true
        deviceName: datadisk-example-config-with-templates
        source: $(ref.datadisk-example-config-with-templates.selfLink)
        type: PERSISTENT
      machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
      metadata:
        items:
        - key: startup-script
          value: |
            #!/bin/bash
            python -m SimpleHTTPServer 8080
      networkInterfaces:
      - accessConfigs:
        - name: External NAT
          type: ONE_TO_ONE_NAT
        network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
      zone: us-central1-a
    type: compute.v1.instance

Modèles importés

La propriété imports du fichier manifeste affiche le contenu des modèles importés pour cette configuration. Les informations relatives aux importations sont indiquées dans la section imports du fichier manifeste :

imports:
- content: |
    resources:
    - name: {{ env["name"] }}
      type: compute.v1.instance
      properties:
        disks:
        - autoDelete: true
          type: PERSISTENT
          boot: true
          deviceName: boot
          initializeParams:
            sourceImage:  https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619
        machineType: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/zones/{{ properties["zone"] }}/machineTypes/{{{ properties["machineType"] }}
        networkInterfaces:
        - network: $(ref.{{ properties["network"] }}.selfLink)
          accessConfigs:
          - name: External NAT
            type: ONE_TO_ONE_NAT
        zone: {{ properties["zone"] }}
        metadata:
          items:
          - key: startup-script
            value: |
              #!/bin/bash
              INSTANCE=$(curl http://metadata.google.internal/computeMetadata/v1/instance/hostname -H "Metadata-Flavor: Google")
              echo "<html><header><title>Hello from Deployment Manager!</title></header>
              <body><h2>Hello from $INSTANCE</h2>
              <p>Deployment Manager bids you good day!</p>
              </body>
              </html>" > index.html
              python -m SimpleHTTPServer 80
  name: vm-template.jinja
- content: |
    resources:
    - name: {{ env["name"] }}
      type: compute.v1.network
      properties:
        IPv4Range: 10.0.0.1/16
  name: network-template.jinja
- content: |
    resources:
    - name: {{ env["name"]}}
      type: compute.v1.firewall
      properties:
        network: $(ref.{{properties["network"] }}.selfLink)
        sourceRanges: ["0.0.0.0/0"]
        allowed:
        - IPProtocol: TCP
          ports: ["80"]
  name: firewall-template.jinja
- content: |


    resources:
    - name: the-first-vm
      type: vm-template.jinja
      properties:
        machineType: f1-micro
        zone: us-central1-f
        network: {{ NETWORK_NAME }}
    - name: the-second-vm
      type: vm-template.jinja
      properties:
        machineType: g1-small
        zone: us-central1-f
        network: {{ NETWORK_NAME }}
    - name: {{ NETWORK_NAME }}
      type: network-template.jinja
    - name: {{ NETWORK_NAME }}-firewall
      type: firewall-template.jinja
      properties:
        network: {{ NETWORK_NAME }}
  name: compute-engine-template.jinja

Plan de la configuration

Le plan du fichier manifeste est un aperçu du déploiement et de ses ressources. Il ne fournit pas les détails de chaque ressource, mais présente leur nom et leur type.

Le plan de la configuration vous permet de visualiser la structure du déploiement, ainsi que de consulter les propriétés de modèle définies lors du déploiement initial et d'autres informations relatives à votre configuration avant son expansion.

Le plan d'un fichier manifeste est indiqué dans la propriété layout :

layout: |
  resources:
  - name: compute-engine-setup
    resources:
      type: firewall-template.jinja
    type: compute-engine-template.jinja

Identifier un fichier manifeste

Un fichier manifeste peut être identifié grâce à son identifiant unique, au format manifest-TIMESTAMP. Par exemple :

manifest-1436393348324

Vous pouvez généralement obtenir l'ID du fichier manifeste en affichant des informations sur le déploiement correspondant ou en répertoriant les fichiers manifestes d'un déploiement.

gcloud

À l'aide de l'outil de ligne de commande gcloud, exécutez la sous-commande deployments describe :

gcloud deployment-manager deployments describe example-deployment

gcloud renvoie un résultat semblable à celui-ci :

id: '7428522736135856060'
manifest: https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments/example-deployment/manifests/manifest-1436393348324
name: example-deployment
resources:
NAME    TYPE      ID     STATE   ERRORS
...

API

Dans l'API, effectuez une requête GET en indiquant le nom du déploiement :

GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments/example-deployment-with-config

Un résultat semblable aux lignes suivantes doit s'afficher :

{
 "id": "5899501332770090517",
 "creationTimestamp": "2015-03-30T15:40:58.809-07:00",
 "name": "example-deployment-with-config",
 "fingerprint": "",
 "manifest": "https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-deployment-with-config/manifests/manifest-1427755258810-2b3498d9-530b-4f8e-b014-0342d3c9c66b",
 "state": "DEPLOYED"
}

Afficher un fichier manifeste

Vous pouvez afficher un fichier manifeste en envoyant une requête get() à une ressource "Manifest", ou via la console Google Cloud Platform ou gcloud.

Console

Pour afficher le fichier manifeste d'un déploiement dans la console Google Cloud Platform, procédez comme suit :

  1. Accédez à la page Déploiements de la console GCP.
  2. Recherchez le déploiement dans la liste, puis cliquez sur la flèche à côté de son nom pour consulter sa configuration.

    Capture d'écran de l'expansion d'un déploiement

gcloud

Dans l'outil de ligne de commande gcloud, exécutez la commande manifests describe pour afficher l'intégralité du fichier manifeste. La commande présente le fichier manifeste complet, ainsi que la structure du fichier manifeste :

gcloud deployment-manager manifests describe manifest-1436393348324 \
    --deployment example-config-with-templates

gcloud renvoie un résultat semblable à celui-ci :

 config: |
   imports: ["vm_template.jinja"]

resources: - name: vm-instance type: vm_template.jinja properties: zone: us-central1-a project: myproject creationTimestamp: '2015-03-30T15:40:58.815-07:00' evaluatedConfig: | resources: - name: datadisk-example-config-with-templates properties: sizeGb: 100 type: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/diskTypes/pd-standard zone: us-central1-a type: compute.v1.disk - name: vm-example-config-with-templates properties: disks: - autoDelete: true boot: true deviceName: boot initializeParams: diskName: disk-example-config-with-templates sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619 type: PERSISTENT - autoDelete: true deviceName: datadisk-example-config-with-templates source: $(ref.datadisk-example-config-with-templates.selfLink) type: PERSISTENT machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro metadata: items: - key: startup-script value: | #!/bin/bash python -m SimpleHTTPServer 8080 networkInterfaces: - accessConfigs: - name: External NAT type: ONE_TO_ONE_NAT network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default zone: us-central1-a type: compute.v1.instance id: '7174699452487462421' layout: | resources: - name: vm-instance type: vm_template.jinja properties: project: myproject zone: us-central1-a resources: - name: datadisk-example-config-with-templates type: compute.v1.disk - name: vm-example-config-with-templates type: compute.v1.instance name: manifest-1427755258810-2b3498d9-530b-4f8e-b014-0342d3c9c66b selfLink: https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-config-with-templates/manifests/manifest-1436393348324

API

Dans l'API, indiquez le nom du déploiement et le nom du fichier manifeste dans une requête GET :

 GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments/example-deployment/manifests/manifest-1436393348324

Un résultat semblable aux lignes suivantes doit s'afficher :

{
 "id": "7174699452487462421",
 "selfLink": "https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-config-with-templates/manifests/manifest-1436393348324",
 "creationTimestamp": "2015-03-30T15:40:58.815-07:00",
 "name": "manifest-1427755258810-2b3498d9-530b-4f8e-b014-0342d3c9c66b",
 "config": "imports: [\"vm_template.jinja\"]\n\nresources:\n- name: vm-instance\n  type: vm_template.jinja\n  properties:\n    zone: us-central1-a\n    project: myproject\n",
 "evaluatedConfig": "resources:\n- name: datadisk-example-config-with-templates\n  properties:\n    sizeGb: 100\n    type: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/diskTypes/pd-standard\n    zone: us-central1-a\n  type: compute.v1.disk\n- name: vm-example-config-with-templates\n  properties:\n    disks:\n    - autoDelete: true\n      boot: true\n      deviceName: boot\n      initializeParams:\n        diskName: disk-example-config-with-templates\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619\n      type: PERSISTENT\n    - autoDelete: true\n      deviceName: datadisk-example-config-with-templates\n      source: $(ref.datadisk-example-config-with-templates.selfLink)\n      type: PERSISTENT\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro\n    metadata:\n      items:\n      - key: startup-script\n        value: |\n          #!/bin/bash\n          python -m SimpleHTTPServer 8080\n    networkInterfaces:\n    - accessConfigs:\n      - name: External NAT\n        type: ONE_TO_ONE_NAT\n      network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n    zone: us-central1-a\n  type: compute.v1.instance\n",
 "layout": "resources:\n- name: vm-instance\n  properties:\n    project: myproject\n    zone: us-central1-a\n  resources:\n  - name: datadisk-example-config-with-templates\n    type: compute.v1.disk\n  - name: vm-example-config-with-templates\n    type: compute.v1.instance\n  type: vm_template.jinja\n"
}
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Cloud Deployment Manager