¿Cómo puedo utilizar los datos del usuario para ejecutar automáticamente un script con cada reinicio de mi instancia de Amazon EC2 Linux?

4 minutos de lectura
0

Quiero utilizar los datos del usuario para ejecutar un script cada vez que se reinicie mi instancia de Amazon Elastic Compute Cloud (Amazon EC2). ¿Cómo puedo hacerlo?

Descripción corta

De forma predeterminada, los scripts de datos de usuario y las directivas de inicio en la nube solo se ejecutan durante el primer ciclo de arranque cuando se lanza una instancia de EC2. Sin embargo, puede configurar el script de datos de usuario y las directivas de inicio en la nube con un archivo MIME de varias partes. Un archivo MIME de varias partes permite que el script anule la frecuencia con la que se ejecutan los datos de usuario en el paquete cloud-init. A continuación, el archivo ejecuta el script de usuario. Para obtener más información sobre los archivos de varias partes de Mime, consulte Archivo de varias partes de Mime en el sitio web cloud-init.

**Nota:**Se recomienda crear una instantánea de la instancia antes de continuar con la siguiente resolución.

Resolución

**Advertencia:**Antes de iniciar este procedimiento, revise lo siguiente:

1.    Asegúrese de que la versión más reciente de cloud-init esté instalada y funcione correctamente en su instancia de EC2.

2.    Por razones de seguridad cree una política IAM para restringir a los usuarios para que no puedan añadir o eliminar datos de usuario a través de user data de la ](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html) API [ModifyInstanceAttribute.

3.    Abra la consola de Amazon EC2.

4.    Detenga su instancia.

5.    Elija Acciones, elija Configuración de instancia, y, a continuación, elija Editar datos de usuario.

6.    Copie el script de usuario en el cuadro Editar datos de usuario y, a continuación, seleccione Guardar.

El siguiente ejemplo es un script de shell que escribe «Hello World» en un archivo testfile.txt del directorio /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
--//--

De forma predeterminada, cloud-init solo permite un tipo de contenido en los datos de usuario a la vez. Sin embargo, este ejemplo muestra los tipos de contenido text/cloud-config y text/x-shellscript en un archivo MIME de varias partes.

El tipo de contenido text/cloud-config anula la frecuencia con la que se ejecutan los datos de usuario en el paquete cloud-init al establecer el parámetro SCRIPTS-USER en ALWAYS.

El tipo de contenido text/x-shellscript proporciona el script de usuario real que ejecutará el módulo cloud-init cloud\ _final\ _modules. En este ejemplo, solo hay que ejecutar una línea, que es /bin/echo «Hello World». «>> /tmp/testfile.txt.

Nota: Reemplace la línea /bin/echo «Hello World». «>> /tmp/testfile.txt con el script de shell que quieres ejecutar durante el arranque de la instancia.

7.    Vuelva a iniciar la instancia de EC2 y compruebe que el script se ejecute correctamente.


Información relacionada

Ejecute comandos en su instancia de Linux en el momento del lanzamiento

Ejecute comandos en su instancia de Windows en el momento del lanzamiento

Automatización de AWS Systems Manager

Formatos de datos de usuario

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años