Skip to main content

À propos des exécuteurs auto-hébergés

Vous pouvez héberger vos propres exécuteurs et personnaliser l’environnement utilisé pour exécuter les travaux dans vos workflows GitHub Actions.

À propos des exécuteurs auto-hébergés

Un exécuteur auto-hébergé est un système que vous déployez et gérez pour exécuter des travaux à partir de GitHub Actions sur GitHub Enterprise Cloud. Pour plus d’informations sur GitHub Actions, consultez « Présentation de GitHub Actions » et « À propos de GitHub Actions pour les entreprises».

Les exécuteurs auto-hébergés offrent plus de contrôle sur le matériel, le système d’exploitation et les outils logiciels que les exécuteurs hébergés par GitHub. Les exécuteurs auto-hébergés vous permettent de créer des configurations matérielles personnalisées qui répondent à vos besoins en termes de puissance de traitement ou de mémoire pour exécuter des travaux plus volumineux, installer des logiciels disponibles sur votre réseau local et choisir un système d’exploitation non proposé par les exécuteurs hébergés par GitHub. Les exécuteurs auto-hébergés peuvent être physiques ou virtuels, et se trouver dans un conteneur, localement ou dans un cloud.

Vous pouvez ajouter des exécuteurs auto-hébergés à différents niveaux dans la hiérarchie de gestion :

  • Les exécuteurs au niveau du dépôt sont dédiés à un seul dépôt.
  • Les exécuteurs au niveau de l’organisation peuvent traiter des travaux pour plusieurs dépôts d’une organisation.
  • Les exécuteurs au niveau de l’entreprise peuvent être affectés à plusieurs organisations dans un compte d’entreprise.

Votre machine d’exécuteur se connecte à GitHub Enterprise Cloud à l’aide de l’application d’exécuteur autohébergé de GitHub Actions. L’exécuteur GitHub Actions est une application open source. Vous pouvez signaler et contribuer à résoudre des problèmes dans le référentiel de l’exécuteur. Lorsqu’une nouvelle version est publiée, l’application de l’exécuteur est mise à jour automatiquement lorsqu’un travail est affecté à l’exécuteur, ou dans un délai d’une semaine après publication si aucun travail n’est affecté à l’exécuteur.

Un exécuteur auto-hébergé est automatiquement supprimé de GitHub Enterprise Cloud s’il n’a pas été connecté à GitHub Actions pendant plus de 14 jours.
Un exécuteur auto-hébergé éphémère est automatiquement supprimé de GitHub Enterprise Cloud s’il n’a pas été connecté à GitHub Actions depuis plus de 1 jour.

Pour plus d’informations sur l’installation et l’utilisation d’exécuteurs auto-hébergés, consultez « Ajout d’exécuteurs auto-hébergés» et « Utilisation d’exécuteurs auto-hébergés dans un workflow ».

Différences entre exécuteurs hébergés par GitHub et exécuteurs auto-hébergés

Les exécuteurs hébergés par GitHub offrent un moyen plus rapide et plus simple d’exécuter vos workflows, tandis que les exécuteurs auto-hébergés sont un moyen hautement configurable d’exécuter des workflows dans votre propre environnement personnalisé.

Les exécuteurs hébergés par GitHub :

  • Recevez les mises à jour automatiques pour le système d’exploitation, les packages et les outils préinstallés et l’application de l’exécuteur auto-hébergé.
  • Sont gérés et tenus à jour par GitHub.
  • Fournissez une instance claire pour chaque exécution de travail.
  • Utilisent des minutes gratuites sur votre plan GitHub, avec des tarifs à la minute appliqués après dépassement des minutes gratuites.

Les exécuteurs auto-hébergés :

  • Reçoivent des mises à jour automatiques uniquement pour l’application d’exécuteur auto-hébergée, bien que vous puissiez désactiver les mises à jour automatiques de l’exécuteur. Pour plus d’informations sur le contrôle des mises à jour logicielles de l’exécuteur sur les exécuteurs auto-hébergés, consultez « Mise à l’échelle automatique avec des exécuteurs auto-hébergés ». Vous êtes responsable de la mise à jour du système d’exploitation et de tous les autres logiciels.
  • Peut utiliser des services cloud ou des ordinateurs locaux que vous payez déjà.
  • Sont personnalisables en termes de matériel, de système d’exploitation, de logiciel et de sécurité.
  • Il n’est pas nécessaire d’avoir une instance claire pour chaque exécution de travail.
  • Peuvent être utilisés gratuitement avec GitHub Actions, mais vous êtes responsable du coût de maintenance de vos machines d’exécuteur.
  • Peuvent être organisés en groupes pour restreindre l’accès à des workflows, organisations et dépôts spécifiques. Pour plus d’informations, consultez « Gestion de l’accès aux exécuteurs auto-hébergés à l’aide de groupes ».

