Personaliza el plan de migración para servidores de JBoss

Debes revisar el archivo del plan de migración que se generó cuando se creó la migración. Personaliza el archivo antes de ejecutar la migración. Los detalles de tu plan de migración se usan para extraer los artefactos de contenedor de la carga de trabajo de la fuente.

En esta sección, se describe el contenido de la migración y los tipos de personalizaciones que puedes tener en cuenta antes de ejecutar la migración y generar artefactos de implementación.

Antes de comenzar

En este tema, se supone que ya creaste una migración y que tienes el archivo del plan de migración.

Edita el plan de migración

Puedes editar el plan de migración con la herramienta migctl o la consola de Google Cloud.

migctl

Debes descargar el plan de migración para poder editarlo:

  1. Descarga el plan de migración.

    migctl migration get my-migration
    
  2. Edita el plan de migración descargado, my-migration.yaml, en un editor de texto.

  3. Cuando completes tus cambios, guarda y sube el plan de migración revisado:

    migctl migration update my-migration --main-config my-migration.yaml
    
  4. Repite estos pasos si se necesitan más cambios.

Consola

Edita el plan de migración en la consola de Google Cloud con el editor de YAML.

  1. Abre la página Migrate to Containers en la consola de Google Cloud.

    Ir a la página Migrate to Containers

  2. Haz clic en la pestaña Migraciones para ver una tabla con las migraciones disponibles.

  3. En la fila de la migración deseada, selecciona el Nombre de la migración para abrir la pestaña Detalles.

  4. Selecciona la pestaña YAML.

  5. Edita el plan de migración según sea necesario.

  6. Cuando termines de editar, puedes optar por una de las siguientes acciones:

    1. Guarda el plan de migración. Luego, deberás ejecutar la migración de forma manual para generar los artefactos de migración. Usa el procedimiento que se muestra en Ejecuta una migración.

    2. Guarda y genera los artefactos. Ejecuta la migración mediante tus ediciones para generar los artefactos de migración. El proceso es el mismo que se describe en Ejecuta una migración. Luego, puedes supervisar la migración como se describe en Supervisa una migración.

CRD

Debes descargar el plan de migración, editarlo, y aplicarlo. El plan de migración se almacena dentro del campo appXGenerateArtifactsConfig de la CRD de AppXGenerateArtifactsFlowSpec.

  1. Obtén el nombre de AppXGenerateArtifactsFlow:

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

    El patrón de nombres se muestra en el formato appx-generateartifactsflow-id.

  2. Obtén el plan de migración por nombre y escribe en un archivo llamado 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. Edita el plan de migración según sea necesario.

  4. Aplica el siguiente archivo:

    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

Estructura del plan de migración

El plan de migración para una carga de trabajo de JBoss tiene la siguiente estructura, que puedes personalizar como se describe en las siguientes secciones.

# 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

Para agregar información según sea necesario, revisa los detalles del plan de migración y los comentarios guías.

En particular, considera las ediciones en las siguientes secciones.

Especifica la imagen de Docker

En el plan de migración, generamos una etiqueta de imagen de la comunidad de Docker basada en la versión de JBoss. La versión de JBoss se detecta y se convierte en una versión principal (no se admiten versiones secundarias). Si no detectamos una versión de JBoss, fromImage contendrá una string vacía.

En el plan de migración, el campo fromImage representa la etiqueta de imagen de Docker que se usa como base de la imagen del contenedor.

Las versiones originales de JBoss que se detectan en la VM de origen se encuentran en discovery-report.yaml, que se genera mediante el descubrimiento inicial.

Si deseas cambiar la imagen de la comunidad de Docker o proporcionar tu propia imagen de Docker, puedes modificar la etiqueta fromImage en tu plan de migración con el siguiente formato:

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

El campo targetImageHome especifica la ruta del directorio principal de JBoss en la imagen de destino y se deriva del campo fromImage. No es necesario cambiar el valor de este campo, a menos que uses una imagen de JBoss con un valor de inicio diferente de JBoss.

Especifica las aplicaciones

Para excluir aplicaciones de la imagen del contenedor, quítalas de la lista de aplicaciones.

Especifica los módulos

La lista module contiene una lista de módulos JBoss existentes marcados con un signo más o menos. Solo los módulos marcados con un signo más se agregarán a la imagen de contenedor generada. Los módulos marcados con un signo menos, por ejemplo, (/system/layers/base) ya están presentes en la imagen de la comunidad y no se reemplazarán, a menos que los vuelvas a marcar con un signo más.

Configura la migración de datos sensibles

Para subir datos sensibles al repositorio, debes configurar el campo includeSensitiveData del plan de migración en true. Los objetos Secret se suben en secrets.yaml

El campo sensitiveDataPaths especifica las listas de archivos para filtrar del plan de migración. Estos archivos pueden contener información sensible como certificados, almacén de secretos, usuarios y contraseñas que usa JBoss. Si quitas una ruta de archivo del campo sensitiveDataPaths, el archivo se sube a la imagen.

¿Qué sigue?