Personnaliser le plan de migration pour les serveurs JBoss

Vous devez examiner le fichier de plan de migration résultant de la création d'une migration. Personnalisez le fichier avant d'exécuter la migration. Les détails de votre plan de migration sont utilisés pour extraire les artefacts de conteneur de charge de travail de la source.

Cette section décrit le contenu de la migration et les types de personnalisations que vous pouvez envisager avant d'exécuter la migration et de générer des artefacts de déploiement.

Avant de commencer

Cet article suppose que vous avez déjà créé une migration et que vous disposez du fichier de plan de migration.

Modifier le plan de migration

Vous pouvez modifier le plan de migration à l'aide de l'outil migctl ou de la console Google Cloud.

migctl

Vous devez télécharger le plan de migration avant de pouvoir le modifier :

  1. Téléchargez le plan de migration.

    migctl migration get my-migration
    
  2. Modifiez le plan de migration téléchargé, my-migration.yaml, dans un éditeur de texte.

  3. Une fois les modifications effectuées, enregistrez et importez le plan de migration révisé :

    migctl migration update my-migration --main-config my-migration.yaml
    
  4. Répétez ces étapes si d'autres modifications sont nécessaires.

Console

Modifiez le plan de migration dans Google Cloud Console à l'aide de l'éditeur YAML.

  1. Ouvrez la page "Migrate to Containers" dans la console Google Cloud.

    Accéder à la page "Migrate to Containers".

  2. Cliquez sur l'onglet Migrations pour afficher un tableau contenant les migrations disponibles.

  3. Sur la ligne de la migration souhaitée, sélectionnez le Nom de la migration pour ouvrir l'onglet Détails.

  4. Sélectionnez l'onglet YAML.

  5. Modifiez le plan de migration si nécessaire.

  6. Une fois les modifications terminées, vous pouvez effectuer l'une des opérations suivantes :

    1. Enregistrez le plan de migration. Vous devrez ensuite exécuter manuellement la migration pour générer les artefacts de migration. Suivez la procédure décrite dans la section Exécuter une migration.

    2. Enregistrez et générez les artefacts. Exécutez la migration en utilisant vos modifications pour générer les artefacts de migration. Le processus est le même que celui décrit dans la section Exécuter une migration. Vous pouvez ensuite surveiller la migration, comme décrit dans la section Surveiller une migration.

CRD

Vous devez télécharger le plan de migration, le modifier, puis l'appliquer. Le plan de migration est stocké dans le champ appXGenerateArtifactsConfig de l'objet CRD AppXGenerateArtifactsFlowSpec :

  1. Obtenez le nom de l'élément AppXGenerateArtifactsFlow :

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.migrationPlanRef.name} my-migration

    Le modèle de dénomination est renvoyé au format appx-generateartifactsflow-id.

  2. Récupérez le plan de migration par nom et écrivez dans un fichier nommé my-plan.yaml :

    kubectl -n v2k-system get appxgenerateartifactsflows.anthos-migrate.cloud.google.com -o jsonpath={.spec.appXGenerateArtifactsConfig} appx-generateartifactsflow-id > my-plan.yaml
  3. Modifiez le plan de migration si nécessaire.

  4. Appliquez le fichier :

    kubectl patch appxgenerateartifactsflows.anthos-migrate.cloud.google.com --type merge -n v2k-system --patch '{"spec": {"appXGenerateArtifactsConfig": '"$(jq -n --rawfile plan my-plan.yaml '$plan')"'}}' appx-generateartifactsflow-id

Structure du plan de migration

Le plan de migration d'une charge de travail JBoss présente la structure suivante, que vous pouvez personnaliser comme décrit dans les sections suivantes.

# Server name. Edit this to change the artifacts naming.
serverName: jboss-server
# JBoss home directory.
home: /opt/jboss/wildfly
# Parent Wildfly image for the generated container image.
fromImage: docker.io/jboss/wildfly:10.1.0.Final
# JBoss home directory in the target image.
targetImageHome: /opt/wildfly
# Configuration file path from source VM.
configurationFile: /opt/jboss/wildfly/standalone/configuration/standalone.xml
# Ports list to expose on the generated container image.
ports:
- name: management-http
  port: 9990
