Automatiser les déploiements SAP sur Google Cloud avec Deployment Manager

Vous pouvez automatiser le déploiement de l'infrastructure Google Cloud en utilisant Cloud Deployment Manager, un service qui automatise la création et la gestion des ressources Google Cloud.

Pour certaines solutions SAP et bases de données associées, telles que SAP HANA, Google Cloud fournit des modèles de configuration Cloud Deployment Manager prédéfinis avec lesquels vous pouvez déployer une infrastructure Google Cloud respectant les bonnes pratiques et les exigences de compatibilité de SAP.

Solutions SAP compatibles

Google Cloud fournit des configurations Cloud Deployment Manager pour les solutions SAP suivantes :

Éléments déployés par les modèles

Tous les modèles Deployment Manager fournis par Google Cloud pour les déploiements SAP configurent ou déploient les éléments suivants :

  • Une ou plusieurs machines virtuelles (VM) Compute Engine
  • Une image d'OS que vous spécifiez
  • Un ou plusieurs disques persistants
  • Éventuellement, un compte de service de gestion de l'authentification et des accès (IAM) que vous spécifiez en vue de son utilisation par les VM
  • Les API Google Cloud requises par le déploiement SAP
  • Éventuellement, des tags réseau pour chaque instance de VM
  • Éventuellement, une adresse IP publique pour chaque instance de VM
  • La dernière version de l'agent Google Cloud pour SAP.

Pour SAP HANA, les modèles Deployment Manager déploient également les éléments suivants :

  • Des volumes de stockage pour /hana/shared et /hanabackup
  • Éventuellement, le système SAP HANA lui-même
  • Pour les systèmes SAP HANA à scaling horizontal avec basculement automatique des hôtes, un hôte maître, jusqu'à 15 nœuds de calcul et jusqu'à trois hôtes de secours
  • Pour les systèmes SAP HANA à scaling vertical, un cluster Linux à haute disponibilité

Pour SAP NetWeaver, les modèles Deployment Manager déploient également les éléments suivants :

  • Des volumes de stockage pour /sapmnt, /usr/sap et un volume d'échange

Fichiers Deployment Manager pour chaque déploiement SAP

Chaque configuration Deployment Manager prédéfinie pour SAP contient l'ensemble de fichiers suivant :

  • Un fichier de configuration YAML, template.yaml
  • Un fichier de modèle Python, deployment-type.py, tel que sap_hana.py, sap_hana_scaleout.py, ou sap_nw.py
  • Un fichier de schéma Python, deployment-type.py.schema, tel que sap_hana.py.schema, sap_hana_scaleout.py.schema, ou sap_nw.py.schema
  • Au moins un script shell, startup.sh ou startup.ps1

Spécifiez les propriétés de vos ressources Google Cloud dans le fichier de configuration template.yaml.

Compléter le fichier de configuration template.yaml

Les fichiers de configuration template.yaml fournis pour les déploiements SAP sont conformes aux standards définis par Deployment Manager.

Les fichiers de configuration fournis pour SAP incluent la définition principale de la ressource, suivie d'une section de commentaire contenant des propriétés avancées qui sont plus rarement utilisées. L'exemple suivant est un extrait du fichier template.yaml pour 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
    #
     ...

Pour utiliser les propriétés avancées, supprimez le caractère de commentaire # et spécifiez une valeur pour la propriété.

Pour en savoir plus sur les fichiers de configuration, consultez la page Principes de base de Deployment Manager.

Gestion des versions de modèles

Vous pouvez contrôler la version du modèle Deployment Manager utilisée par vos déploiements SAP en spécifiant un horodatage de la version sur la propriété type dans le fichier de configuration YAML.

Par défaut, lorsque vous téléchargez un nouveau fichier de configuration template.yaml, la propriété type spécifie latest comme version, ce qui signifie que vos déploiements utilisent toujours la dernière version disponible des modèles Deployment Manager.

Dans les commentaires qui suivent la propriété type se trouve une autre spécification de propriété type qui inclut l'horodatage de la dernière version disponible au moment du téléchargement du fichier template.yaml. Exemple :

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:
  ...

Si tous vos déploiements doivent utiliser la même version de modèle, remplacez la spécification de propriété type qui inclut latest par la spécification de propriété type qui inclut l'horodatage. Exemple :

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

