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.

Remarque : Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.

À 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 your GitHub Enterprise Server instance. 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 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. 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 Server à 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.

Remarque : Si vous utilisez des exécuteurs éphémères et que vous avez désactivé les mises à jour automatiques, avant de mettre à niveau your GitHub Enterprise Server instance, vous devez mettre à niveau vos exécuteurs auto-hébergés vers la version de l’application de l’exécuteur que votre instance mise à niveau exécutera. La mise à niveau de your GitHub Enterprise Server instance avant de mettre à niveau les exécuteurs éphémères peut entraîner le passage hors connexion de vos exécuteurs. Pour plus d’informations, consultez « Mise à niveau de GitHub Enterprise Server ».

Un exécuteur auto-hébergé est automatiquement supprimé de GitHub Enterprise Server s’il n’a pas été connecté à GitHub Actions pendant plus de 30 jours.

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 Server 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.
  • ARM32 - Linux.

Actions prises en charge sur les exécuteurs auto-hébergés

Une configuration supplémentaire peut être nécessaire pour utiliser des actions à partir de GitHub.com avec GitHub Enterprise Server, ou pour utiliser les actions actions/setup-LANGUAGE avec des exécuteurs auto-hébergés qui n’ont pas accès à Internet. Pour plus d’informations, consultez « Gestion de l’accès aux actions à partir de GitHub.com» et contactez votre administrateur de site GitHub Enterprise.

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

Les exécuteurs auto-hébergés se connectent à GitHub Enterprise Server 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 HTTP(S) qui ouvre une connexion à GitHub Enterprise Server 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.

La connexion entre exécuteurs auto-hébergés et GitHub Enterprise Server passe via HTTP (port 80) ou HTTPS (port 443). Pour garantir la connectivité via HTTPS, configurez le protocole TLS pour your GitHub Enterprise Server instance. Pour plus d’informations, consultez « Configuration du protocole TLS ».

Seule une connexion sortante de l’exécuteur vers your GitHub Enterprise Server instance est requise. Il n’est pas nécessaire d’établir une connexion entrante de your GitHub Enterprise Server instance vers l’exécuteur. Pour que la mise en cache fonctionne, l’exécuteur doit être en mesure de communiquer avec le stockage d’objets blob et de télécharger directement le contenu à partir de celui-ci.

GitHub Enterprise Server doit accepter les connexions entrantes de vos exécuteurs via HTTP(S) au sous-domaine de l’API et au nom d’hôte de your GitHub Enterprise Server instance, et vos exécuteurs doivent autoriser les connexions sortantes via HTTP(S) au sous-domaine de l’API et au nom d’hôte de your GitHub Enterprise Server instance.

Les exécuteurs auto-hébergés ne nécessitent pas d’accès Internet externe pour fonctionner. Par conséquent, vous pouvez utiliser le routage réseau pour diriger la communication entre l’exécuteur auto-hébergé et your GitHub Enterprise Server instance. Par exemple, vous pouvez attribuer une adresse IP privée à votre exécuteur auto-hébergé et configurer le routage pour envoyer le trafic à your GitHub Enterprise Server instance, sans avoir besoin que le trafic traverse un réseau public.

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

Communication entre les exécuteurs auto-hébergés et GitHub.com

Les exécuteurs auto-hébergés n’ont pas besoin de se connecter à GitHub.com, à moins que vous ayez activé l’accès automatique aux actions GitHub.com pour your GitHub Enterprise Server instance. Pour plus d’informations, consultez « À propos de l’utilisation d’actions dans votre entreprise ».

Si vous avez activé l’accès automatique aux actions GitHub.com, l’exécuteur auto-hébergé se connecte directement à GitHub.com pour télécharger les actions. Vous devez vous assurer que la machine dispose de l’accès réseau approprié pour communiquer avec les URL GitHub listées ci-dessous.

github.com
api.github.com
codeload.github.com

Remarque : Certains des domaines listés ci-dessus 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-dessus resteront constants.

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

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