Configuration requise pour les machines d’exécuteur auto-hébergé

Vous pouvez utiliser n’importe quelle machine en tant qu’exécuteur auto-hébergé tant qu’elle répond aux exigences suivantes :

Mise à l’échelle automatique de vos exécuteurs auto-hébergés

Vous pouvez augmenter ou diminuer automatiquement le nombre d’exécuteurs auto-hébergés dans votre environnement en réponse aux événements de webhook que vous recevez. Pour plus d’informations, consultez « Mise à l’échelle automatique avec des exécuteurs auto-hébergés ».

Limites d’utilisation

Il existe des limites sur l’utilisation de GitHub Actions lors de l’utilisation d’exécuteurs auto-hébergés. Ces limites sont susceptibles d’être modifiées.

  • Durée d’exécution du workflow - Chaque exécution de workflow est limitée à 35 jours. Si une exécution de workflow atteint cette limite, l’exécution du workflow est annulée. Cette période comprend la durée d’exécution ainsi que le temps d’attente et d’approbation.
  • Durée de file d’attente des travaux: Chaque travail pour les exécuteurs auto-hébergés peut être mis en file d’attente pendant un maximum de 24 heures. Si un exécuteur auto-hébergé ne démarre pas l’exécution du travail dans cette limite, le travail est arrêté et n’aboutit pas.
  • Requêtes d’API - Vous pouvez exécuter jusqu’à 1 000 requêtes sur l’API GitHub en une heure pour toutes les actions d’un dépôt. Si le nombre de requêtes dépasse cette limite, les appels d’API supplémentaires échouent, ce qui peut entraîner l’échec des travaux.
  • Matrice de travaux : Une matrice de travaux peut générer au maximum 256 travaux par exécution de workflow. Cette limite s’applique aux exécuteurs hébergés sur GitHub Enterprise Cloud et à ceux qui sont autohébergés. - File d’attente d’exécution de workflow : Plus de 500 exécutions de workflow peuvent être mises en file d’attente toutes les 10 secondes par dépôt. Si une exécution de workflow atteint cette limite, elle est arrêtée et échoue.

Continuité des workflows pour les exécuteurs auto-hébergés

Si les services GitHub Actions sont temporairement indisponibles, alors une exécution de workflow est ignorée si elle n’a pas été mise en file d’attente dans les 30 minutes suivant son déclenchement. Par exemple, si un workflow est déclenché et que les services GitHub Actions ne sont pas disponibles pendant 31 minutes ou plus, l’exécution du workflow n’est pas traitée.

Architectures et systèmes d’exploitation pris en charge pour les exécuteurs auto-hébergés

Les systèmes d’exploitation suivants sont pris en charge pour l’application d’exécuteur auto-hébergé.

Linux

  • Red Hat Enterprise Linux 7 ou version ultérieure
  • CentOS 7 ou version ultérieure
  • Oracle Linux 7
  • Fedora 29 ou version ultérieure
  • Debian 9 ou version ultérieure
  • Ubuntu 16.04 ou version ultérieure
  • Linux Mint 18 ou version ultérieure
  • openSUSE 15 ou version ultérieure
  • SUSE Enterprise Linux (SLES) 12 SP2 ou version ultérieure

Windows

  • Windows 7 64 bits
  • Windows 8.1 64 bits
  • Windows 10 64 bits
  • Windows Server 2012 R2 64 bits
  • Windows Server 2019 64 bits

macOS

  • macOS 10.13 (High Sierra) ou version ultérieure

Architectures

Les architectures de processeur suivantes sont prises en charge pour l’application d’exécuteur auto-hébergé.

  • x64 – Linux, macOS, Windows.
  • ARM64 - Linux, macOS, Windows (actuellement en version bêta).
  • ARM32 - Linux.

