Uso de cloud-init en AL2 - Amazon Linux 2

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de cloud-init en AL2

El paquete cloud-init es una aplicación de código abierto creada por Canonical que se utiliza para arrancar imágenes de Linux en un entorno de computación en la nube, como Amazon. EC2 Amazon Linux contiene una versión personalizada de cloud-init. Esto te permite especificar las acciones que se deben realizar en la instancia en el momento del arranque. Puede transferir las acciones deseadas a cloud-init mediante los campos de datos de usuario al iniciar una instancia. Esto significa que puedes usar lo común AMIs para muchos casos de uso y configurarlos dinámicamente al inicio. Amazon Linux también utiliza cloud-init para realizar la configuración inicial de la cuenta ec2-user.

Para obtener más información, consulte la documentación de cloud-init.

Amazon Linux utiliza las acciones de cloud-init que se encuentran en /etc/cloud/cloud.cfg.d y en /etc/cloud/cloud.cfg. Puede crear sus propios archivos de acción de cloud-init en /etc/cloud/cloud.cfg.d. cloud-init lee todos los archivos de este directorio. Se leen en orden léxico y los archivos posteriores sobrescriben los valores en los archivos anteriores.

El paquete cloud-init realiza estas y otras tareas de configuración habituales en las instancias al arrancar:

  • Ajustar la configuración regional predeterminada.

  • Ajustar el nombre de host.

  • Analizar y administrar los datos de usuario.

  • Generar claves de SSH privadas de host.

  • Añadir las claves SSH públicas del usuario a .ssh/authorized_keys para facilitar el inicio de sesión y la administración.

  • Preparar los repositorios para la administración de paquetes.

  • Controlar acciones de paquetes definidas en los datos de usuario.

  • Ejecute los scripts de usuario que se encuentran en los datos de usuario.

  • Montar volúmenes de almacén de instancias si es preciso.

    • De forma predeterminada, el volumen de almacén de instancia ephemeral0 se monta en /media/ephemeral0 si está presente y contiene un sistema de archivos válido; de lo contrario, no se monta.

    • De forma predeterminada, cualquier volumen de intercambio asociado a la instancia se monta (solo para los tipos de instancias m1.small y c1.medium).

    • Puede anular el montaje del volumen de almacén de instancias predeterminado con la siguiente directiva de cloud-init:

      #cloud-config mounts: - [ ephemeral0 ]

      Para obtener más control sobre los montajes, consulte Mounts en la documentación de cloud-init.

    • Los volúmenes de almacén de instancias que admiten TRIM no están formateados cuando se inicia una instancia, por lo que debe dividirlos y formatearlos antes de poder montarlos. Para obtener más información, consulte TRIMCompatibilidad con el volumen de almacenes de instancias. Puede utilizar el módulo disk_setup para dividir y formatear los volúmenes de almacén de instancias en el arranque. Para obtener más información, consulte Disk Setup en la documentación de cloud-init.

Formatos de datos de usuario compatibles

El paquete cloud-init admite el manejo de datos de usuario en una variedad de formatos:

  • Gzip

    • Si los datos del usuario están comprimidos con gzip, cloud-init los descomprime y los gestiona de forma adecuada.

  • Multiparte MIME

    • Al utilizar un archivo multiparte MIME, puede especificar más de un tipo de datos. Por ejemplo, puedes especificar un script de datos de usuario y un tipo de configuración de nube. cloud-init puede administrar cada parte del archivo multiparte si se encuentra en uno de los formatos admitidos.

  • Descodificación Base64

    • Si los datos de usuario están codificados en base64, cloud-init determina si puede entender los datos decodificados como uno de los tipos admitidos. Si comprende los datos descodificados, los administra del modo adecuado. De lo contrario, devuelve los datos base64 intactos.

  • Script de datos de usuario

    • Comienza con #! o Content-Type: text/x-shellscript.

    • /etc/init.d/cloud-init-user-scripts ejecuta el script durante el primer ciclo de arranque. Esto se produce en la fase posterior del proceso de arranque (una vez que se han realizado las acciones de configuración iniciales).

  • Archivo include

    • Comienza con #include o Content-Type: text/x-include-url.

    • Este contenido es un archivo include. El archivo contiene una lista de, uno por línea. URLs Cada uno de ellos URLs se lee y su contenido pasa por el mismo conjunto de reglas. El contenido leído desde la URL puede estar comprimido con gzip o ser texto MIME-multi-part sin formato.

  • Datos de configuración en la nube

    • Comienza con #cloud-config o Content-Type: text/cloud-config.

    • Este contenido son datos de configuración de la nube.

  • Upstart job (no compatible con) AL2

    • Comienza con #upstart-job o Content-Type: text/upstart-job.

    • Este contenido se almacena en un archivo en /etc/init y upstart lo consume como lo hace con otros trabajos de upstart.

  • Libro de apuntes en la nube

    • Comienza con #cloud-boothook o Content-Type: text/cloud-boothook.

    • Este contenido son datos de boothook. Se almacena en un archivo en /var/lib/cloud y, a continuación, se ejecuta de inmediato.

    • Este es el primer hook disponible. No se ofrece ningún mecanismo para ejecutarlo solo una vez. El boothook debe ocuparse de sí mismo. Se proporciona con el ID de instancia en la variable de entorno INSTANCE_ID. Usa esta variable para proporcionar un once-per-instance conjunto de datos de boothook.