

• La AWS Systems Manager CloudWatch dashboard non sarà più disponibile dopo il 30 aprile 2026. I clienti possono continuare a utilizzare la CloudWatch console Amazon per visualizzare, creare e gestire le proprie CloudWatch dashboard Amazon, proprio come fanno oggi. Per ulteriori informazioni, consulta la [documentazione di Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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

# Esecuzione di script da GitHub
<a name="integration-remote-scripts"></a>

Questo argomento descrive come utilizzare il documento Systems Manager predefinito (documento SSM) da cui `AWS-RunRemoteScript` scaricare scriptGitHub, inclusi Ansible Playbook, Python, Ruby e script. PowerShell Utilizzando questo documento SSM, non è più necessario trasferire manualmente gli script in Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute EC2) o inserirli in documenti SSM. AWS Systems Manager l'integrazione con GitHub promuove l'*infrastruttura come codice*, riducendo il tempo necessario per gestire i nodi e standardizzando al contempo le configurazioni in tutta la flotta. 

È anche possibile creare documenti SSM personalizzati che consentano di scaricare ed eseguire script o altri documenti SSM da sedi remote. Per ulteriori informazioni, consulta [Creazione di documenti compositi](documents-creating-content.md#documents-creating-composite).

È anche possibile scaricare una directory che includa più script. Quando si esegue lo script principale nella directory, Systems Manager esegue anche eventuali script di riferimento (finché sono inclusi nella directory). 

Tieni presenti le informazioni importanti sull'esecuzione di script da GitHub, riportate di seguito.
+ Systems Manager non verifica che lo script possa essere eseguito su un nodo. Prima di scaricare ed eseguire lo script, verifica che il software necessario sia installato sul nodo. In alternativa, è possibile creare un documento composito che installa il software utilizzando uno degli strumenti Run Command oState Manager, quindi AWS Systems Manager, scaricare ed eseguire lo script.
+ Dovrai personalmente accertarti del soddisfacimento di tutti i requisiti di GitHub. tra cui, se necessario, l'aggiornamento del token di accesso. Controlla che non venga superato il numero consentito di richieste autenticate o non autenticate. Per ulteriori informazioni, consulta la documentazione GitHub.
+ I repository di GitHub Enterprise non sono supportati.

**Topics**
+ [Esegui playbook Ansible da GitHub](integration-github-ansible.md)
+ [Esegui script Python da GitHub](integration-github-python.md)

# Esegui playbook Ansible da GitHub
<a name="integration-github-ansible"></a>

Questa sezione illustra le procedure che consentono di eseguire playbook Ansible da GitHub con la console o la AWS Command Line Interface (AWS CLI).

**Prima di iniziare**  
Se intendi eseguire uno script archiviato in un GitHub repository privato, crea un AWS Systems Manager `SecureString` parametro per il token GitHub di accesso di sicurezza. Non è possibile accedere a uno script in un archivio privato di GitHub trasferendo manualmente il token su SSH. Il token di accesso deve essere trasferito come parametro `SecureString` di Systems Manager. Per ulteriori informazioni sulla creazione di un parametro `SecureString`, consulta [Creazione di parametri Parameter Store in Systems Manager](sysman-paramstore-su-create.md).

## Esegui un playbook Ansible da GitHub (console)
<a name="integration-github-ansible-console"></a>

**Esegui un playbook Ansible da GitHub**

1. Apri la AWS Systems Manager console all'indirizzo [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Nel pannello di navigazione, scegli **Run Command**.

1. Seleziona **Esegui comando**.

1. Nell'elenco **Documento di comando**, scegli **`AWS-RunRemoteScript`**.

1. In **Parametri di comando**, esegui le seguenti operazioni:
   + In **Tipo di origine**, seleziona **GitHub**. 
   + Nella casella **Informazioni sull'origine**, inserisci le informazioni necessarie per accedere all'origine nel formato seguente.

     ```
     {
       "owner": "owner_name",
       "repository": "repository_name", 
       "getOptions": "branch:branch_name",
       "path": "path_to_scripts_or_directory",
       "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}" 
     }
     ```

     Questo esempio scarica un file denominato `webserver.yml`. 

     ```
     {
         "owner": "TestUser1",
         "repository": "GitHubPrivateTest",
         "getOptions": "branch:myBranch",
         "path": "scripts/webserver.yml",
         "tokenInfo": "{{ssm-secure:mySecureStringParameter}}"
     }
     ```
**Nota**  
`"branch"` è necessario solo se il documento SSM è memorizzato in un ramo diverso da `master`.  
Per utilizzare la versione degli script che si trovano in un particolare *commit* nel repository, usa `commitID` con `getOptions` invece di `branch`. Ad esempio:  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + Nel campo **Riga di comando**, inserisci i parametri per l'esecuzione di script. Ecco un esempio.

     **ansible-playbook -i “localhost,” --check -c local webserver.yml**
   + (Facoltativo) Nel campo **Directory di lavoro**, inserisci il nome di una directory sul nodo su cui si desidera scaricare ed eseguire lo script.
   + (Facoltativo) In **Timeout di esecuzione**, specifica il numero di secondi che il sistema dovrà attendere prima di interrompere l'esecuzione del comando di script. 

1. Nella sezione **Destinazioni**, scegli i nodi gestiti in cui si desidera eseguire questa operazione specificando i tag, selezionando manualmente le istanze, i dispositivi edge o indicando un gruppo di risorse.
**Suggerimento**  
Se un nodo gestito che ti aspetti di vedere non è presente nell'elenco, consulta [Risoluzione dei problemi relativi alla disponibilità dei nodi gestiti](fleet-manager-troubleshooting-managed-nodes.md) per suggerimenti sulla risoluzione dei problemi.

1. In **Altri parametri**:
   + In **Commento**, digita le informazioni su questo comando.
   + In **Timeout (secondi)**, specifica il numero di secondi che il sistema dovrà attendere prima di generare un errore per l'intera esecuzione del comando. 

1. Per **Controllo velocità**:
   + In **Simultaneità**, specifica un numero o una percentuale di nodi gestiti su cui eseguire contemporaneamente il comando.
**Nota**  
Se hai selezionato le destinazioni specificando i tag applicati ai nodi gestiti o specificando i gruppi di AWS risorse e non sei sicuro del numero di nodi gestiti come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.
   + Per **Soglia di errore**, specificare quando interrompere l'esecuzione del comando sulle altri nodi gestiti dopo un errore su un numero o una percentuale di nodi. Se, ad esempio, si specificano tre errori, Systems Manager interrompe l'invio del comando quando riceve il quarto errore. Anche i nodi gestiti che stanno ancora elaborando il comando potrebbero inviare errori.

1. (Facoltativo) Nella sezione **Opzioni di output**, per salvare l'output del comando in un file, seleziona la casella **Scrivi l'output del comando in un bucket S3**. Digita i nomi del bucket e del prefisso (cartella) nelle caselle.
**Nota**  
Le autorizzazioni S3 che danno la possibilità di scrivere dati in un bucket S3 sono quelle del profilo dell'istanza (per istanze EC2) o del ruolo di servizio IAM (in macchine attivate da sistemi ibridi) assegnate all'istanza, non quelle dell'utente IAM che esegue questo processo. Per ulteriori informazioni, consulta le pagine [Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager](setup-instance-permissions.md) oppure [Creazione di un ruolo di servizio IAM per un ambiente ibrido](hybrid-multicloud-service-role.md). Inoltre, se il bucket S3 specificato si trova su un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

1. Se vuoi che vengano inviate notifiche sullo stato dell'esecuzione del comando, nella sezione **Notifiche SNS** selezionara la casella di controllo **Abilita notifiche SNS**.

   Per ulteriori informazioni sulla configurazione delle notifiche Amazon SNS per Run Command, consulta [Monitoraggio delle modifiche di stato di Systems Manager utilizzando le notifiche Amazon SNS](monitoring-sns-notifications.md).

1. Scegli **Esegui**.

## Esegui un Ansible playbook utilizzando il GitHub AWS CLI
<a name="integration-github-ansible-cli"></a>

1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

   Per informazioni, consulta la pagina [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Il comando seguente consente di scaricare ed eseguire uno script da GitHub.

   ```
   aws ssm send-command \
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "instance-IDs"\
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"repository_name\", \"path\": \"path_to_file_or_directory\", \"tokenInfo\":\"{{ssm-secure:name_of_your_SecureString_parameter}}\" }"],"commandLine":["commands_to_run"]}'
   ```

   Ecco un comando di esempio da eseguire su una macchina Linux locale.

   ```
   aws ssm send-command \    
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "i-02573cafcfEXAMPLE" \
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\": \"GitHubPrivateTest\", \"path\": \"scripts/webserver.yml\", \"tokenInfo\":\"{{ssm-secure:mySecureStringParameter}}\" }"],"commandLine":["ansible-playbook -i “localhost,” --check -c local webserver.yml"]}'
   ```

# Esegui script Python da GitHub
<a name="integration-github-python"></a>

Questa sezione include procedure per aiutarti a eseguire script Python GitHub utilizzando la AWS Systems Manager console o (). AWS Command Line Interface AWS CLI

## Esecuzione di uno script Python da GitHub (console)
<a name="integration-github-python-console"></a>

**Esecuzione di uno script Python da GitHub**

1. Apri la AWS Systems Manager console all'indirizzo. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Nel pannello di navigazione, scegli **Run Command**.

1. Seleziona **Esegui comando**.

1. Nell'elenco **Documento sui comandi**, scegli **`AWS-RunRemoteScript`**.

1. In **Parametri di comando**, esegui le seguenti operazioni:
   + In **Source Type** (Tipo di origine), selezionare **GitHub**. 
   + Nella casella **Informazione sull'origine**, inserisci le informazioni necessarie per accedere all'origine nel formato seguente:

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "getOptions": "branch:branch_name",
         "path": "path_to_document",
         "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}"
     }
     ```

     L'esempio seguente esegue il download in una directory di script denominata *complex-script*.

     ```
     {
         "owner": "TestUser1",
         "repository": "SSMTestDocsRepo",
         "getOptions": "branch:myBranch",
         "path": "scripts/python/complex-script",
         "tokenInfo": "{{ssm-secure:myAccessTokenParam}}"
     }
     ```
**Nota**  
`"branch"` è richiesto solo se gli script sono memorizzati in un ramo diverso da `master`.  
Per utilizzare la versione degli script che si trovano in un particolare *commit* nel repository, usa `commitID` con `getOptions` invece di `branch`. Ad esempio:  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + In **Riga di comando**, inserisci i parametri per l'esecuzione di script. Ecco un esempio.

     ```
     mainFile.py argument-1 argument-2
     ```

     Questo esempio esegue `mainFile.py`, che può a sua volta eseguire altri script nella directory `complex-script`.
   + (Facoltativo) In **Directory di lavoro**, inserisci il nome di una directory dell'istanza su cui si desidera scaricare ed eseguire lo script.
   + (Facoltativo) In **Timeout di esecuzione**, specifica il numero di secondi che il sistema dovrà attendere prima di interrompere l'esecuzione del comando di script. 

1. Nella sezione **Destinazioni**, identifica i nodi in cui si desidera eseguire questa operazione specificando i tag, selezionando manualmente le istanze, i dispositivi edge o indicando un gruppo di risorse.
**Suggerimento**  
Se un nodo gestito che ti aspetti di vedere non è presente nell'elenco, consulta [Risoluzione dei problemi relativi alla disponibilità dei nodi gestiti](fleet-manager-troubleshooting-managed-nodes.md) per suggerimenti sulla risoluzione dei problemi.

1. In **Altri parametri**:
   + In **Commento**, digita le informazioni su questo comando.
   + In **Timeout (secondi)**, specifica il numero di secondi che il sistema dovrà attendere prima di generare un errore per l'intera esecuzione del comando. 

1. Per **Controllo velocità**:
   + In **Simultaneità**, specifica un numero o una percentuale di nodi gestiti su cui eseguire contemporaneamente il comando.
**Nota**  
Se hai selezionato le destinazioni specificando i tag applicati ai nodi gestiti o specificando i gruppi di AWS risorse e non sei sicuro del numero di nodi gestiti come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.
   + Per **Soglia di errore**, specificare quando interrompere l'esecuzione del comando sulle altri nodi gestiti dopo un errore su un numero o una percentuale di nodi. Se, ad esempio, si specificano tre errori, Systems Manager interrompe l'invio del comando quando riceve il quarto errore. Anche i nodi gestiti che stanno ancora elaborando il comando potrebbero inviare errori.

1. (Facoltativo) Nella sezione **Opzioni di output**, per salvare l'output del comando in un file, seleziona la casella **Scrivi l'output del comando in un bucket S3**. Digita i nomi del bucket e del prefisso (cartella) nelle caselle.
**Nota**  
Le autorizzazioni S3 che danno la possibilità di scrivere dati in un bucket S3 sono quelle del profilo dell'istanza (per istanze EC2) o del ruolo di servizio IAM (in macchine attivate da sistemi ibridi) assegnate all'istanza, non quelle dell'utente IAM che esegue questo processo. Per ulteriori informazioni, consulta le pagine [Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager](setup-instance-permissions.md) oppure [Creazione di un ruolo di servizio IAM per un ambiente ibrido](hybrid-multicloud-service-role.md). Inoltre, se il bucket S3 specificato si trova su un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

1. Se vuoi che vengano inviate notifiche sullo stato dell'esecuzione del comando, nella sezione **Notifiche SNS** selezionara la casella di controllo **Abilita notifiche SNS**.

   Per ulteriori informazioni sulla configurazione delle notifiche Amazon SNS per Run Command, consulta [Monitoraggio delle modifiche di stato di Systems Manager utilizzando le notifiche Amazon SNS](monitoring-sns-notifications.md).

1. Scegli **Esegui**.

## Esegui uno script Python usando GitHub il AWS CLI
<a name="integration-github-python-cli"></a>

1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

   Per informazioni, consulta la pagina [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Il comando seguente consente di scaricare ed eseguire uno script da GitHub.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "instance-IDs" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"path_to_script_or_directory"}"],"commandLine":["commands_to_run"]}'
   ```

   Ecco un esempio.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
   ```

   Questo esempio prevede il download di una directory di script denominata `complex-script`. La voce `commandLine` esegue `mainFile.py`, che può a sua volta eseguire altri script nella directory `complex-script`.