- name: management-https
  port: 9993
- name: ajp
  port: 8009
- name: http
  port: 8080
- name: https
  port: 8433
- name: txn-recovery-environment
  port: 4712
- name: txn-status-manager
  port: 4713
# List of deployments files to copy.
deployments:
  directory: /opt/jboss/wildfly/standalone/deployments
  applications:
  - test.war
# List of modules to copy in rsync filter format.
# Note: files under '/system/layers/base/' are JBoss/Wildfly binaries and should be copied only if they have been modified.
modules:
- '- system/layers/base'
# External paths required for running the JBoss server or apps.
additionalFiles: []
# Sensitive data which is filtered out of the container image.
# If includeSensitiveData is set to true the sensitive data is mounted on the container.
sensitiveData:
  includeSensitiveData: false
  sensitiveDataPaths:
  - /opt/jboss/wildfly/standalone/configuration/application-roles.properties
  - /opt/jboss/wildfly/standalone/configuration/application-users.properties
  - /opt/jboss/wildfly/standalone/configuration/application.keystore
  - /opt/jboss/wildfly/standalone/configuration/mgmt-groups.properties
  - /opt/jboss/wildfly/standalone/configuration/mgmt-users.properties

Pour ajouter les informations nécessaires, consultez les détails de votre plan de migration et les commentaires guidées.

Vous pouvez plus précisément envisager des modifications telles qu'elles sont décrites dans les sections suivantes.

Spécifier l'image Docker

Dans le plan de migration, nous générons un tag d'image de la communauté Docker basé sur la version JBoss. La version JBoss est détectée et convertie en version majeure (les versions mineures ne sont pas compatibles). Si nous ne parvenons pas à détecter une version JBoss, le fichier fromImage contient une chaîne vide.

Sur le plan de migration, le champ fromImage représente le tag d'image Docker utilisé comme base de l'image du conteneur.

Les versions d'origine JBoss détectées sur la VM source sont contenues dans le fichier discovery-report.yaml généré par la découverte initiale.

Si vous souhaitez modifier l'image de la communauté Docker ou fournir votre propre image Docker, vous pouvez modifier le tag fromImage dans votre plan de migration au format suivant :

# Parent Wildfly image for the generated container image.
 fromImage: docker.io/jboss/wildfly:10.1.0.Final

Le champ targetImageHome spécifie le chemin d'accès au répertoire d'accueil JBoss dans l'image cible et est dérivé du champ fromImage. Vous n'avez pas besoin de modifier la valeur de ce champ, sauf si vous utilisez une image JBoss avec une autre valeur d'accueil JBoss.

Spécifier des applications

Pour exclure des applications de l'image de conteneur, supprimez-les de la liste des applications.

Spécifier des modules

La liste module contient une liste des modules JBoss existants marqués d'un signe plus ou moins. Seuls les modules marqués d'un signe plus seront ajoutés à l'image de conteneur générée. Les modules marqués d'un signe moins, par exemple (/system/layers/base), sont déjà présents dans l'image de la communauté et ne seront pas écrasés, sauf si vous les remarquez avec un signe plus.

Configurer la migration des données sensibles

Pour importer des données sensibles dans le dépôt, vous devez définir le champ includeSensitiveData du plan de migration sur true. Les secrets sont importés dans secrets.yaml.

Le champ sensitiveDataPaths spécifie les listes de fichiers à filtrer à partir du plan de migration. Ces fichiers peuvent contenir des informations sensibles telles que des certificats, un magasin de secrets, des utilisateurs et des mots de passe utilisés par JBoss. Si vous supprimez un chemin d'accès dans le champ sensitiveDataPaths, le fichier est importé dans l'image.

Étapes suivantes

Linux

Windows

Tomcat

WebSphere

JBoss

Apache

WordPress