Environnement invité


Lorsque vous démarrez une instance de machine virtuelle (VM) à l'aide d'images publiques fournies par Google, un environnement invité est automatiquement installé sur l'instance de VM. L'environnement invité est un ensemble de scripts, de daemons et de binaires qui lisent le contenu du serveur de métadonnées pour que la VM s'exécute correctement sur Compute Engine. Un serveur de métadonnées est un canal de communication permettant de transférer des informations d'un client au système d'exploitation invité.

Ce document présente les composants de l'environnement invité et les systèmes d'exploitation compatibles, et explique comment installer et mettre à jour manuellement l'environnement invité.

Quand installer ou mettre à jour manuellement l'environnement invité

Les instances de VM créées à l'aide d'images publiques fournies par Google incluent un environnement invité qui est installé par défaut.

Suivez la procédure Valider l'environnement invité pour vérifier si celui-ci est en cours d'exécution sur votre instance.

Dans certains cas, l'environnement invité installé peut devenir obsolète. Si l'environnement invité est disponible sur votre instance, mais qu'il est obsolète, mettez-le à jour.

Dans le cas contraire, vous devrez peut-être installer manuellement l'environnement invité dans les conditions suivantes :

  • Vous importez une image personnalisée ou un disque virtuel sur la plate-forme Compute Engine, et vous choisissez de ne pas autoriser l'installation automatique de l'environnement invité.

    Lorsque vous importez des disques virtuels ou des images personnalisées, vous pouvez autoriser Compute Engine à installer l'environnement invité pour vous. Toutefois, si vous décidez de ne pas installer l'environnement invité pendant le processus d'importation, vous devez suivre la procédure manuelle pour installer l'environnement invité.

  • Vous effectuez la migration de VM vers Compute Engine à l'aide de Migrate to Virtual Machines.

  • Vous utilisez une image qui ne dispose pas des optimisations d'environnement invité pour le SSD local.

  • Vous disposez d'instances qui utilisent une image antérieure à la version v20141218.

Si vous devez installer manuellement l'environnement invité, consultez la section Installer l'environnement invité.

Systèmes d'exploitation compatibles

Chaque système d'exploitation compatible disponible sur Compute Engine nécessite des packages d'environnement invité spécifiques. Ces packages sont mis à disposition par Google ou par le propriétaire du système d'exploitation. Pour en savoir plus sur la création des packages d'environnement invité, consultez les sections "Différences notables par rapport aux images standards" du document Détails du système d'exploitation.

Environnement invité Linux

Que l'environnement invité Linux soit créé par Google ou par le propriétaire du système d'exploitation, certains composants clés sont applicables à toutes les générations.

Les composants de base d'un environnement invité Linux sont fournis sous la forme de packages deb ou rpm créés avec les configurations appropriées pour les distributions compatibles.

Vous trouverez ci-dessous un récapitulatif des principaux scripts, daemons et packages composant l'environnement invité Linux :

  • Le package google-compute-engine contient les composants suivants :

    • Scripts d'initialisation système pour systemd.
    • Configurations système, telles que les règles udev et sysctl, et les configurations rsyslog et dhcp, utilisées pour définir le nom d'hôte.
    • Scripts Bash exécutés au démarrage de l'instance.

    Ce package dépend des packages google-guest-agent et google-compute-engine-oslogin.

    Pour examiner le code source de ce package, consultez la section guest-configs sur GitHub.

  • Le package google-guest-agent contient l'exécutable de l'agent invité et des scripts de métadonnées qui s'exécutent sur le système d'exploitation invité pour assurer la compatibilité avec les fonctionnalités de Compute Engine. Ces fonctionnalités incluent la gestion des comptes, l'intégration d'OS Login, les variations d'horloge, la gestion des interfaces réseau et la configuration d'instance.

    L'agent invité Linux communique avec les services Compute Engine comme suit :

    Pour examiner le code source de ce package, consultez la section guest-agent sur GitHub.

  • Le package google-compute-engine-oslogin contient les fichiers binaires, les modules et les scripts pour OS Login. Vous pouvez utiliser OS Login pour gérer l'accès aux instances de VM à l'aide des rôles IAM (Identity and Access Management).

    Le package comprend les éléments suivants :

    • La commande "Authorized Keys", qui fournit les clés SSH issues du profil OS Login de l'utilisateur afin d'utiliser sshd pour authentifier les utilisateurs lors de la connexion.
    • Les modules NSS (Name Service Switch), qui permettent de mettre à la disposition du système les informations relatives aux utilisateurs et aux groupes d'OS Login.
    • Les PAM (Pluggable Authentication Modules), qui permettent la prise en charge de l'autorisation (et de l'authentification si la prise en charge à deux facteurs est activée) autorisant le système à utiliser les autorisations Google Cloud IAM pour contrôler la capacité à se connecter à une instance ou à effectuer des opérations en tant que racine (via sudo).
    • google_oslogin_nss_cache, qui est un utilitaire permettant de mettre à jour le cache des utilisateurs et des groupes locaux.
    • Le script shell google_oslogin_control active ou désactive les fonctionnalités d'OS Login.
    • selinux contient les fichiers de définition de règles SELinux et un package de règles compilé pour configurer SELinux de manière à prendre en charge OS Login.

    Les composants d'OS Login communiquent avec les services Compute Engine comme suit :

    Pour examiner le code source de ce package, consultez la section guest-oslogin sur GitHub.

  • Les composants gce-disk-expand communiquent avec les services Compute Engine comme suit :

    • Ils envoient des journaux au port série.

    Pour examiner le code source de ce package, consultez la section guest-diskexpand sur GitHub.

  • Le package google-osconfig-agent contient l'agent OS Config utilisé pour OS Inventory Management, OS Patch Management et OS Configuration Management à l'aide de VM Manager.

    Les scripts communiquent avec les services Compute Engine comme suit :

    Pour examiner le code source de cet agent, consultez la section osconfig sur GitHub.

