Automazione dei deployment SAP su Google Cloud con Deployment Manager

Puoi automatizzare il deployment dell'infrastruttura Google Cloud utilizzando Cloud Deployment Manager, un servizio che automatizza la creazione e la gestione delle risorse Google Cloud.

Per determinate soluzioni SAP e database di supporto, come SAP HANA, Google Cloud fornisce modelli di configurazione di Cloud Deployment Manager predefiniti che puoi utilizzare per eseguire il deployment dell'infrastruttura di Google Cloud che soddisfa i requisiti di supportobilità e le best practice di SAP.

Soluzioni SAP supportate

Google Cloud fornisce configurazioni di Cloud Deployment Manager per le seguenti soluzioni SAP:

Di cosa viene eseguito il deployment dei modelli

Tutti i modelli di Deployment Manager forniti da Google Cloud per i deployment SAP configurano o eseguono il deployment dei seguenti elementi:

  • Una o più macchine virtuali (VM) Compute Engine
  • Un'immagine del sistema operativo da te specificata
  • Uno o più dischi permanenti
  • Facoltativamente, un account di servizio Identity and Access Management (IAM) specificato per l'utilizzo da parte delle VM
  • Le API Google Cloud richieste dal deployment SAP
  • Facoltativamente, tag di rete per ogni istanza VM
  • Facoltativamente, un indirizzo IP pubblico per ogni istanza VM
  • L'ultima versione di Google Cloud's Agent for SAP

Per SAP HANA, i modelli di Deployment Manager eseguono anche il deployment:

  • Volumi di archiviazione per /hana/shared e /hanabackup
  • Facoltativamente, lo stesso sistema SAP HANA
  • Per i sistemi a scalabilità orizzontale di SAP HANA con failover automatico dell'host, host master, fino a 15 host worker e fino a 3 host in standby
  • Per i sistemi di scale up SAP HANA, un cluster Linux ad alta disponibilità

Per SAP NetWeaver, i modelli di Deployment Manager eseguono anche il deployment di:

  • Volumi di archiviazione per /sapmnt, /usr/sap e un volume di swap

File di Deployment Manager per ogni deployment SAP

Ogni configurazione predefinita di Deployment Manager per SAP contiene il seguente insieme di file:

  • Un file di configurazione YAML, template.yaml
  • Un file modello Python, deployment-type.py, ad esempio sap_hana.py, sap_hana_scaleout.py, o sap_nw.py.
  • Un file di schema Python, deployment-type.py.schema, come sap_hana.py.schema, sap_hana_scaleout.py.schema, o sap_nw.py.schema.
  • Almeno uno script shell, startup.sh o startup.ps1

Devi specificare le proprietà delle risorse Google Cloud nel file di configurazione template.yaml.

Completamento del file di configurazione template.yaml in corso...

I file di configurazione template.yaml forniti per i deployment SAP sono conformi agli standard definiti da Deployment Manager.

I file di configurazione forniti per SAP includono la definizione della risorsa principale, seguita da una sezione di commenti che contiene proprietà avanzate meno utilizzate. L'esempio seguente è un estratto dal file template.yaml per SAP HANA:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: [VM_NAME]
    instanceType: [MACHINE_TYPE]
    zone: [ZONE]
    subnetwork: [SUBNETWORK]
    linuxImage: family/[IMAGE_FAMILY]
    linuxImageProject: [IMAGE_PROJECT]
    sap_hana_deployment_bucket: [MEDIA_BUCKET]
    sap_hana_sid: [SID]
    sap_hana_instance_number: [INSTANCE_NUMBER]
    sap_hana_sidadm_password: [PASSWORD]
    sap_hana_system_password: [PASSWORD]
    sap_hana_scaleout_nodes: [NUMBER_OF_WORKER_NODES]
    #
    # --- Advanced Options ---
    # The following advanced options are not usually needed. To use an advanced option, remove
    # the comment indicator, #, before the parameter name and specify an appropriate value.
    #
    # networkTag: [TAG]
    #    Adds network tags to your instance. This is useful if you do routing or define
    #    firewall rules by tags. By default, no tags are added to your VM. Multiple tags
    #    can be assigned by separating them with commas
    #
     ...

Per utilizzare le proprietà avanzate, rimuovi il carattere del commento, #, e specifica un valore per la proprietà.

Per ulteriori informazioni sui file di configurazione, consulta Concetti fondamentali di Deployment Manager.

Controllo delle versioni dei modelli

