Gestione degli script - Cloud Migration Factory su AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione degli script

La AWS soluzione Cloud Migration Factory on consente agli utenti di gestire completamente la libreria di script o pacchetti di automazione all'interno dell'interfaccia utente. È possibile caricare nuovi script personalizzati e nuove versioni dello script utilizzando l'interfaccia di gestione degli script. Quando sono disponibili più versioni, un amministratore può passare da una versione all'altra, dando la possibilità di testare gli aggiornamenti prima di renderli predefiniti. L'interfaccia di gestione degli script consente inoltre agli amministratori di scaricare pacchetti di script per aggiornare o rivedere il contenuto.

Un pacchetto di script supportato è un archivio zip compresso contenente i seguenti file obbligatori nella directory principale:

  • Package-Structure.yml — Utilizzato per definire gli argomenti dello script e altri metadati, come la descrizione e il nome predefinito. Per maggiori dettagli, consulta Composizione di un nuovo pacchetto di script.

  • [script python personalizzato] .py — Questo è lo script iniziale che verrà eseguito quando viene inviato un lavoro. Questo script può richiamare altri script e moduli e, in tal caso, questi devono essere inclusi nell'archivio. Il nome di questo script deve corrispondere al valore specificato nella MasterFileName chiave in. Package-Structure.yml

Carica un nuovo pacchetto di script

Nota

Un pacchetto di script deve essere conforme al formato supportato. Per maggiori dettagli, consulta Composizione di un nuovo pacchetto di script.

  1. Scegli Aggiungi nella tabella Script di automazione.

  2. Seleziona il file di archivio del pacchetto che desideri caricare.

  3. Immettete un nome univoco per lo script. Gli utenti faranno riferimento allo script con questo nome per avviare i lavori.

Scarica i pacchetti di script

Puoi scaricare pacchetti di script dalla console per attivare gli aggiornamenti e la verifica dei contenuti.

  1. Seleziona Automazione, quindi Script.

  2. Seleziona lo script che desideri scaricare dalla tabella, quindi seleziona Azioni e scegli Scarica la versione predefinita o Scarica la versione più recente.

Puoi scaricare versioni specifiche di uno script. Per farlo, seleziona lo script, quindi Azioni e scegli Cambia versione predefinita. Dall'elenco Versione predefinita dello script, scegli Scarica la versione selezionata.

Aggiungi una nuova versione di un pacchetto di script

Gli aggiornamenti ai pacchetti di script di AWS Cloud Migration Factory possono essere caricati nella sezione Automazione > Script seguendo questi passaggi:

  1. Seleziona Automazione, quindi Script.

  2. Seleziona lo script esistente per aggiungere una nuova versione, quindi seleziona Azioni e scegli Aggiungi nuova versione.

  3. Seleziona il file di archivio del pacchetto aggiornato che desideri caricare e scegli Avanti. La nuova versione dello script manterrà il nome esistente per impostazione predefinita. Immettete un nome di script univoco. Qualsiasi modifica del nome verrà applicata solo a questa versione dello script.

  4. È possibile rendere la nuova versione dello script la versione predefinita selezionando Imposta versione predefinita.

  5. Scegli Carica.

Eliminazione di pacchetti e versioni di script

Non è possibile eliminare script o versioni di uno script a scopo di controllo. Ciò consente di esaminare lo script esatto che è stato eseguito su un sistema in un determinato momento. Ogni versione dello script ha una firma e un ID univoci al momento del caricamento, che vengono registrati nella cronologia del lavoro in cui sono stati utilizzati lo script e la versione.

Composizione di un nuovo pacchetto di script

I pacchetti di AWS script di Cloud Migration Factory supportano Python come linguaggio di scripting principale. È possibile avviare altri linguaggi di shell scripting come richiesto dall'interno di un programma principale o wrapper Python. Per creare rapidamente un nuovo pacchetto di script, consigliamo di scaricare una copia di uno degli script preconfezionati e di aggiornarlo per eseguire l'operazione richiesta. È necessario innanzitutto creare uno script Python master che esegua le funzionalità principali dello script. Quindi, create un Package-Structure.yml file per definire gli argomenti e gli altri metadati richiesti dallo script. Fate riferimento alle Package-Structure.yml opzioni per maggiori dettagli.

Script principale in Python

Questo è lo script principale iniziale che viene eseguito quando viene avviato un processo. Una volta completata l'esecuzione dello script, l'attività è terminata e il codice restituito finale determina lo stato del lavoro. Tutto l'output di questo script viene acquisito quando viene eseguito in remoto e passato come riferimento nel registro di controllo dell'output del lavoro. Questo registro viene archiviato anche in Amazon CloudWatch.

Accesso a Cloud Migration Factory su AWS dati e API da uno script

Per fornire l'accesso a Cloud Migration Factory su AWS API e dati, puoi utilizzare il modulo di supporto python incluso. Il modulo fornisce le seguenti funzioni comuni:

Accesso in fabbrica