L'environnement invité Windows

La liste suivante récapitule les packages faisant partie de l'environnement invité Windows :

  • Le package google-compute-engine-windows contient l'agent invité Windows qui permet de créer des comptes utilisateur locaux et de définir et réinitialiser des mots de passe, ainsi que de configurer l'interface réseau et fournir la compatibilité avec le cluster de basculement Windows.

    L'agent invité Windows communique avec les services Compute Engine comme suit :

    • Il lit et écrit des données dans les métadonnées de VM
    • Il envoie des journaux au journal des événements de l'application de Windows, au port série et à Cloud Logging.

    Pour examiner le code source de cet agent, consultez la section guest-agent sur GitHub.

  • Le package google-compute-engine-sysprep contient des scripts destinés à la généralisation d'une instance Windows en vue de la création d'une image. Le package inclut également le script instance_setup.ps1, utilisé au premier démarrage pour configurer la nouvelle instance.

    Les scripts communiquent avec les services Compute Engine comme suit :

    • Ils lisent et écrivent des données dans les métadonnées de VM
    • Ils envoient des journaux au journal des événements de l'application de Windows et au port série.

    Pour examiner le code source de cet agent, consultez la section compute-image-windows sur GitHub.

  • Le package google-compute-engine-metadata-scripts contient les scripts et les fichiers binaires utilisés pour exécuter les scripts Compute Engine, sysprep-specialize, startup et shutdown.

    Les scripts communiquent avec les services Compute Engine comme suit :

    • Ils lisent et écrivent des données dans les métadonnées de VM.
    • Ils lisent à partir des emplacements Cloud Storage lorsque sysprep-specialize-script-url et windows-startup-script-url sont utilisés.
    • Ils envoient des journaux au journal des événements de l'application de Windows, au port série et à Cloud Logging.

    Pour examiner le code source de cet agent, consultez la section compute-image-windows sur GitHub.

  • Le package google-compute-engine-powershell contient un module PowerShell. Ce module contient des fonctions courantes utilisées par les scripts PowerShell dans les autres scripts d'environnement invité Windows.

    Les scripts communiquent avec les services Compute Engine suivants :

    • Par défaut, la fonction de journalisation du module PowerShell envoie les journaux au journal des événements de l'application de Windows et au port série.

    Pour examiner le code source de cet agent, consultez la section compute-image-windows sur GitHub.

  • Le package google-compute-engine-auto-updater contient les scripts utilisés pour mettre à jour quotidiennement les packages Compute Engine. Ce package n'est plus installé par défaut.

    Les scripts communiquent avec les services Compute Engine comme suit :

    • Ils lisent les données des métadonnées de VM.
    • Ils appellent l'agent GooGet pour envoyer des journaux au journal des événements de l'application de Windows et à la console.

    Pour examiner le code source de cet agent, consultez la section compute-image-windows sur GitHub.

  • Le package google-compute-engine-diagnostics contient un binaire utilisé pour obtenir des informations de diagnostic depuis l'instance et les enregistre dans un bucket Cloud Storage. Le binaire est exécuté par l'agent invité Windows.

    Les scripts communiquent avec les services Compute Engine comme suit :

    • Ils enregistrent les données dans un bucket Cloud Storage.

    Pour examiner le code source de cet agent, consultez la section compute-image-tools sur GitHub.

  • Le package certgen contient un binaire qui crée un certificat sur l'instance.

    Pour examiner le code source de cet agent, consultez la section compute-image-windows sur GitHub.

  • Le package googet contient un binaire qui est un gestionnaire de packages utilisé pour installer et gérer l'environnement invité.

    Les scripts communiquent avec les services Compute Engine comme suit :

    Pour examiner le code source de cet agent, consultez la section googet sur GitHub.

  • Le package google-compute-engine-vss installe l'agent et le fournisseur VSS de Compute Engine utilisés pour capturer un instantané de disque persistant en utilisant le service VSS (Volume Shadow Copy Service) de Microsoft.

    Les scripts communiquent avec les services Compute Engine comme suit :

    • Ils communiquent avec le service d'instantané Google Cloud.

    Pour examiner le code source de cet agent, consultez la section compute-image-windows sur GitHub.

  • Le package google-osconfig-agent contient l'agent OS Config utilisé pour OS Inventory Management, OS Patch Management et OS Configuration Management à l'aide de VM Manager.

    Les scripts communiquent avec les services Compute Engine comme suit :

    Pour examiner le code source de cet agent, consultez la section osconfig sur GitHub.

Pilotes Compute Engine pour Windows

Les pilotes Compute Engine suivants sont gérés pour les images Windows :

Type de pilote Nom du package
Adaptateur Ethernet google-compute-engine-driver-netkvm
Disque SCSI google-compute-engine-driver-vioscsi
Carte vidéo google-compute-engine-driver-gga
Gestionnaire de plantage google-compute-engine-driver-pvpanic

Chaque pilote est empaqueté à l'aide de GooGet et publié dans les dépôts Google Cloud. Le code source des pilotes se trouve à la section compute-windows-drivers sur GitHub. Toutes les images Windows Google Cloud sont préconfigurées avec l'outil GooGet et les dépôts Google Cloud. Si vous devez installer GooGet et configurer vous-même des dépôts, consultez la section Packaging et distribution de packages.

Pour installer ou mettre à niveau un pilote spécifique, exécutez la commande suivante :

googet install DRIVER_PACKAGE_NAME

Étape suivante

Pour obtenir des instructions détaillées concernant l'installation de l'environnement invité, consultez la section Installer l'environnement invité.