

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

# Tutorial: Implementa un'applicazione su un'istanza locale con CodeDeploy (Windows Server, Ubuntu Server o Red Hat Enterprise Linux)
<a name="tutorials-on-premises-instance"></a>

Questo tutorial ti aiuta ad acquisire esperienza CodeDeploy guidandoti nella distribuzione di una revisione di un'applicazione di esempio su una singola istanza locale, ovvero un dispositivo fisico che non è un'istanza Amazon EC2, che esegue Windows Server, Ubuntu Server o Red Hat Enterprise Linux (RHEL). Per informazioni sulle istanze locali e su come funzionano, consulta. CodeDeploy [Utilizzo di istanze locali per CodeDeploy](instances-on-premises.md)

Non hai trovato ciò che cerchi?
+ Per fare pratica con la distribuzione su un'istanza Amazon EC2 che esegue Amazon Linux o RHEL, consulta. [Tutorial: Esegui WordPress la distribuzione su un'istanza Amazon EC2 (Amazon Linux o Red Hat Enterprise Linux e Linux, macOS o Unix)](tutorials-wordpress.md)
+ Per fare pratica con la distribuzione su un'istanza Amazon EC2 che esegue Windows Server, consulta. [Tutorial: distribuisci un messaggio «ciao, mondo\$1» applicazione con CodeDeploy (Windows Server)](tutorials-windows.md)

