Come posso utilizzare i dati utente per eseguire automaticamente uno script a ogni riavvio della mia istanza Linux Amazon EC2?

3 minuti di lettura
0

Desidero utilizzare i dati degli utenti per eseguire uno script ogni volta che la mia istanza Amazon Elastic Compute Cloud (Amazon EC2) viene riavviata. Come posso farlo?

Breve descrizione

Per impostazione predefinita, gli script dei dati utente e le direttive cloud-init vengono eseguiti solo durante il primo ciclo di avvio quando viene avviata un'istanza EC2. Tuttavia, puoi configurare lo script dei dati utente e le direttive cloud-init con un file MIME multipart. Un file MIME multipart consente allo script di sovrascrivere la frequenza con cui i dati utente vengono eseguiti nel pacchetto cloud-init. Quindi, il file esegue lo script utente. Per ulteriori informazioni sui file MIME multipart, consulta Archivio Mime multipart sul sito cloud-init.

**Nota:**È consigliabile creare uno snapshot dell'istanza prima di procedere con la seguente risoluzione.

Risoluzione

**Avvertenza:**Prima di iniziare questa procedura, verifica quanto segue:

1.    Assicurati che la versione più recente di cloud-init sia installata e funzioni correttamente sulla tua istanza EC2.

2.    Per motivi di sicurezza, crea una policy IAM per limitare gli utenti autorizzati ad aggiungere o rimuovere dati utente tramite l'API ModifyInstanceAttribute.

3.    Apri la console Amazon EC2.

4.    Interrompi la tua istanza.

5.    Scegli Azioni, scegli Impostazioni istanza, quindi scegli Modifica dati utente.

6.    Copia lo script utente nella casella Modifica dati utente, quindi scegli Salva.

L'esempio seguente è uno script di shell che scrive "Hello World" in un file testfile.txt in una directory /tmp.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "Hello World" >> /tmp/testfile.txt
--//--

Per impostazione predefinita, cloud-init consente un solo tipo di contenuto nei dati utente alla volta. Tuttavia, questo esempio mostra sia i tipi di contenuto text/cloud-config sia text/x-shellscript in un file MIME multipart.

Il tipo di contenuto text/cloud-config sostituisce la frequenza con cui i dati utente vengono eseguiti nel pacchetto cloud-init impostando il parametro SCRIPTS-USER su ALWAYS.

Il tipo di contenuto text/x-shellscript fornisce lo script utente effettivo che deve essere eseguito dal modulo cloud_final_modules. In questo esempio, c'è solo una riga da eseguire, che è /bin/echo "Hello World." >> /tmp/testfile.txt.

**Nota:**Sostituisci la riga /bin/echo "Hello World." >> /tmp/testfile.txt con lo script shell che si desidera eseguire durante l'avvio dell'istanza.

7.    Avvia nuovamente l'istanza EC2 e verifica che lo script venga eseguito correttamente.


Informazioni correlate

Esegui comandi sulla tua istanza Linux all'avvio

Esegui comandi sulla tua istanza Windows all'avvio

Automazione di AWS Systems Manager

Formati di dati utente

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa