Automatizzare i 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 alcune 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 Google Cloud in modo che soddisfi le best practice e i requisiti di supportabilità di SAP.

Soluzioni SAP supportate

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

Che cosa viene eseguito nei modelli

Tutti i modelli 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 specificata
  • Uno o più dischi permanenti
  • Facoltativamente, un account di servizio Identity and Access Management (IAM) da specificare per l'utilizzo da parte delle VM
  • Le API Google Cloud richieste dal deployment SAP
  • Facoltativamente, i tag di rete per ogni istanza VM
  • Facoltativamente, un indirizzo IP pubblico per ogni istanza VM
  • La versione più recente dell'agente di Google Cloud per SAP

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

  • Volumi di archiviazione per /hana/shared e /hanabackup
  • Se vuoi, il sistema SAP HANA stesso
  • Per i sistemi SAP HANA scalabili orizzontalmente con failover automatico dell'host, un host master, fino a 15 host worker e fino a 3 host di riserva
  • Per i sistemi SAP HANA scalabili verticalmente, un cluster Linux ad alta disponibilità

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

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

File di Deployment Manager per ogni deployment SAP

Ogni configurazione di Deployment Manager predefinita 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 schema Python, deployment-type.py.schema, ad esempio sap_hana.py.schema, sap_hana_scaleout.py.schema, o sap_nw.py.schema.
  • Almeno uno script shell, startup.sh o startup.ps1

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

Completare il file di configurazione template.yaml

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 followed by a comment section that contains advanced properties that are less commonly used. Il seguente esempio è un estratto del 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 di commento # e specifica un valore per la proprietà.

Per ulteriori informazioni sui file di configurazione, consulta Nozioni di base su Deployment Manager.

Controllo delle versioni del modello

Puoi controllare la versione del modello Deployment Manager utilizzata dai tuoi deployment SAP specificando un timestamp della versione nella proprietà type del 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 deployment utilizzano sempre la versione più recente disponibile dei modelli di Deployment Manager.

Nei commenti che seguono la proprietà type è presente una specifica della proprietà type alternativa che include il timestamp della versione più recente disponibile al momento del download del file type.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 implementazioni 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 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 e poi su Visualizzazione configurazione espansa in Proprietà di 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

Eseguire il deployment di più risorse con un unico file di configurazione

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

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

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

  • nome
  • instanceName

Deployment in esecuzione

Per avviare un deployment, esegui il seguente comando:

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

Se vuoi visualizzare l'anteprima dei risultati di deployment prima di eseguire effettivamente il deployment delle risorse 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 va a buon fine, 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 viene visualizzato COMPLETED per ogni risorsa creata e il controllo viene passato 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 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 piccole modifiche 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 questa operazione comporta dei rischi.

Se modifichi i modelli, ne assumi la responsabilità, inclusa la verifica che sia aggiornato e che Deployment Manager possa elaborarlo. Inoltre, ti assumi la responsabilità di garantire che l'infrastruttura Google Cloud e i sistemi SAP di cui vengono eseguiti i deployment dei modelli modificati soddisfino i requisiti di supportabilità di SAP e Google Cloud, inclusi i requisiti di SAP.

Le modifiche ai modelli Deployment Manager rendono inoltre più difficile per Google Cloud supportare il tuo deployment. Gli specialisti SAP del assistenza clienti Google Cloud conoscono i modelli non modificati e le configurazioni che implementano, ma non conoscono le tue personalizzazioni uniche. Se hai bisogno di assistenza da Google Cloud per un deployment o una configurazione che utilizza un modello personalizzato, preparati a spiegare le personalizzazioni e ad attendere più a lungo la risoluzione della richiesta di assistenza.

Prima di modificare i modelli di Deployment Manager forniti da Google Cloud per SAP, assicurati di avere a disposizione un team tecnico competente per consigliarti sulle modifiche, valutare l'impatto delle modifiche sul rendimento del sistema e aiutarti a risolvere i problemi che potrebbero verificarsi in un secondo momento. Se non disponi di un team di questo tipo, gli partner di implementazione o i servizi professionali Google Cloud hanno specialisti 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 utilizzare implementazioni, 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 o azioni personalizzate in uno script di post-deployment. Questo è il metodo consigliato per includere personalizzazioni avanzate nei deployment.
  • L'utilizzo di tipi di sistemi operativi diversi dalle versioni supportate di Red Hat Enterprise Linux for SAP o SUSE Linux Enterprise Server for SAP.
  • Modifiche agli script di backend forniti nell'ambito del templato:
    • Gli script shell (bash o PowerShell).
    • I file di configurazione e schema dinamici di Python.
  • Per i deployment ad alta disponibilità:
    • Personalizzazione delle impostazioni di configurazione di Pacemaker. Se rilevi la mancanza di una determinata funzione, fornisci un feedback nella pagina della documentazione.
    • Modifiche al modello predefinito per il deployment di HANA Scale-out con nodi di riserva.

Indipendentemente dal tipo di modifica apportata, assicurati che le modifiche generino un sistema SAP che rientri nell'ambito dell'assistenza definito dalla documentazione del prodotto SAP e dalle note SAP applicabili al tuo sistema.

File modello che puoi personalizzare

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

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

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

Nel file deployment-type.py puoi apportare modifiche come:

  • Aggiungi calcoli aggiuntivi ai 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 dell'assistenza SAP.
  • Aggiungi altri metadati delle istanze VM.
  • Modifica 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 di cui hai bisogno:

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 modello per un deployment di scalabilità di SAP HANA, utilizza i seguenti comandi:

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

Utilizzare i file modello modificati

Al termine della modifica dei file del modello, caricali in un bucket Cloud Storage o in un server web e aggiorna gli URL in template.yaml e in altri file in base alla posizione del file.

Script di post-deployment

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

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

Per visualizzare i messaggi di stato per gli script di post-deployment, devi codificare gli script in modo che scrivano i messaggi nei log. Per saperne di più, consulta la documentazione di Cloud Logging.

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

Ricevere assistenza per i modelli 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 le informazioni di diagnostica SAP.