**Topics**
+ [Prerequisiti](tutorials-on-premises-instance-prerequisites.md)
+ [Fase 1: Configurare l'istanza locale](tutorials-on-premises-instance-1-configure-instance.md)
+ [Passaggio 2: creare una revisione di esempio dell'applicazione](tutorials-on-premises-instance-2-create-sample-revision.md)
+ [Fase 3: raggruppa e carica la revisione dell'applicazione su Amazon S3](tutorials-on-premises-instance-3-bundle-sample-revision.md)
+ [Fase 4: Implementa la revisione dell'applicazione](tutorials-on-premises-instance-4-deploy-sample-revision.md)
+ [Passaggio 5: verifica la distribuzione](tutorials-on-premises-instance-5-verify-deployment.md)
+ [Fase 6: eliminare le risorse](tutorials-on-premises-instance-6-clean-up-resources.md)

# Prerequisiti
<a name="tutorials-on-premises-instance-prerequisites"></a>

Prima di iniziare questo tutorial, devi completare i prerequisiti di cui sopra[Guida introduttiva con CodeDeploy](getting-started-codedeploy.md), che includono la configurazione di un utente, l'installazione o l'aggiornamento di e la creazione di un ruolo di servizio AWS CLI. Non è necessario creare un profilo di istanza IAM come descritto nei prerequisiti. Le istanze locali non utilizzano profili di istanza IAM.

Il dispositivo fisico da configurare come istanza locale deve eseguire uno dei sistemi operativi elencati in [Sistemi operativi supportati dall'agente CodeDeploy](codedeploy-agent.md#codedeploy-agent-supported-operating-systems).

# Fase 1: Configurare l'istanza locale
<a name="tutorials-on-premises-instance-1-configure-instance"></a>

Per poter procedere alla distribuzione, occorre innanzitutto configurare l'istanza locale. Segui le istruzioni riportate in [Utilizzo di istanze locali per CodeDeploy](instances-on-premises.md), poi torna a questa pagina.

## Installa l'agente CodeDeploy
<a name="tutorials-on-premises-instance-1-configure-instance-agent"></a>

Dopo aver configurato l'istanza locale, segui i passaggi per le istanze locali in [Installare l' CodeDeploy agente](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html) e torna a questa pagina.

# Passaggio 2: creare una revisione di esempio dell'applicazione
<a name="tutorials-on-premises-instance-2-create-sample-revision"></a>

Questa fase prevede la creazione di una revisione di applicazione esemplificativa da distribuire sull'istanza locale. 

Poiché è difficile sapere quali software e funzionalità sono già installati, o quali sono autorizzati dalle politiche dell'organizzazione, sull'istanza locale, la revisione di esempio dell'applicazione che offriamo qui utilizza semplicemente script batch (per Windows Server) o script di shell (per Ubuntu Server e RHEL) per scrivere file di testo in una posizione sull'istanza locale. Viene scritto un file per ciascuno dei diversi eventi del ciclo di vita della CodeDeploy distribuzione, tra cui **Install **AfterInstall****, **ApplicationStart**, e **ValidateService**. Durante l'evento del ciclo di vita della **BeforeInstall**distribuzione, verrà eseguito uno script per rimuovere i vecchi file scritti durante le distribuzioni precedenti di questo esempio e creare una posizione sull'istanza locale in cui scrivere i nuovi file. 

**Nota**  
La distribuzione di questa revisione di applicazione esemplificativa potrebbe non riuscire in presenza di una delle condizioni seguenti:  
L'utente che avvia l' CodeDeploy agente sull'istanza locale non dispone dell'autorizzazione per eseguire script.
L'utente non dispone dell'autorizzazione per creare o eliminare cartelle nelle posizioni elencate negli script.
L'utente non è autorizzato a creare file di testo nelle posizioni elencate negli script.

**Nota**  
Se hai configurato un'istanza di Windows Server e desideri distribuire un campione diverso, potresti voler utilizzare quello illustrato [Fase 2: configura il contenuto sorgente da distribuire sull'istanza Amazon EC2 di Windows Server](tutorials-windows-configure-content.md) nel [Tutorial: distribuisci un messaggio «ciao, mondo\$1» applicazione con CodeDeploy (Windows Server)](tutorials-windows.md) tutorial.  
Se hai configurato un'istanza RHEL e desideri distribuire un esempio diverso, potresti voler utilizzare quello illustrato [Fase 2: configura il contenuto sorgente da distribuire sull'istanza Amazon Linux o Red Hat Enterprise Linux Amazon EC2](tutorials-wordpress-configure-content.md) nel tutorial. [Tutorial: Esegui WordPress la distribuzione su un'istanza Amazon EC2 (Amazon Linux o Red Hat Enterprise Linux e Linux, macOS o Unix)](tutorials-wordpress.md)  
Al momento, non esiste un esempio alternativo per Ubuntu Server.

1. Nel computer di sviluppo, crea innanzitutto una sottodirectory (sottocartella) denominata `CodeDeployDemo-OnPrem` che archivi i file della revisione di applicazione esemplificativa, poi accedi a tale sottocartella. Per questo esempio, supponiamo che utilizzerai la `c:\temp` cartella come cartella principale per Windows Server o la `/tmp` cartella come cartella principale per Ubuntu Server e RHEL. È possibile utilizzare una cartella diversa, prestando attenzione a sostituirla alla nostra coerentemente nel corso dell'intero tutorial: 

   Per Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem
   cd c:\temp\CodeDeployDemo-OnPrem
   ```

   Per Linux, macOS o Unix:

   ```
   mkdir /tmp/CodeDeployDemo-OnPrem
   cd /tmp/CodeDeployDemo-OnPrem
   ```

1. Nella radice della sottocartella `CodeDeployDemo-OnPrem`, utilizza un editor di testo per creare due file denominati `appspec.yml` e `install.txt`:

   `appspec.yml`per Windows Server:

   ```
   version: 0.0
   os: windows
   files:
     - source: .\install.txt
       destination: c:\temp\CodeDeployExample
   hooks:
     BeforeInstall:
       - location: .\scripts\before-install.bat
         timeout: 900
     AfterInstall:
       - location: .\scripts\after-install.bat     
         timeout: 900
     ApplicationStart:
       - location: .\scripts\application-start.bat  
         timeout: 900
     ValidateService:
       - location: .\scripts\validate-service.bat    
         timeout: 900
   ```

   `appspec.yml`per Ubuntu Server e RHEL:

   ```
   version: 0.0
   os: linux
   files:
     - source: ./install.txt
       destination: /tmp/CodeDeployExample
   hooks:
     BeforeInstall:
       - location: ./scripts/before-install.sh
         timeout: 900
     AfterInstall:
       - location: ./scripts/after-install.sh
         timeout: 900
     ApplicationStart:
       - location: ./scripts/application-start.sh
         timeout: 900
     ValidateService:
       - location: ./scripts/validate-service.sh
         timeout: 900
   ```

   Per ulteriori informazioni sui AppSpec file, vedere [Aggiungere un file di specifiche dell'applicazione a una revisione per CodeDeploy](application-revisions-appspec-file.md) e[CodeDeploy AppSpec riferimento al file](reference-appspec-file.md).

   `install.txt`:

   ```
   The Install deployment lifecycle event successfully completed.
   ```

1. Nella radice della sottocartella `CodeDeployDemo-OnPrem`, crea una sottocartella `scripts` per poi accedervi:

   Per Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem\scripts
   cd c:\temp\CodeDeployDemo-OnPrem\scripts
   ```

   Per Linux, macOS o Unix:

   ```
   mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts
   cd /tmp/CodeDeployDemo-OnPrem/scripts
   ```

1. Nella radice della `scripts` sottocartella, utilizzate un editor di testo per creare quattro file denominati`before-install.bat`,`after-install.bat`,`application-start.bat`, e `validate-service.bat` per Windows Server oppure, `before-install.sh` `after-install.sh``application-start.sh`, e `validate-service.sh` per Ubuntu Server e RHEL:

   Per Windows Server:

   `before-install.bat`:

   ```
   set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample
   
   if exist %FOLDER% (
     rd /s /q "%FOLDER%"
   )
   
   mkdir %FOLDER%
   ```

   `after-install.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt
   ```

   `application-start.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt
   ```

   `validate-service.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt
   ```

   Per Ubuntu Server e RHEL:

   `before-install.sh`:

   ```
   #!/bin/bash
   export FOLDER=/tmp/CodeDeployExample
   
   if [ -d $FOLDER ]
   then
    rm -rf $FOLDER
   fi
   
   mkdir -p $FOLDER
   ```

   `after-install.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt
   ```

   `application-start.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt
   ```

   `validate-service.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt
   
   unset FOLDER
   ```

1. Solo per Ubuntu Server e RHEL, assicurati che i quattro script di shell abbiano i permessi di esecuzione:

   ```
   chmod +x ./scripts/*
   ```

# Fase 3: raggruppa e carica la revisione dell'applicazione su Amazon S3
<a name="tutorials-on-premises-instance-3-bundle-sample-revision"></a>

Prima di poter distribuire la revisione dell'applicazione, dovrai raggruppare i file e quindi caricare il pacchetto di file in un bucket Amazon S3. A tale scopo, segui le istruzioni riportate in [Crea un'applicazione con CodeDeploy](applications-create.md) e [Invia una revisione CodeDeploy ad Amazon S3 (solo distribuzioni EC2/on-premise)](application-revisions-push.md). (Consigliamo di utilizzare i nomi `CodeDeploy-OnPrem-App` per l'applicazione e `CodeDeploy-OnPrem-DG` per il gruppo di distribuzione, nonostante la denominazione sia libera, a discrezione dell'utente.) Dopo avere effettuato quanto riportato nelle istruzioni, torna a questa pagina. 

**Nota**  
In alternativa, puoi caricare il pacchetto di file in un GitHub repository e distribuirlo da lì. Per ulteriori informazioni, consulta [Integrazione con CodeDeploy GitHub](integrations-partners-github.md).

# Fase 4: Implementa la revisione dell'applicazione
<a name="tutorials-on-premises-instance-4-deploy-sample-revision"></a>

Dopo aver caricato la revisione dell'applicazione in un bucket Amazon S3, prova a distribuirla sulla tua istanza locale. Segui le istruzioni riportate in [Crea una distribuzione con CodeDeploy](deployments-create.md), poi torna a questa pagina.

# Passaggio 5: verifica la distribuzione
<a name="tutorials-on-premises-instance-5-verify-deployment"></a>

Per verificare l'avvenuta distribuzione, segui le istruzioni riportate in [Visualizza i dettagli CodeDeploy della distribuzione](deployments-view-details.md), poi torna a questa pagina.

Se la distribuzione ha avuto successo, troverai quattro file di testo nella `c:\temp\CodeDeployExample` cartella (per Windows Server) o `/tmp/CodeDeployExample` (per Ubuntu Server e RHEL). 

Se la distribuzione non riesce, segui le istruzioni per la risoluzione dei problemi riportate in [Visualizza i dettagli dell'istanza con CodeDeploy](instances-view-details.md) e [Risoluzione dei problemi relativi alle istanze](troubleshooting-ec2-instances.md). Apporta quindi le necessarie modifiche correttive, aggrega e carica nuovamente la revisione di applicazione e, infine, ritenta la distribuzione.

# Fase 6: eliminare le risorse
<a name="tutorials-on-premises-instance-6-clean-up-resources"></a>

Per evitare addebiti continui per le risorse che hai creato per questo tutorial, elimina il bucket Amazon S3 se non lo utilizzerai più. Puoi anche pulire le risorse associate, come i record dell'applicazione e del gruppo di distribuzione CodeDeploy e l'istanza locale.

Puoi utilizzare AWS CLI o una combinazione delle console Amazon S3 CodeDeploy e AWS CLI per ripulire le risorse. 

## Risorse di pulizia (CLI)
<a name="tutorials-on-premises-instance-6-clean-up-resources-cli"></a>

**Per eliminare il bucket Amazon S3**
+ Chiamare il comando [rm](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) e l'opzione `--recursive` per il bucket (ad esempio, `amzn-s3-demo-bucket`). Il bucket e tutti gli oggetti in esso contenuti saranno eliminati. 

  ```
  aws s3 rm s3://your-bucket-name --recursive --region region
  ```

**Per eliminare i record dell'applicazione e del gruppo di distribuzione in CodeDeploy**
+ Richiamate il comando [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) sull'applicazione (ad esempio,`CodeDeploy-OnPrem-App`). I record della distribuzione e del gruppo di distribuzione saranno eliminati. 

  ```
  aws deploy delete-application --application-name your-application-name
  ```<a name="tutorials-on-premises-instance-6-clean-up-resources-deregister-cli"></a>

**Per annullare la registrazione dell'istanza locale ed eliminare l'utente IAM**
+ Chiama il comando [deregister](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html) sull'istanza e sulla regione locali:

  ```
  aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region
  ```
**Nota**  
Se non desideri eliminare l'utente IAM associato a questa istanza locale, utilizza invece l'opzione. `--no-delete-iam-user`

**Per disinstallare l' CodeDeploy agente e rimuovere il file di configurazione dall'istanza locale**
+ Dall'istanza locale, chiamate il comando [uninstall](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html):

  ```
  aws deploy uninstall
  ```

A questo punto, la procedura di eliminazione delle risorse impiegate per il tutorial è completa e conclusa.

## Pulisci le risorse (console)
<a name="tutorials-on-premises-instance-6-clean-up-resources-console"></a>

**Per eliminare il bucket Amazon S3**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Selezionare l'icona posta accanto al bucket da eliminare (ad esempio, `amzn-s3-demo-bucket`), ma non selezionare il bucket stesso.

1. Scegli **Azioni**, quindi **Elimina**. 

1. Quando viene richiesto di eliminare il bucket, scegliere **OK (OK)**. 

**Per eliminare i record dell'applicazione e del gruppo di distribuzione in CodeDeploy**

1. Accedi Console di gestione AWS e apri la CodeDeploy console all'indirizzo [https://console.aws.amazon.com/codedeploy.](https://console.aws.amazon.com/codedeploy)
**Nota**  
Accedi con lo stesso utente con cui hai effettuato la configurazione. [Guida introduttiva con CodeDeploy](getting-started-codedeploy.md)

1. Nel riquadro di navigazione, scegliere **Applications (Applicazioni)**.

1. Scegliere il nome dell'applicazione che si desidera eliminare (ad esempio, `CodeDeploy-OnPrem-App`), quindi selezionare **Delete (Elimina)**.

1. Quando richiesto, digitare il nome dell'applicazione per confermare che si desidera eliminarla, quindi scegliere **Delete (Elimina)**. 

Non è possibile utilizzare la AWS CodeDeploy console per annullare la registrazione dell'istanza locale o disinstallare l'agente. CodeDeploy Segui le istruzioni in [Per annullare la registrazione dell'istanza locale ed eliminare l'utente IAM](#tutorials-on-premises-instance-6-clean-up-resources-deregister-cli).