Communication entre les exécuteurs auto-hébergés et GitHub Enterprise Cloud

Les exécuteurs auto-hébergés se connectent à GitHub Enterprise Cloud pour recevoir les affectations de travaux et pour télécharger les nouvelles versions de l’application d’exécuteur. L’exécuteur auto-hébergé utilise une interrogation longue HTTPS qui ouvre une connexion à GitHub Enterprise Cloud pendant 50 secondes, et si aucune réponse n’est reçue, il expire et crée une nouvelle interrogation longue. L’application doit s’exécuter sur la machine pour accepter et exécuter des travaux GitHub Actions.

Étant donné que l’exécuteur auto-hébergé ouvre une connexion à GitHub.com, vous n’avez pas besoin d’autoriser GitHub à établir des connexions entrantes à votre exécuteur auto-hébergé.

Vous devez vous assurer que la machine dispose de l’accès réseau approprié pour communiquer avec les hôtes GitHub listés ci-dessous. Certains hôtes sont requis pour les opérations d’exécuteur essentielles, tandis que d’autres hôtes ne sont requis que pour certaines fonctionnalités.

Remarque : Certains des domaines répertoriés ci-dessous sont configurés à l’aide d’enregistrements CNAME. Certains pare-feu peuvent nécessiter l’ajout de règles récursives pour tous les enregistrements CNAME. Notez que les enregistrements CNAME peuvent changer à l’avenir et que seuls les domaines listés ci-dessous resteront constants.

Requis pour les opérations essentielles :

github.com
api.github.com

Requis pour télécharger les actions :

codeload.github.com

Requis pour les mises à jour de la version de l’exécuteur :

objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com

Requis pour charger/télécharger les caches et les artefacts de workflow :

*.blob.core.windows.net

Requis pour récupérer les jetons OIDC :

*.actions.githubusercontent.com

Nécessaire pour le téléchargement ou la publication de packages ou de conteneurs dans les packages GitHub :

*.pkg.github.com
ghcr.io

En outre, votre workflow peut nécessiter l’accès à d’autres ressources réseau.

Si vous utilisez une liste verte d’adresses IP pour votre compte d’organisation ou d’entreprise GitHub, vous devez ajouter l’adresse IP de votre exécuteur auto-hébergé à cette liste verte. Pour plus d’informations, consultez « Gestion des adresses IP autorisées pour votre organisation » ou « Application de stratégies pour les paramètres de sécurité dans votre entreprise. »

Vous pouvez également utiliser des exécuteurs auto-hébergés avec un serveur proxy. Pour plus d’informations, consultez « Utilisation d’un serveur proxy avec des exécuteurs auto-hébergés ».

Pour plus d’informations sur la résolution des problèmes courants de connectivité réseau, consultez « Surveillance des exécuteurs auto-hébergés et résolution des problèmes ».

Sécurité des exécuteurs auto-hébergés

Nous vous recommandons d’utiliser uniquement des exécuteurs auto-hébergés avec des dépôts privés. En effet, les duplications (forks) de votre dépôt public peuvent exécuter du code potentiellement dangereux sur la machine de votre exécuteur auto-hébergé en créant une demande de tirage qui exécute le code dans un workflow.

Cela ne pose pas de problème avec les exécuteurs hébergés par GitHub, car chaque exécuteur hébergé par GitHub est toujours une machine virtuelle isolée propre, et parce qu’il est détruit à la fin de l’exécution du travail.

Les workflows non approuvés qui s’exécutent sur votre exécuteur auto-hébergé présentent des risques de sécurité importants pour votre machine et votre environnement réseau, en particulier si votre machine conserve son environnement entre les travaux. Voici certains des risques encourus :

  • Programmes malveillants s’exécutant sur la machine.
  • Échappement du bac à sable de l’exécuteur de la machine.
  • Exposition de l’accès à l’environnement réseau de la machine.
  • Persistance de données indésirables ou dangereuses sur la machine.

Pour plus d’informations sur le renforcement de la sécurité pour les exécuteurs auto-hébergés, consultez « Renforcement de la sécurité pour GitHub Actions ».

Pour aller plus loin