Puoi controllare quale versione del modello Deployment Manager utilizzata dai deployment SAP specificando un timestamp della versione nella proprietà type nel file di configurazione YAML.

Per impostazione predefinita, quando scarichi un nuovo file di configurazione template.yaml, la proprietà type specifica latest come versione, il che significa che i tuoi deployment utilizzano sempre la versione più recente disponibile dei modelli di Deployment Manager.

Nei commenti che seguono la proprietà type è presente una specifica alternativa della proprietà type che include il timestamp dell'ultima versione disponibile al momento del download del file template.yaml. Ad esempio:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
  ...

Se vuoi che tutti i tuoi deployment utilizzino la stessa versione del modello, sostituisci la specifica della proprietà type che include latest con la specifica della proprietà type che include il timestamp. Ad esempio:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  properties:
  ...

Quando viene specificato un timestamp, tutti i deployment utilizzano la versione del modello di Deployment Manager corrispondente al timestamp specificato.

Puoi vedere quale versione del modello è stata utilizzata da Deployment Manager per un deployment SAP nella console Google Cloud facendo clic sul nome del deployment nella pagina Deployment, quindi su VISUALIZZAZIONE configurazione espansa in Proprietà deployment. Il timestamp della versione viene visualizzato dopo startup-script nella sezione metadata, come mostrato nell'esempio seguente:

metadata:
  items:
  - key: startup-script
    value: curl -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/startup.sh
      | bash -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates

Deployment di più risorse con un unico file di configurazione

Puoi eseguire il deployment di più risorse con un unico file di configurazione aggiungendo altre definizioni di risorse al file.

Per i deployment SAP, copia le sezioni -name, type e properties: della risorsa predefinita e incollala di seguito per creare la nuova definizione della risorsa.

In ogni definizione della risorsa, assicurati di specificare valori univoci per i seguenti elementi:

  • name
  • instanceName

Esecuzione dei deployment

Puoi avviare un deployment inviando il comando seguente:

gcloud deployment-manager deployments create [DEPLOYMENT-NAME] --config [TEMPLATE-NAME].yaml

Se vuoi visualizzare l'anteprima dei risultati del deployment prima di eseguire effettivamente il deployment di qualsiasi risorsa Google Cloud, aggiungi il flag --preview al comando.

Quando avvii un deployment, Deployment Manager convalida le specifiche nel file template.yaml in base alle definizioni contenute nel file deployment-type.py.schema. Se la convalida ha esito positivo, Deployment Manager crea le risorse Google Cloud utilizzando le definizioni delle risorse nei file template.yaml e deployment-type.py.

Al termine dell'elaborazione di Deployment Manager, in Cloud Shell, Deployment Manager visualizza COMPLETED per ogni risorsa creata e passa il controllo allo script shell.

Lo script shell configura ulteriormente le risorse di cui è stato eseguito il deployment e registra l'avanzamento in Cloud Logging. Un deployment SAP non è completo finché gli script della shell non completano l'elaborazione.

Deployment Manager crea anche una voce nella pagina Deployment della console Google Cloud, dove puoi trovare ulteriori dettagli sul deployment.

Personalizzazione avanzata dei modelli

Oltre ad aggiungere definizioni di VM o altre modifiche di minore entità al file di configurazione YAML, se sei un utente avanzato, puoi personalizzare i modelli di Deployment Manager forniti da Google Cloud in altri modi, ma ciò comporta rischi.

Se modifichi i modelli, ti assumi la responsabilità del modello modificato, nonché assicurarti che sia aggiornato e che Deployment Manager sia in grado di elaborarlo. Ti assumi inoltre la responsabilità di garantire che l'infrastruttura Google Cloud e i sistemi SAP di cui vengono distribuiti i modelli modificati soddisfino i requisiti di supportabilità di SAP e Google Cloud, inclusi i requisiti SAP.

Inoltre, le modifiche ai modelli di Deployment Manager rendono più difficile per Google Cloud supportare il deployment. Gli esperti SAP nell'assistenza clienti Google Cloud conoscono bene i modelli non modificati e le configurazioni di cui viene eseguito il deployment, ma non hanno familiarità con le tue personalizzazioni univoche. Se hai bisogno dell'assistenza di Google Cloud per un deployment o una configurazione che utilizza un modello personalizzato, preparati a spiegare le tue personalizzazioni e ad attendere più a lungo per la risoluzione della richiesta di assistenza.

