À 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 AE. Pour plus d’informations sur GitHub Actions, consultez « Comprendre 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 AE à 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 AE 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 ».
Caractéristiques des exécuteurs auto-hébergés
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 auto-hébergés :
- Reçoivent des mises à jour automatiques pour l’application d’exécuteur auto-hébergée seulement, 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 de logiciel 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 :
- Vous pouvez installer et exécuter l’application d’exécuteur auto-hébergée sur la machine. Pour plus d’informations, consultez « Architectures et systèmes d’exploitation pris en charge pour les exécuteurs auto-hébergés ».
- La machine peut communiquer avec GitHub Actions. Pour plus d’informations, consultez « Communication entre les exécuteurs auto-hébergés et GitHub AE ».
- La machine dispose de suffisamment de ressources matérielles pour le type de workflows que vous envisagez d’exécuter. L’application d’exécuteur auto-hébergé elle-même nécessite uniquement des ressources minimales.
- Si vous souhaitez exécuter des workflows qui utilisent des actions de conteneur Docker ou des conteneurs de service, vous devez utiliser une machine Linux et Docker doit être installé.
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.
- Temps d’attente des travaux : chaque travail pour les exécuteurs auto-hébergés mis en file d’attente pendant au moins 24 heures sera annulé. L’heure réelle dans la file d’attente peut atteindre jusqu’à 48 heures avant l’annulation. 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 référentiel. 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 AE 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.
- Inscription d’exécuteurs auto-hébergés : vous pouvez avoir un maximum de 10 000 exécuteurs auto-hébergés dans un groupe d’exécuteurs. Si cette limite est atteinte, l’ajout d’un nouvel exécuteur n’est pas possible.
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 ou version ultérieure
- 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 2016 64 bits
- Windows Server 2019 64 bits
- Windows Server 2022 64 bits
macOS
- macOS 11.0 (Big Sur) 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.
Communication entre les exécuteurs auto-hébergés et GitHub AE
Les exécuteurs auto-hébergés se connectent à GitHub AE 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 AE 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 AE passe via HTTPS (port 443).
Seule une connexion sortante de l’exécuteur vers votre entreprise est requise. Il n’est pas nécessaire d’établir une connexion entrante de votre entreprise vers l’exécuteur. Pour que la mise en cache fonctionne, l’exécuteur doit être en mesure de communiquer avec le stockage blob et de télécharger directement le contenu à partir de celui-ci.
Vous devez vous assurer que l’exécuteur auto-hébergé dispose d’un accès réseau approprié pour communiquer avec votre URL GitHub AE et ses sous-domaines. Par exemple, si votre sous-domaine pour GitHub AE est octoghae
, vous devez autoriser l’exécuteur auto-hébergé à accéder à octoghae.githubenterprise.com
, api.octoghae.githubenterprise.com
et codeload.octoghae.githubenterprise.com
.
Si vous utilisez une liste verte d’adresses IP, 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 ».
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 ».
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 votre entreprise. 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
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 autohébergés, consultez « Durcissement de la sécurité pour GitHub Actions ».