Utilizzo di cloud-init su AL2 - Amazon Linux 2

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

Utilizzo di cloud-init su AL2

Il pacchetto cloud-init è un'applicazione open source creata da Canonical che viene utilizzata per avviare le immagini Linux in un ambiente di cloud computing, come Amazon. EC2 Amazon Linux include una versione personalizzata di cloud-init. Ciò consente di specificare le azioni che devono essere eseguite sull'istanza al momento dell'avvio. Puoi passare le operazioni desiderate al pacchetto cloud-init tramite i campi di dati utente all'avvio di un'istanza. Ciò significa che puoi utilizzare Common AMIs per molti casi d'uso e configurarli dinamicamente all'avvio. Amazon Linux utilizza inoltre cloud-init per eseguire la configurazione iniziale dell'account ec2-user.

Per ulteriori informazioni, consulta la documentazione cloud-init.

Amazon Linux utilizza le operazioni del pacchetto cloud-init disponibili in /etc/cloud/cloud.cfg.d e /etc/cloud/cloud.cfg. Puoi creare file di operazioni cloud-init personalizzati in /etc/cloud/cloud.cfg.d. Tutti i file presenti in questa directory vengono letti da cloud-init. Vengono letti in ordine alfabetico e i file più recenti sovrascrivono i valori dei file meno recenti.

Il pacchetto cloud-init esegue le seguenti attività di configurazione comuni e molte altre in fase di avvio:

  • Impostare la lingua locale di default.

  • Impostare il nome host.

  • Analizzare e gestire i dati utente.

  • Generare chiavi SSH private host.

  • Aggiungere le chiavi SSH pubbliche di un utente a .ssh/authorized_keys per semplificare le procedure di login e amministrazione.

  • Preparare gli archivi per la gestione dei pacchetti.

  • Gestire le operazioni dei pacchetti definite nei dati utente.

  • Esegui gli script utente presenti nei dati utente.

  • Montare i volumi di instance store, se applicabile.

    • Per impostazione di default, il volume di instance store ephemeral0 viene montato in /media/ephemeral0, se presente, e include un file system valido. In caso contrario, non viene montato.

    • Per impostazione di default, vengono montati i volumi di swap associati all'istanza (solo per i tipi di istanza m1.small e c1.medium).

    • Puoi sostituire il montaggio del volume di instance store di default con la seguente direttiva cloud-init:

      #cloud-config mounts: - [ ephemeral0 ]

      Per un maggiore controllo sui montaggi, consulta la sezione relativa al modulo Mounts nella documentazione di cloud-init.

    • I volumi di instance store che supportano TRIM non vengono formattati quando viene avviata un'istanza. Pertanto, devi eseguire la partizione e la formattazione di tali volumi prima di poterli montare. Per ulteriori informazioni, consulta Instance Store Volume TRIM Support. Puoi utilizzare il modulo disk_setup per eseguire la partizione e la formattazione dei volumi di instance store all'avvio. Per ulteriori informazioni, consulta la sezione relativa al modulo Disk Setup nella documentazione di cloud-init.

Formati di dati utente supportati

Il pacchetto cloud-init supporta la gestione dei dati utente in una varietà di formati:

  • Gzip

    • Se i dati utente sono compressi con gzip, cloud-init li decomprime e li gestisce in modo appropriato.

  • MIME multipart

    • L'utilizzo di un file in formato MIME multipart ti consente di specificare più di un tipo di dati. Ad esempio, puoi specificare sia uno script di dati utente che un tipo di configurazione cloud. Ogni parte di un file in formato multipart può essere gestita da cloud-init se è uno dei formati supportati.

  • Decodifica Base64

    • Se i dati utente sono codificati in base 64, cloud-init determina se è in grado di comprendere i dati decodificati come uno dei tipi supportati. Se è in grado di interpretare i dati decodificati, decodificherà i dati e li gestirà in modo appropriato. In caso contrario, restituirà i dati Base64 invariati.

  • Script di dati utente

    • Inizia per #! o Content-Type: text/x-shellscript.

    • Lo script viene eseguito da /etc/init.d/cloud-init-user-scripts durante il primo ciclo di avvio. Ciò si verifica in una fase avanzata del processo di avvio, ovvero dopo l'esecuzione delle operazioni di configurazione iniziale.

  • File di inclusione

    • Inizia per #include o Content-Type: text/x-include-url.

    • Questo contenuto è un file di inclusione. Il file contiene un elenco di, uno per riga. URLs Ciascuno di essi URLs viene letto e il relativo contenuto viene passato attraverso lo stesso insieme di regole. Il contenuto letto dall'URL può essere compresso con gzip o in testo MIME-multi-part semplice.

  • Dati di configurazione del cloud

    • Inizia per #cloud-config o Content-Type: text/cloud-config.

    • Questo contenuto è costituito da dati di configurazione cloud.

  • Upstart job (non supportato su) AL2

    • Inizia per #upstart-job o Content-Type: text/upstart-job.

    • Questo contenuto è archiviato in un file in /etc/init e upstart lo utilizza come fa con altri lavori upstart.

  • Cloud Boothook

    • Inizia per #cloud-boothook o Content-Type: text/cloud-boothook.

    • Questo contenuto fa riferimento ai dati boothook. Viene memorizzato in un file in /var/lib/cloud e quindi eseguito immediatamente.

    • Si tratta dell'hook meno recente disponibile. Non è disponibile alcun meccanismo per eseguirlo solo una volta. Il boothook deve gestire questa situazione in autonomia. Viene fornito con l'ID istanza nella variabile di ambiente INSTANCE_ID. Usa questa variabile per fornire un once-per-instance set di dati boothook.