Prima di modificare i modelli di Deployment Manager forniti da Google Cloud per SAP, assicurati di disporre di un team tecnico competente per fornire consigli sulle modifiche, valutare l'impatto delle modifiche sulle prestazioni del tuo sistema e risolvere i problemi che potrebbero verificarsi in seguito. Se non hai un team di questo tipo, i partner di implementazione o i servizi professionali di Google Cloud hanno esperti che possono aiutarti.

Per apportare modifiche, devi comprendere:

  • I requisiti di supportabilità SAP definiti nella documentazione SAP e nelle note SAP che si applicano ai tuoi prodotti SAP.
  • Deployment Manager e come usare deployment, configurazioni e modelli. Consulta la documentazione di Deployment Manager.
  • A seconda del tipo di modifica che stai apportando, i linguaggi di scripting Python o shell.

Tipi di personalizzazione avanzata

Le modifiche considerate personalizzazioni avanzate includono:

  • Elaborazione personalizzata o azioni in uno script post-deployment. Questo è il metodo consigliato per includere personalizzazioni avanzate nei deployment.
  • L'utilizzo di tipi di sistema operativo diversi dalle versioni supportate di Red Hat Enterprise Linux per SAP o SUSE Linux Enterprise Server per SAP.
  • Modifiche agli script di backend forniti nell'ambito del modello:
    • Gli script shell (bash o powershell).
    • I file di configurazione dinamica e di schema Python.
  • Per i deployment ad alta disponibilità:
    • Personalizzazione delle impostazioni di configurazione del pacemaker. Se ritieni che una determinata funzione non sia disponibile, invia un feedback nella pagina della documentazione.
    • Modifiche al modello predefinito per il deployment con scale out di HANA con nodi in standby.

Indipendentemente dal tipo di modifica apportata, assicurati che le modifiche diano luogo a un sistema SAP che rientri nell'ambito dell'assistenza definito nella documentazione del prodotto SAP e nelle Note SAP applicabili al tuo sistema.

File di modello personalizzabili

Google Cloud consiglia di limitare le personalizzazioni al file di configurazione .yaml, sebbene sia possibile modificare anche gli altri file di Deployment Manager, a condizione che il sistema SAP risultante soddisfi i requisiti di supportabilità SAP.

I file da modificare dipendono dal tipo di modifiche che devi apportare.

Per aggiungere ulteriori controlli di convalida per valori di proprietà specifici per il tuo ambiente, puoi aggiungere le definizioni delle proprietà al file deployment-type.py.schema.

Nel file deployment-type.py puoi apportare modifiche ad esempio:

  • Aggiungi ulteriori calcoli sui valori nel file di configurazione, ad esempio intervalli IP o dimensioni del disco. Tieni presente che la modifica delle dimensioni dei dischi, in particolare per SAP HANA, può comportare una configurazione che non soddisfa i requisiti di assistenza SAP.
  • Aggiungi altri metadati dell'istanza VM.
  • Regola i nomi dei dischi.

Download dei file del modello

Per scaricare i file, puoi utilizzare i seguenti comandi dopo aver sostituito il testo in corsivo rosso con i valori del modello che ti serve:

wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/template.yaml

Ad esempio, se devi scaricare i file del modello per un deployment con scale up di SAP HANA, utilizza i comandi seguenti:

wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml

Utilizzo dei file di modello modificati

Quando hai finito di modificare i file del modello, caricali in un bucket Cloud Storage o su un server web e aggiorna gli URL in template.yaml e in altri file nel percorso del file.

Script post-deployment

Puoi utilizzare uno script post-deployment per eseguire azioni aggiuntive, come attivare l'installazione dell'applicazione SAP NetWeaver, monitorare gli agenti e così via.

Gli script post-deployment sono il modo consigliato per personalizzare i deployment, perché ottengono il controllo solo dopo che l'infrastruttura di Google Cloud è stata configurata in base ai requisiti di supportabilità SAP.

Per visualizzare i messaggi di stato per gli script post-deployment, devi codificare gli script per scrivere i messaggi nei log. Per ulteriori informazioni, consulta la documentazione di Cloud Logging.

Lo stato degli script post-deployment non è incluso nei messaggi che Deployment Manager scrive in Cloud Shell o in una sessione shell locale di Google Cloud CLI.

Ottenere assistenza per i modelli di Deployment Manager per SAP

Se hai bisogno di aiuto per risolvere un problema con i modelli di Deployment Manager per SAP, raccogli le informazioni di diagnostica richieste e contatta l'assistenza clienti Google Cloud. Per un elenco delle informazioni di diagnostica richieste, consulta Modelli di Deployment Manager per informazioni diagnostiche SAP.