GitHub – Connectivité du serveur sur site à l’aide d’exécuteurs auto-hébergés / Blogs / Perficient

Diverses méthodes de déploiement, notamment basées sur le cloud (par exemple CloudHub) et sur site, sont disponibles pour répondre aux divers besoins d’infrastructure. GitHub, entre autres outils, prend en charge la gestion des versions et la sauvegarde du code, tandis que les pratiques CI/CD automatisent les processus d’intégration et de déploiement, améliorant ainsi la qualité du code et accélérant la livraison des logiciels.
GitHub Actions, une plateforme d’automatisation de GitHub, rationalise la création, les tests et le déploiement de flux de travail logiciels directement à partir de référentiels. Bien que généralement associées aux déploiements cloud, les actions GitHub peuvent être adaptées pour les configurations sur site avec des exécuteurs auto-hébergés. Ces exécuteurs servent d’environnement d’exécution, permettant les tâches de déploiement sur l’infrastructure locale.
La configuration des exécuteurs auto-hébergés permet de personnaliser les flux de travail GitHub Actions pour les besoins de déploiement sur site. Les workflows peuvent automatiser des tâches telles que la création d’images Docker, le transfert d’artefacts vers des registres privés et le déploiement d’applications sur des serveurs locaux.
L’exploitation de GitHub Actions pour le déploiement sur site combine les avantages de l’automatisation, du contrôle de version et de la collaboration avec le contrôle de l’infrastructure et des processus de déploiement.
Qu’est-ce qu’un coureur ?
Un runner fait référence à la machine responsable de l’exécution des tâches dans un workflow GitHub Actions. Il effectue diverses tâches définies dans le script d’action, comme le clonage du répertoire de code, la création du code, le test du code et l’installation de divers outils et logiciels requis pour exécuter le workflow d’action GitHub.
Il existe 2 principaux types de coureurs :
Coureurs hébergés sur GitHub :
Ce sont des machines virtuelles fournies par GitHub pour exécuter des workflows. Chaque machine est préconfigurée avec l’environnement, les outils et les paramètres requis pour les actions GitHub. Les coureurs hébergés sur GitHub prennent en charge divers systèmes d’exploitation, tels que Ubuntu Linux, Windows et macOS.
Coureurs auto-hébergés :
Un exécuteur auto-hébergé est un système déployé et géré par l’utilisateur pour exécuter des tâches GitHub Actions. Par rapport aux exécuteurs hébergés sur GitHub, les exécuteurs auto-hébergés offrent plus de flexibilité et de contrôle sur le matériel, les systèmes d’exploitation et les outils logiciels. Les utilisateurs peuvent personnaliser les configurations matérielles, installer des logiciels à partir de leur réseau local et choisir des systèmes d’exploitation non fournis par les exécuteurs hébergés sur GitHub. Les exécuteurs auto-hébergés peuvent être des machines physiques, des machines virtuelles, des conteneurs, des serveurs sur site ou des instances basées sur le cloud.
Pourquoi avons-nous besoin d’un coureur auto-hébergé ?
Les exécuteurs auto-hébergés jouent un rôle crucial dans le déploiement d’applications sur le serveur sur site à l’aide des scripts d’action GitHub et dans l’établissement de la connectivité avec un serveur sur site. Ces exécuteurs peuvent être créés à différents niveaux de gestion au sein de GitHub : référentiel, organisation et entreprise.
En tirant parti des exécuteurs auto-hébergés pour le déploiement, les organisations peuvent optimiser le contrôle, la personnalisation, les performances et la rentabilité tout en répondant aux exigences de conformité et en s’intégrant de manière transparente à l’infrastructure et aux outils existants. Voici quelques avantages des coureurs auto-hébergés, indiqués ci-dessous.
Contrôle et sécurité :
Les exécuteurs auto-hébergés permettent aux organisations de garder le contrôle de leur infrastructure et de leur environnement de déploiement. Cela inclut la mise en œuvre de mesures de sécurité spécifiques adaptées aux exigences de l’organisation, telles que des règles de pare-feu et des contrôles d’accès.
Personnalisation :
Avec les coureurs auto-hébergés, vous avez la possibilité de personnaliser l’environnement matériel et logiciel pour répondre à vos besoins spécifiques. Cela peut inclure l’installation de bibliothèques, d’outils ou de dépendances spécifiques requis pour vos applications ou services.
Performance:
Les exécuteurs auto-hébergés peuvent offrir des performances améliorées par rapport aux alternatives basées sur le cloud, en particulier pour les déploiements qui nécessitent des ressources de calcul élevées ou des connexions à faible latence aux ressources locales.
La gestion des coûts:
Alors que les solutions basées sur le cloud entraînent souvent des coûts permanents en fonction de l’utilisation et de la consommation des ressources, les systèmes d’exécution auto-hébergés peuvent permettre de réaliser des économies en utilisant l’infrastructure existante sans encourir de frais de service cloud supplémentaires.
Conformité:
Pour les organisations opérant dans des secteurs réglementés ou des régions avec des exigences de conformité strictes, les exécuteurs auto-hébergés offrent un meilleur contrôle et une meilleure visibilité sur l’endroit où le code est exécuté et la manière dont les données sont traitées, facilitant ainsi les efforts de conformité.
Déploiement hors ligne:
Dans les environnements où la connectivité Internet est limitée ou peu fiable, les exécuteurs auto-hébergés permettent aux flux de déploiement de continuer à fonctionner sans dépendance à l’égard de services ou de référentiels cloud externes.
Évolutivité :
Les exécuteurs auto-hébergés peuvent être augmentés ou réduits en fonction de la demande, permettant aux organisations d’ajuster l’allocation des ressources en fonction des fluctuations de la charge de travail ou des exigences du projet.
Intégration avec les outils existants:
Les coureurs auto-hébergés s’intègrent de manière transparente aux outils et à l’infrastructure sur site existants, facilitant ainsi une adoption et une interopérabilité plus fluides au sein de l’écosystème de l’organisation.
Premiers pas avec un Runner auto-hébergé
Suivez les étapes ci-dessous pour créer et utiliser un coureur auto-hébergé.
Runner auto-hébergé au niveau du référentiel :
- Connectez-vous à votre compte GitHub et accédez au référentiel souhaité.
- Accédez à l’onglet Paramètres du référentiel et sélectionnez le menu « Coureurs » sous le menu « Actions ».
- Cliquez sur le bouton « Nouveau coureur auto-hébergé » pour lancer le processus de création.
- En fonction de la configuration requise de votre système, choisissez l’image d’exécution appropriée. Par exemple, si votre programme d’exécution auto-hébergé s’exécute sous Windows, sélectionnez l’image du programme d’exécution Windows.
- Ouvrez Windows PowerShell et exécutez la commande suivante pour créer le dossier actions-runner :
mkdir actions-runner; cd actions-runner
- Téléchargez le dernier package d’exécution en exécutant la commande suivante :
Invoke-WebRequest -Uri https://github.com/actions/runner/releases/download/v2.316.0/actions-runner-win-x64-2.316.0.zip -OutFile actions-runner-win-x64-2.316.0.zip
- Extrayez le package téléchargé et configurez le programme d’exécution auto-hébergé en fonction de vos besoins de déploiement.
Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("$PWD/actions-runner-win-x64-2.316.0.zip", "$PWD")
- Configurez le coureur à l’aide de la commande ci-dessous. Remplacez l’espace réservé par les valeurs réelles.
./config.cmd --url https://github.com/<owner>/<repo_name> --token <token>
- Pour exécuter le coureur, utilisez la commande ci-dessous.
./run.cmd
- Votre runner auto-hébergé est désormais prêt à être utilisé dans votre script d’action GitHub.
# Use below YAML code snippet in your workflow file for each job runs-on: self-hosted
Runners auto-hébergés au niveau de l’organisation et de l’entreprise :
Le processus de création de coureurs auto-hébergés au niveau de l’organisation et de l’entreprise suit des étapes similaires. Néanmoins, les exécuteurs créés à ces niveaux peuvent servir plusieurs référentiels ou organisations au sein du compte. Le processus de configuration implique généralement des autorisations administratives et une configuration à un niveau plus large.
En suivant ces étapes, vous pouvez configurer des exécuteurs auto-hébergés pour activer la connectivité entre votre serveur sur site et les scripts d’action GitHub, facilitant ainsi les déploiements sur site de manière transparente.
Source link