Utilisation de cloud-init sur AL2 - Amazon Linux 2

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de cloud-init sur AL2

Le package cloud-init est une application open source créée par Canonical qui est utilisée pour démarrer des images Linux dans un environnement de cloud computing, tel qu'Amazon. EC2 Amazon Linux contient une version personnalisée de cloud-init. Cela vous permet de spécifier les actions qui doivent être exécutées sur votre instance au moment du démarrage. Vous pouvez transmettre les actions souhaitées à cloud-init via les champs de données utilisateur lors du lancement d’une instance. Cela signifie que vous pouvez utiliser Common AMIs pour de nombreux cas d'utilisation et les configurer dynamiquement au démarrage. Amazon Linux utilise aussi cloud-init pour effectuer une configuration initiale du compte utilisateur ec2-user.

Pour plus d’informations, consultez la documentation cloud-init.

Amazon Linux utilise les actions cloud-init trouvées dans /etc/cloud/cloud.cfg.d et /etc/cloud/cloud.cfg. Vous pouvez créer vos propres fichiers d’actions cloud-init dans /etc/cloud/cloud.cfg.d. Tous les fichiers dans ce répertoire sont lus par cloud-init. Ils sont lus en ordre lexical, et les fichiers plus récents remplacent les valeurs des fichiers plus anciens.

Le package cloud-init effectue des tâches de configuration communes (et d’autres tâches) pour les instances au démarrage :

  • Définir les paramètres régionaux par défaut.

  • Définir le nom d’hôte.

  • Analyser et gérer les données utilisateur.

  • Générer des clés SSH privées d’hôte.

  • Ajouter des clés SSH publiques d’utilisateur à .ssh/authorized_keys pour une connexion et une administration faciles.

  • Préparer les référentiels pour la gestion des packages.

  • Gérer les actions de package définies dans les données utilisateur.

  • Exécutez les scripts utilisateur trouvés dans les données utilisateur.

  • Monter les volumes de stockage d’instance, le cas échéant.

    • Par défaut, le volume de stockage d’instance ephemeral0 est monté sur /media/ephemeral0 s’il est présent et contient un système de fichiers valide ; sinon, il n’est pas monté.

    • Par défaut, les volumes d’échange associés à l’instance sont montés (uniquement pour les types d’instance m1.small et c1.medium).

    • Vous pouvez remplacer le montage de volume de stockage d’instance par défaut avec la directive cloud-init suivante :

      #cloud-config mounts: - [ ephemeral0 ]

      Pour plus de contrôle sur les montages, consultez Mounts dans la documentation cloud-init.

    • Les volumes de stockage d’instance qui prennent en charge la commande TRIM ne sont pas formatés au lancement de l’instance. Vous devez donc les partitionner et les formater pour pouvoir les monter et les utiliser. Pour plus d'informations, consultez la section Prise en TRIMcharge du volume de stockage d'instance. Vous pouvez utiliser le module disk_setup pour partitionner et formater vos volumes de stockage d’instance au démarrage. Pour plus d’informations, consultez Disk Setup dans la documentation cloud-init.

Formats de données utilisateur pris en charge

Le package cloud-init prend en charge le traitement des données utilisateur sous différents formats :

  • Gzip

    • Si les données utilisateur sont compressées au format gzip, cloud-init les décompresse et les gère de manière appropriée.

  • Fichier MIME en plusieurs parties

    • En utilisant un fichier MIME en plusieurs parties, vous pouvez spécifier plus d’un type de données. Par exemple, vous pouvez spécifier à la fois un script de données utilisateur et un type de configuration cloud. Chaque partie de ce fichier peut être traitée par cloud-init s’il s’agit d’un des formats pris en charge.

  • Décodage Base64

    • Si les données utilisateur sont codées en base64, cloud-init détermine s'il peut comprendre les données décodées comme l'un des types pris en charge. S’il comprend les données décodées, il décode les données et les gère de façon appropriée. Si non, il renvoie les données base64 intactes.

  • Script de données utilisateur

    • Commence par #! ou Content-Type: text/x-shellscript.

    • Le script est exécuté par /etc/init.d/cloud-init-user-scripts pendant le premier cycle de démarrage. Cela se produit tard dans le processus de démarrage (après l’exécution des actions de configuration initiales).

  • Fichier d’inclusion

    • Commence par #include ou Content-Type: text/x-include-url.

    • Ce contenu est un fichier d’inclusion. Le fichier contient une liste de URLs, une par ligne. Chacun d'entre eux URLs est lu et leur contenu est soumis à ce même ensemble de règles. Le contenu lu à partir de l'URL peut être compressé au format gzip ou MIME-multi-part en texte brut.

  • Données de configuration du cloud

    • Commence par #cloud-config ou Content-Type: text/cloud-config.

    • Ce contenu est constitué de données de configuration du cloud.

  • Tâche initiale (non prise en charge sur AL2)

    • Commence par #upstart-job ou Content-Type: text/upstart-job.

    • Ce contenu est stocké dans un fichier dans/etc/init, et upstart consomme le contenu comme c'est le cas pour les autres tâches de démarrage.

  • Crochet en forme de cloud

    • Commence par #cloud-boothook ou Content-Type: text/cloud-boothook.

    • Ce contenu correspond aux données boothook. Il est stocké dans un fichier sous /var/lib/cloud, puis exécuté immédiatement.

    • Il s’agit du hook le plus récent disponible. Il n’existe aucun mécanisme proposé pour l’exécuter seulement une fois. Le boothook doit s’en occuper lui-même. Il est fourni avec l’ID d’instance dans la variable d’environnement INSTANCE_ID. Utilisez cette variable pour fournir un once-per-instance ensemble de données de démarrage.