Lorsqu'un horodatage est spécifié, tous les déploiements utilisent la version du modèle Deployment Manager qui correspond à cet horodatage.

Pour connaître la version de modèle utilisée par Deployment Manager pour un déploiement SAP dans la console Google Cloud, cliquez sur le nom du déploiement sur la page des déploiements puis sur VUE de configuration développée sous Propriétés du déploiement. L'horodatage de la version apparaît après startup-script dans la section metadata, comme illustré dans l'exemple suivant :

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

Déployer plusieurs ressources avec un seul fichier de configuration

Vous pouvez déployer plusieurs ressources avec un seul fichier de configuration en ajoutant d'autres définitions de ressources au fichier.

Pour les déploiements SAP, copiez les sections -name, type et properties: de la ressource prédéfinie, puis collez-les à la suite pour créer une nouvelle définition de ressource.

Dans chaque définition de ressource, veillez à spécifier des valeurs uniques pour les éléments suivants :

  • nom
  • instanceName

Exécuter des déploiements

Pour démarrer un déploiement, exécutez la commande suivante :

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

Si vous souhaitez prévisualiser les résultats du déploiement avant de déployer réellement des ressources Google Cloud, ajoutez l'option --preview à la commande.

Lorsque vous démarrez un déploiement, Deployment Manager valide les spécifications du fichier template.yaml par rapport aux définitions contenues dans le fichier deployment-type.py.schema. Si la validation aboutit, Deployment Manager crée les ressources Google Cloud à l'aide des définitions de ressources des fichiers template.yaml et deployment-type.py.

Une fois le traitement de Deployment Manager terminé, dans Cloud Shell, Deployment Manager affiche COMPLETED pour chacune des ressources créées et passe le contrôle au script shell.

Le script shell poursuit la configuration des ressources déployées et enregistre sa progression dans Cloud Logging. Un déploiement SAP n'est pas terminé tant que les scripts shell n'ont pas fini leur traitement.

Deployment Manager crée également une entrée sur la page Déploiements de la console Google Cloud, où vous pouvez trouver des informations supplémentaires sur votre déploiement.

Personnalisation avancée des modèles

En plus de l'ajout de définitions de VM ou de l'apport d'autres modifications mineures dans le fichier de configuration YAML, si vous êtes un utilisateur avancé, vous pouvez personnaliser les modèles Deployment Manager fournis par Google Cloud de différentes manières, mais cela présente des risques.

Si vous modifiez les modèles, vous en assumez la responsabilité. Vous devez par exemple vous assurer qu'ils sont à jour et que Deployment Manager peut les traiter. Vous devez également vérifier que l'infrastructure Google Cloud et les systèmes SAP déployés par les modèles modifiés respectent les critères de compatibilité entre SAP et Google Cloud, y compris les exigences de SAP.

Les modifications apportées aux modèles Deployment Manager compliquent également la compatibilité de votre déploiement avec Google Cloud. Les spécialistes SAP de l'assistance Cloud Customer Care connaissent les modèles non modifiés et les configurations qu'ils déploient, mais pas vos personnalisations uniques. Si vous avez besoin de l'aide de Google Cloud pour un déploiement ou une configuration utilisant un modèle personnalisé, attendez-vous à devoir expliquer les personnalisations effectuées et prévoyez un délai de traitement plus important pour votre demande d'assistance.

Avant de modifier les modèles Deployment Manager fournis par Google Cloud pour SAP, assurez-vous que vous disposez d'une équipe technique qualifiée pour fournir des conseils sur les modifications, évaluer leur impact sur les performances de votre système et vous aider à résoudre les problèmes susceptibles de survenir ultérieurement. Si vous ne disposez pas d'une telle équipe, les partenaires de mise en œuvre ou les services professionnels Google Cloud ont des spécialistes qui peuvent vous aider.

Pour apporter des modifications, vous devez maîtriser les éléments suivants :

  • Exigences de compatibilité définies dans la documentation et les notes SAP qui s'appliquent à vos produits SAP
  • Fonctionnement de Deployment Manager et utilisation des déploiements, des configurations et des modèles Consultez la documentation Deployment Manager.
  • Selon le type de modification que vous effectuez, les langages de script shell ou Python

