Administración de scripts - Cloud Migration Factory en AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración de scripts

La AWS solución Cloud Migration Factory on permite a los usuarios administrar completamente la biblioteca de scripts o paquetes de automatización dentro de la interfaz de usuario. Puede cargar nuevos scripts personalizados, así como nuevas versiones del script, mediante la interfaz de administración de scripts. Cuando hay varias versiones disponibles, un administrador puede cambiar de una versión a otra, lo que permite probar las actualizaciones antes de convertirlas en predeterminadas. La interfaz de administración de scripts también permite a los administradores descargar paquetes de scripts para actualizar o revisar el contenido.

Un paquete de scripts compatible es un archivo zip comprimido que contiene los siguientes archivos obligatorios en la raíz:

  • Package-Structure.yml: se utiliza para definir los argumentos del script y otros metadatos, como la descripción y el nombre predeterminado. Consulte Redacción de un nuevo paquete de scripts para obtener más información.

  • [script python personalizado].py: este es el script inicial que se ejecutará cuando se envíe un trabajo. Este script puede llamar a otros scripts y módulos y, de ser así, deberían incluirse en el archivo. El nombre de este script debe coincidir con el valor especificado en la clave MasterFileName del Package-Structure.yml.

Carga de un nuevo paquete de scripts

nota

El paquete de scripts debe ajustarse al formato compatible. Consulte Redacción de un nuevo paquete de scripts para obtener más información.

  1. Seleccione Agregar en la tabla Scripts de automatización.

  2. Seleccione el archivo de almacenamiento del paquete que desee cargar.

  3. Escriba un nombre único para el script. Los usuarios harán referencia al script con este nombre para iniciar los trabajos.

Descarga de paquetes de scripts

Puede descargar paquetes de scripts desde la consola para activar las actualizaciones y la verificación del contenido.

  1. Seleccione Automatización y, a continuación, Scripts.

  2. Seleccione el script que desee descargar de la tabla y, a continuación, seleccione Acciones y elija Descargar la versión predeterminada o Descargar la última versión.

Puede descargar versiones específicas de un script. Para ello, seleccione el script, después Acciones y por ultimo seleccioneCambiar la versión predeterminada. En la lista de versiones predeterminadas del script, seleccione Descargar la versión seleccionada.

Agregar una nueva versión de un paquete de scripts

Las actualizaciones de los paquetes de scripts de AWS Cloud Migration Factory se pueden cargar en la sección Automatización > Scripts siguiendo estos pasos:

  1. Seleccione Automatización y, a continuación, Scripts.

  2. Seleccione el script existente para agregar una nueva versión y, a continuación, seleccione Acciones y elija Agregar nueva versión.

  3. Seleccione el archivo de almacenamiento del paquete que desee cargar, y elija Siguiente. La nueva versión del script mantendrá el nombre existente por defecto. Escriba un nombre único para el script. Cualquier cambio de nombre sólo se aplicará a esta versión del script.

  4. Para hacer que la nueva versión del script sea la versión predeterminada, seleccione Establecer versión predeterminada.

  5. Seleccione Cargar.

Eliminación de paquetes y versiones de scripts

No puede eliminar scripts ni versiones de un script con fines de auditoría. Esto permite revisar el script exacto que se ejecutó en un sistema en un determinado momento. Cada versión del script tiene una firma y un identificador únicos cuando se carga, que se registran en el historial de tareas en el que se utilizaron el script y la versión.

Redacción de un nuevo paquete de scripts

Los paquetes de AWS scripts de Cloud Migration Factory admiten Python como lenguaje de secuencias de comandos principal. Puede iniciar otros lenguajes de programación de intérprete de comandos según sea necesario desde un programa principal o contenedor de Python. Para crear un nuevo paquete de scripts rápidamente, recomendamos descargar una copia de uno de los scripts preconfigurados y actualizarlo para realizar la tarea requerida. Primero debe crear un script de Python maestro que ejecute la funcionalidad principal del script. A continuación, cree un archivo Package-Structure.yml para definir los argumentos y otros metadatos que requiere el script. Consulte las opciones de Package-Structure.yml para obtener más información.

Script principal de Python

Este es el script principal inicial que se ejecuta cuando se inicia un trabajo. Una vez que el script termina de ejecutarse, la tarea finaliza y el código de retorno final determina el estado del trabajo. Todos los resultados de este script se capturan cuando se ejecutan de forma remota y se pasan al registro de auditoría de resultados del trabajo como referencia. Este registro también se almacena en Amazon CloudWatch.

Acceder a Cloud Migration Factory a partir de AWS datos y APIs desde un script

Para proporcionar acceso a Cloud Migration Factory desde AWS APIs y hacia los datos, puedes usar el módulo auxiliar de Python incluido. El módulo proporciona las funciones principales. A continuación, se muestran algunas funciones clave para empezar:

factory_login

Devuelve un token de acceso que se puede usar para activar Cloud Migration Factory AWS APIs. Esta función intentará iniciar sesión CMF utilizando varios intentos de credenciales:

  1. Intentando acceder al secreto predeterminado que contiene el identificador de usuario y la contraseña de la cuenta de servicio, si existe y se permite el acceso. Este nombre MFServiceAccount secreto es [userpool id] se comprobará.

  2. Si el paso 1 no se realiza correctamente y el usuario ejecuta el script desde la línea de comandos, se le solicitará que proporcione un seudónimo y una AWS contraseña de fábrica de Cloud Migration. Si se ejecuta desde un trabajo de automatización remoto, el trabajo fallará.

