Creazione di una soluzione basata su Deployment Manager

Quando crei soluzioni del catalogo dei servizi per gli utenti della tua organizzazione, puoi creare una soluzione Deployment Manager (DM), che gli utenti avviano utilizzando un modello di Deployment Manager. Dopo aver creato una soluzione, puoi condividerla con i tuoi utenti aggiungendola ai cataloghi.

Prima di iniziare

  • Devi disporre del ruolo Amministratore del catalogo (roles/cloudprivatecatalogproducer.admin) OPPURE Gestore del catalogo (roles/cloudprivatecatalogproducer.manager) per l' Google Cloud organizzazione associata al Google Cloud progetto in cui è abilitato il catalogo dei servizi. Se non disponi di questo ruolo, contatta l'Amministratore organizzazione per richiedere l'accesso.

  • Abilita le API Cloud Deployment Manager e Compute Engine.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore di Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilita le API

Preparazione del modello di deployment

Per creare una soluzione Deployment Manager nel catalogo dei servizi, devi prima preparare un file ZIP del modello di Deployment Manager da caricare, che deve contenere i seguenti file:

  • Un file di modello Jinja che termina con l'estensione .jinja o un file di modello Python che termina con l'estensione .py.
  • Un file di schema che termina con l'estensione .jinja.schema per un modello Jinja o l'estensione py.schema per un modello Python.

Il nome del file ZIP deve corrispondere ai nomi dei file di schema e Jinja o Python. Ad esempio, se il file ZIP si chiama android-dev-environment.zip, il file di schema Jinja all'interno del file ZIP deve essere denominato android-dev-environment.jinja.schema e il modello Jinja deve essere denominato android-dev-environment.jinja.

Il seguente esempio di codice illustra un file di schema per creare un modulo di deployment:



info:
  title: Single Google Compute Engine Machine
  author: Google Inc.
  description: Creates a virtual machine based on zone and machine type selection.

required:
  - machinetype
  - zone

properties:
  machinetype:
    title: Machine type
    type: string
    enum:
      - n2-standard-2
      - n2-standard-4
      - n2-standard-8
      - n2-highmem-2
      - n2-highmem-4
      - n2-highmem-8
      - n2-highcpu-2
      - n2-highcpu-4
      - n2-highcpu-8
  zone:
    title: Zone
    type: string
    enum:
      - us-central1-a
      - us-central1-c
      - us-east1-b
      - us-east1-c
      - us-west1-a
      - us-west1-b
      - us-west1-c

Il seguente esempio di codice illustra un file Jinja per creare una VM permanente:



# Creates a Persistent VM
resources:
- type: compute.v1.instance
  name: vm-{{ env["deployment"] }}
  properties:
    zone: {{ properties["zone"] }}
    # Note the machineType definition at the end. n2-custom-4-5120 specifies n2 machine family with 4 CPUs and 5GB (5120 MB) of RAM. For custom machine types, refer to https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type
    machineType: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/zones/{{ properties["zone"] }}/machineTypes/{{ properties["machinetype"] }}
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        diskName: disk-{{ env["deployment"] }}
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-9
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/global/networks/default
      # Access Config required to give the instance a public IP address
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT

Creazione della soluzione nel catalogo dei servizi

Per creare una soluzione basata su un modello di Deployment Manager:

  1. Vai alla pagina Soluzioni di amministrazione del catalogo dei servizi nella Google Cloud console.
    Vai alla pagina Soluzioni

  2. Fai clic su Seleziona per scegliere il Google Cloud progetto.

  3. Fai clic su CREA SOLUZIONE. Nell'elenco a discesa, seleziona Crea una soluzione DM.

  4. Inserisci un nome, una descrizione e uno slogan per la soluzione. Lo slogan è una breve descrizione di una soluzione che gli utenti vedono mentre sfogliano il catalogo dei servizi.

  5. Carica un file ZIP contenente i file per una configurazione di deployment configuration.

  6. (Facoltativo) Carica un'icona per la soluzione. Le dimensioni consigliate per un'icona sono 80 x 80 pixel.

  7. (Facoltativo) Inserisci un link per la raccolta fondi e i dati di contatto del creator.

  8. (Facoltativo) Aggiungi un link alla documentazione della soluzione.

  9. Fai clic su CREA.

La seguente schermata illustra la creazione di una soluzione basata su Deployment Manager:

Crea una soluzione basata su modello Cloud Deployment Manager

Passaggi successivi

  • Assegna la soluzione a un catalogo in modo che gli utenti della tua organizzazione possano accedere alla soluzione ed eseguirne il deployment.