Types de personnalisation avancée

Les modifications considérées comme des personnalisations avancées sont les suivantes :

  • Actions ou traitements personnalisés dans un script post-déploiement. Il s'agit de la méthode recommandée pour inclure des personnalisations avancées dans vos déploiements.
  • Utilisation de types de systèmes d'exploitation autres que les versions compatibles Red Hat Enterprise Linux pour SAP ou SUSE Linux Enterprise Server pour SAP.
  • Modifications apportées aux scripts backend fournis dans le modèle :
    • Les scripts shell (bash ou Powershell)
    • Les fichiers de schéma et de configuration dynamiques Python
  • Pour les déploiements à haute disponibilité :
    • Personnalisation des paramètres de configuration de Pacemaker. Si vous constatez qu'il manque une fonction particulière, veuillez nous faire part de vos commentaires sur la page de documentation.
    • Modifications apportées au modèle par défaut pour le déploiement HANA à scaling horizontal avec des nœuds de secours.

Quel que soit le type de modification que vous effectuez, assurez-vous que le système SAP obtenu répond aux exigences de compatibilité définies par la documentation produit SAP et les notes SAP applicables à votre système.

Fichiers de modèle que vous pouvez personnaliser

Google Cloud recommande de limiter les personnalisations au fichier de configuration .yaml, bien que vous puissiez également modifier les autres fichiers Deployment Manager, à condition toutefois que le système SAP obtenu réponde aux exigences de compatibilité de SAP.

Les fichiers que vous devez modifier dépendent du type de modification que vous devez apporter.

Pour ajouter des contrôles de validation supplémentaires pour les valeurs de propriété propres à votre environnement, vous pouvez ajouter les définitions de propriétés au fichier deployment-type.py.schema.

Dans le fichier deployment-type.py, vous pouvez effectuer les modifications suivantes :

  • Ajouter des calculs supplémentaires sur les valeurs du fichier de configuration, telles que les plages d'adresses IP ou les tailles de disque. Notez que la modification des tailles de disque, en particulier pour SAP HANA, peut entraîner une configuration qui ne répond pas aux exigences de compatibilité de SAP.
  • Ajouter des métadonnées d'instance de VM supplémentaires.
  • Ajuster les noms des disques.

Télécharger les fichiers de modèle

Pour télécharger les fichiers, vous pouvez exécuter les commandes suivantes après avoir remplacé le texte rouge en italique par les valeurs correspondant au modèle dont vous avez besoin :

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

Par exemple, si vous avez besoin de télécharger les fichiers de modèle d'un déploiement SAP HANA à scaling vertical, exécutez les commandes suivantes :

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

Utiliser les fichiers de modèle modifiés

Lorsque vous avez terminé de modifier les fichiers de modèle, importez-les dans un bucket Cloud Storage ou un serveur Web, puis mettez à jour les URL dans le fichier template.yaml et les autres fichiers faisant référence à l'emplacement de ces fichiers.

Scripts post-déploiement

Vous pouvez utiliser un script post-déploiement pour effectuer des actions supplémentaires, comme déclencher l'installation de votre application SAP NetWeaver, celle des agents de surveillance, etc.

Les scripts post-déploiement sont recommandés pour personnaliser vos déploiements, car ils n'obtiennent le contrôle qu'une fois l'infrastructure Google Cloud configurée conformément aux exigences de compatibilité de SAP.

Pour afficher les messages d'état des scripts post-déploiement, vous devez coder les scripts pour écrire les messages dans les journaux. Pour en savoir plus, consultez la documentation Cloud Logging.

L'état des scripts post-déploiement n'est pas inclus dans les messages que Deployment Manager écrit dans Cloud Shell ou une session de shell de Google Cloud CLI locale.

Obtenir de l'aide concernant les modèles Deployment Manager pour SAP

Si vous avez besoin d'aide pour résoudre un problème lié aux modèles Deployment Manager pour SAP, rassemblez les informations de diagnostic nécessaires et contactez Cloud Customer Care. Pour obtenir une liste des informations de diagnostic requises, consultez la section Modèles Deployment Manager pour les informations de diagnostic SAP.