Come posso utilizzare i dati utente per eseguire automaticamente uno script a ogni riavvio della mia istanza Linux Amazon EC2?
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:
- L'arresto e l'avvio dell'istanza cancellano tutti i dati sui volumi dell'archivio dell’istanza. Assicurati di eseguire il backup di tutti i dati sui volumi di archivio dell’istanza che desideri conservare. Per ulteriori informazioni, consultaDeterminare il tipo di dispositivo root dell’AMI.
- Se l'istanza EC2 ha un indirizzo IPv4 pubblico assegnato automaticamente, l'arresto e l'avvio dell'istanza causano la modifica dell'indirizzo IPv4. Se hai bisogno che l'istanza disponga di un indirizzo IPv4 pubblico statico, prendi in considerazione l'utilizzo di un indirizzo IP elastico. Gli indirizzi IP elastici persistono dopo l'arresto e l'avvio di un'istanza.
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.
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
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata un anno fa