Restituisce un token di accesso che può essere utilizzato per chiamare Cloud Migration Factory sulle API. AWS Questa funzione tenterà di accedere a CMF utilizzando una serie di tentativi di credenziali:

  1. Tentando di accedere al segreto predefinito contenente l'ID utente e la password dell'account di servizio, se esiste e l'accesso è consentito. Questo nome segreto MF ServiceAccount - [userpool id] verrà verificato.

  2. Se il passaggio 1 non ha esito positivo e l'utente sta eseguendo lo script dalla riga di comando, all'utente verrà richiesto di fornire un ID utente e una password di AWS Cloud Migration Factory. Se eseguito da un processo di automazione remoto, il processo avrà esito negativo.

getServerCredentials

Restituisce le credenziali di accesso per un server archiviato in AWS Cloud Migration Factory in Credentials Manager o tramite l'input dell'utente. Questa funzione controllerà una serie di fonti diverse per determinare le credenziali per un server specifico, l'ordine delle fonti è:

  1. Se local_username e local_password sono impostati e validi, verranno restituiti.

  2. Se secret_overide è impostato, questo verrà utilizzato per recuperare il segreto specificato da AWS Secret Manager, altrimenti, controlla se il record del server contiene la chiave secret_name e questa non è vuota, verrà utilizzato questo nome segreto.

  3. Se si verifica un errore nell'individuazione o nell'accesso ai segreti specificati, la funzione tornerà a richiedere all'utente le credenziali, ma solo se no_user_prompts è impostato su False, altrimenti restituirà un errore.

Parametri

local_username — Se passato, verrà restituito.

local_password — Se passato, verrà restituito.

server: nome del server, come memorizzato nell'attributo server_name in Cloud Migration Factory. AWS

Secret_overide — Viene passato questo imposterà il nome segreto da recuperare da Secrets Manager per questo server.

no_user_prompts — Indica alla funzione di non richiedere all'utente un ID utente e una password se non sono memorizzati, questo dovrebbe essere vero per qualsiasi script di automazione remota.

getCredentials

Ottiene le credenziali archiviate utilizzando AWS Cloud Migration Factory Credentials Manager da Secrets Manager.

Parametri

secret_name — nome del segreto da recuperare.

get_factory_servers

Restituisce una serie di server dal datastore di AWS Cloud Migration Factory in base al waveid fornito.

Parametri

Waveid: ID del record Wave dei server che verranno restituiti.

Token: token di autenticazione ottenuto dalla funzione FactoryLogin Lambda.

UserHost: URL dell'endpoint dell'API utente di AWS Cloud Migration Factory.

OSSplit: se impostato sutrue, verranno restituiti due elenchi, uno per i server Linux e uno per Windows, se False, verrà restituito un unico elenco combinato.

Riepilogo finale del messaggio

Si consiglia di fornire un messaggio di riepilogo del risultato dello script come output finale sullo schermo o sul sysout. Questo verrà visualizzato sulla console nella proprietà Last Message, che fornisce uno stato rapido del risultato dello script senza che l'utente debba leggere l'intero registro di output.

Codice di ritorno

Lo script python principale dovrebbe restituire un codice di ritorno diverso da zero all'uscita se la funzione dello script non è stata completamente riuscita. Alla ricezione di un codice di ritorno diverso da zero, lo stato del processo verrà visualizzato come Failed nel log dei lavori, indicando all'utente che deve esaminare il log di output per i dettagli dell'errore.

Opzioni YAML Package-Structure.yml

File YAML di esempio

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"

Descrizioni delle chiavi YAML

Richiesto

Nome: nome predefinito che lo script utilizzerà durante l'importazione.

Descrizione: descrizione dell'utilizzo dello script.

MasterFileName— Questo è il punto di partenza per l'esecuzione dello script, deve essere un nome di file Python incluso nell'archivio del pacchetto dello script.

Argomenti — Un elenco di argomenti accettati dallo script MasterFileName Python. Ogni argomento da specificare è nel formato di definizione degli attributi di AWS Cloud Migration Factory. Le proprietà obbligatorie per ogni argomento sono Name e Type, tutte le altre proprietà sono opzionali.

Facoltativo

UpdateUrl— Fornite un URL in cui è disponibile il codice sorgente del pacchetto di script per fornire gli aggiornamenti. Attualmente è solo di riferimento.

SchemaExtensions— Un elenco di attributi che lo script Python richiede che siano presenti nello schema per memorizzare l'output o recuperare dati aggiuntivi. Ogni attributo deve essere specificato nel formato di definizione degli attributi AWS CMF. Le proprietà richieste per ogni attributo sono Schema, Nome, Descrizione e Tipo. Tutte le altre proprietà sono facoltative. Tutti i nuovi attributi verranno aggiunti automaticamente allo schema al momento del caricamento iniziale dello script e le modifiche non SchemaExtensions verranno elaborate per le nuove versioni dello script. Se ciò è necessario per aggiungere un nuovo script, è necessario aggiornare manualmente lo schema.