get_server_credentials

Devuelve las credenciales de inicio de sesión de un servidor almacenado en AWS Cloud Migration Factory en el administrador de credenciales o mediante las entradas del usuario. Esta función comprobará varios orígenes diferentes para determinar las credenciales de un servidor específico; el orden de los orígenes es el siguiente:

  1. Si local_username y local_password están configurados y son válidos, se devolverán.

  2. Si se establece secret_overide, se usará para recuperar el secreto especificado de Secret Manager; de AWS lo contrario, se comprobará si el registro del servidor contiene la clave secret_name y no está vacía, se utilizará este nombre secreto.

  3. Si se produce un error al localizar o acceder a los secretos especificados, la función volverá a solicitar las credenciales al usuario, pero sólo si no_user_prompts está establecido en False; de lo contrario, devolverá un error.

Parámetros

local_username: si se pasa, se devolverá.

local_username: si se pasa, se devolverá.

servidor: diccionario del CMF servidor, según lo devuelto por get_factory_servers. en Cloud Migration Factory. AWS

Secret_overide: si se pasa, se establecerá el nombre secreto que se va a recuperar de Secrets Manager para este servidor.

no_user_prompts: indica a la función que no pida al usuario un identificador de usuario y una contraseña si no están guardados, lo que debería ser cierto para cualquier script de automatización remota.

get_credentials

Obtiene las credenciales almacenadas mediante AWS Cloud Migration Factory Credentials Manager de Secrets Manager.

Parámetros

secret_name: nombre del secreto que hay que recuperar.

get_factory_servers

Devuelve una matriz de servidores del almacén de datos de AWS Cloud Migration Factory en función del identificador proporcionado.

Parámetros

waveid: ID de registro de onda de los servidores que se devolverán.

token: token de autenticación obtenido de la función FactoryLogin Lambda.

app_ids: lista opcional de los identificadores de las aplicaciones que se van a incluir en la oleada.

server_ids: lista opcional de los identificadores de servidor de la oleada y de las aplicaciones que se van a incluir.

os_split — Si se establece entrue, se devolverán dos listas, una para servidores Linux y otra para Windows; si es False, se devolverá una sola lista combinada.

rtype: cadena opcional para filtrar solo por una estrategia de migración de servidores específica, es decir, si se pasa el valor «Rehost», solo se devolverán los servidores con Rehost.

Resumen final del mensaje

Se recomienda enviar un mensaje resumido del resultado del script como salida final a la pantalla o al sistema. Esto se mostrará en la consola en la propiedad Último mensaje, que proporciona un estado rápido del resultado del script sin que el usuario tenga que leer el registro de resultados completo.

Código de retorno

El script principal de Python debería devolver un código de retorno distinto de cero al salir si la función del script no se ha realizado correctamente. Al recibir un código de retorno distinto de cero, el estado de la tarea aparecerá con error en el registro de trabajos, lo que indica al usuario que debe revisar el registro de resultados para ver los detalles del error.

YAMLOpciones de Package-Structure.yml

Archivo YAML de ejemplo

Name: "0-Check MGN Prerequisites" Description: "This script will verify the source servers meet the basic requirements for AWS MGN agent installation." MasterFileName: "0-Prerequisites-checks.py" UpdateUrl: "" Arguments: - name: "ReplicationServerIP" description: "Replication Server IP." long_desc: "IP Address of an AWS MGN Replication EC2 Instance." type: "standard" required: true - name: "SecretWindows" long_desc: "Windows Secret to use for credentials." description: "Windows Secret" type: "relationship" rel_display_attribute: "Name" rel_entity: "secret" rel_key: "Name" - name: "SecretLinux" long_desc: "Linux Secret to use for credentials." description: "Linux Secret" type: "relationship" rel_display_attribute: "Name" rel_entity: "secret" rel_key: "Name" - name: "Waveid" description: "Wave Name" type: "relationship" rel_display_attribute: "wave_name" rel_entity: "wave" rel_key: "wave_id" validation_regex: "^(?!\\s*$).+" validation_regex_msg: "Wave must be provided." required: true SchemaExtensions: - schema: "server" name: "server_pre_reqs_output" description: "Pre-Req Output" type: "string"

YAMLdescripciones clave

Obligatoria

Name: nombre predeterminado que utilizará el script al importar.

Description: descripción del uso del script.

MasterFileName— Este es el punto de partida para que se ejecute el script, tiene que ser el nombre de un archivo de Python que esté incluido en el archivo del paquete del script.

Argumentos: lista de argumentos que acepta el script de MasterFileName Python. Cada argumento que se debe especificar está en el formato de definición de atributos de AWS Cloud Migration Factory. Las propiedades obligatorias de cada argumento son Nombre y Tipo, todas las demás propiedades son opcionales.

Opcional

UpdateUrl— Indique URL dónde está disponible la fuente del paquete de scripts para proporcionar actualizaciones. Actualmente, esto es sólo de referencia.

SchemaExtensions— Una lista de atributos que el script de Python requiere que estén en el esquema para almacenar la salida o recuperar datos adicionales. Cada atributo debe especificarse en el formato de definición de AWS CMF atributos. Las propiedades obligatorias de cada atributo son el esquema, el nombre, la descripción y el tipo. Todas las demás propiedades son opcionales. Los atributos nuevos se añadirán automáticamente al esquema cuando el script se cargue inicialmente y los cambios no se SchemaExtensions procesarán en las nuevas versiones del script. Si es necesario para agregar un nuevo script, se deben realizar actualizaciones manuales del esquema.